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"

Come catturare screenshot PowerShell

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.

Come catturare screenshot PowerShell

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.

Come catturare screenshot PowerShell

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).

Come catturare screenshot PowerShell

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.