Windows, riconoscere quando viene inserita una specifica chiavetta USB

Ad uso e consumo di tecnici, amministratori di sistema, professionisti e utenti avanzati, una procedura per riconoscere quando una specifica unità di memorizzazione USB viene collegata al sistema.

Abbiamo visto che Windows 10 include un’utile funzionalità chiamata Cronologia file che, tra le varie possibilità, permette di creare automaticamente una copia dei file indicati dall’utente non appena vengono collegati al PC una chiavetta USB o un supporto di memorizzazione esterno: Backup dei dati su USB: come farlo in modo sicuro e portarli sempre con sé.

Ma come fa Windows 10 a riconoscere una stessa chiavetta o un dispositivo di storage esterno? Come utilizzare il meccanismo di riconoscimento dei dispositivi USB per la memorizzazione dei dati nei propri script?

Provate a scrivere Visualizzatore eventi nella casella di ricerca di Windows.
Nella colonna di sinistra portarsi in corrispondenza della voce seguente: Registri applicazioni e servizi, Microsoft, Windows, DriverFrameworks-UserMode, Operativo.
Nel pannello a destra cliccare infine sulla voce Attiva registro.

A questo punto si provi a collegare al PC una chiavetta USB premendo quindi il tasto F5 per aggiornare la lista eventi visualizzata al centro della finestra.

Cliccare due volte, quindi, sul primo evento Informazioni della lista e accedere al contenuto della scheda Dettagli. In corrispondenza di InstanceID si troverà un percorso che identifica univocamente l’unità di memorizzazione USB appena collegata alla macchina.

A questo punto si dovrà copiare per intero il percorso che figura accanto a InstanceID e incollarlo in un editor di testo come Notepad++.

Usando questo tool online, incollando nella casella “Copy-paste the string to escape or unescape here” la stringa InstanceID e cliccando il pulsante “Escape” se ne otterrà una nuova in cui sono stati opportunamente gestiti (escaping) i caratteri che possono causare qualche problema.

Digitando Utilità pianificazione nella casella di ricerca di Windows, è possibile fare in modo che il sistema operativo rilevi automaticamente quando viene collegata la specifica unità di memorizzazione USB e svolga un compito prefissato.

Basta infatti cliccare sul menu Azione, Importa attività… e specificare come modello il file template.xml contenuto nell’archivio scaricabile a questo indirizzo.

Con un clic su Attivazione, Modifica quindi sul pulsante Modifica filtro eventi, ci si troverà dinanzi a una finestra simile a quella in figura.

La stringa INSERIRE QUI IL PERCORSO INSTANCEID dovrà essere sostituita con il percorso InstanceID salvato in precedenza dal Visualizzatore eventi di Windows e successivamente modificato con l’applicazione dei caratteri di escaping.

Cliccando sulla scheda Azioni, bisognerà semplicemente indicare il comando che si desidera lanciare all’inserimento della chiavetta USB (può essere anche un file batch) e, infine, nella scheda Generale, assegnare un nome all’attività che sarà aggiunta in Utilità di pianificazione (computer locale).

D’ora in avanti, non appena si inserirà la chiavetta indicata attraverso la stringa InstanceID, Windows eseguirà automaticamente l’operazione indicata.
Per provare che tutto funzioni, si può specificare nella scheda Azioni il riferimento a un file batch contenente esclusivamente il comando pause. Non appena si inserirà la chiavetta USB configurata in precedenza, si vedrà comparire una finestra a sfondo nero con il messaggio Premere un tasto per continuare.

Come stabilire la lettera identificativa di unità associata all’unità USB

In precedenza abbiamo visto come stabilire l’identificativo univoco dell’unità rimovibile di tipo USB. Quella stessa stringa (InstanceID) torna utile anche per stabilire la lettera identificativa di unità che Windows ha assegnato al dispositivo di memorizzazione esterno.

Esistono diversi metodi per raggiungere l’obiettivo. Noi proponiamo un approccio basato sull’uso di un’istruzione PowerShell che quindi è facilmente adattabile a qualunque script.

Si provi ad aprire il prompt di PowerShell premendo la combinazione di tasti Windows+X (in Windows 10) quindi scegliendo Windows PowerShell.
Si digiti quindi quanto segue:

$usbletter=Get-Partition -DiskId '\\?\INSERIRE_QUI_IDENTIFICATIVO' | Select -ExpandProperty DriveLetter
Write-Host $usbletter":"

Al posto di INSERIRE_QUI_IDENTIFICATIVO, incollare quanto presente nella stringa InstanceID estrapolata in precedenza.

Ad esempio, supponendo che la stringa sia:

SWD\WPDBUSENUM\_??_USBSTOR#DISK&VEN_&PROD_&REV_1.00#001CC0EC32F7AC11D713330D&0#{53F56307-B6BF-11D0-94F2-00A0C91EFB8B}

copiare e incollare al posto di INSERIRE_QUI_IDENTIFICATIVO la stringa seguente: USBSTOR#DISK&VEN_&PROD_&REV_1.00#001CC0EC32F7AC11D713330D&0#{53F56307-B6BF-11D0-94F2-00A0C91EFB8B}.

Il comando PowerShell non richiede l’utilizzo dei diritti di amministratore. Il contenuto della variabile $usbletter, che conserva il riferimento alla lettera identificativa di unità, può essere usato all’interno di qualunque script.

Ti consigliamo anche

Link copiato negli appunti