Quando provo a fornire assistenza remota a qualche utente, può capitare di non riuscire a collegarci per qualche motivo, magari una vpn troppo restrittiva. Così cerco di farmi mandare le schermate degli errori presenti nel computer, ma anche questa cosa si rivela difficile per alcune persone che non sanno come fare uno screenshot e poi non sanno come farmelo avere. Così mi sono messo alla ricerca di uno script PowerShell, avviabile da NinjaOne, che mi permetta di catturare le schermate in autonomia.
Questi script li possiamo anche utilizzare se vogliamo catturare periodicamente, grazie alle operazioni pianificate di Windows , la schermata del nostro desktop, o di parte di esso, per avere una immagine di quello che succede in un certo momento.
Screenshot-rettangolo.ps1
In questo script è possibile selezionare una zona dello schermo, o tutto quanto, da catturare, nella riga $bounds = [Drawing.Rectangle]::FromLTRB(0, 0, 2000,2000)
i primi due numeri rappresentano la posizione iniziale dello schermo, gli altri due la posizione finale. Se vi serve solo una zona particolare dello schermo dovrete fare qualche tentativo prima di trovare i valori corretti.
Il nome del file immagine e la sua destinazione li potete scegliere e modificare in questa riga: screenshot $bounds "d:\screenshot.png"
Monitor Multipli
Lo script Monitor_Multipli.ps1
permette di salvare una unica immagine quando sono collegati due schermi (non ho modo di provare se è presente un numero superiore di monitor) al computer. Nella riga $bmp.Save("d:\test.png")
potete modificare il nome e la cartella destinazione dell’immagine.
Questo tipo di cattura ha però un problema, se le dimensioni dei caratteri di Windows sono diverse dal 100% l’immagine viene tagliata nella parte bassa.
Anche cattura_singolo_desktop.ps1
ha lo stesso problema nella dimensione dei caratteri, solo che questo script cattura l’immagine del monitor principale.
Snippingtool.ps1
Ho voluto inserire l’ultimo script, Snippingtool.ps1
, perché riesce a riprodurre le funzioni dello strumento di cattura di Windows, basta avviarlo e selezionare l’area dello schermo che ci serve.
Script bloccati
Può succedere che questo tipo di script siano usati da qualche malware per carpire informazioni importanti catturando informazioni sensibili. Per esempio l’esecuzione di questo script viene bloccata da Windows Defender perché riconosciuto come un HackTool (non è un virus).
Conclusioni
Purtroppo non ho risolto il mio problema, una delle funzioni presente negli script “graphic.CopyFromScreen” non viene accettata da NinjaOne e quindi sono ancora alla ricerca di uno script “cattura schermo” da utilizzare.
Gli script che ho allegato all’articolo sono comunque funzionanti e possono tornare utili ad altre persone.