Visualizzazione post con etichetta subst. Mostra tutti i post
Visualizzazione post con etichetta subst. Mostra tutti i post

lunedì 13 febbraio 2017

Windows Quick Tip: Creare unità virtuali con SUBST

In alcuni contesti può essere utile definire delle unità virtuali (virtual drives): unità disco che non esistono fisicamente ma costituiti da porzioni di RAM oppure da un particolare percorso/cartella del disco fisico. L'unità virtuale può, ad esempio, essere utilizzata per abbreviare un percorso molto lungo oppure per ingannare alcuni software che tentano di accedere ad un'unità disco non più presente nel sistema.

In questo articolo vedremo come creare un'unità virtuale utilizzando il comando SUBST

Il comando SUBST fu introdotto a partire dalla release 3.1 del MS-DOS ed è presente anche nelle versioni più recenti di Windows.

La sintassi del comando è molto semplice. Lanciando il comando senza alcun parametro:
SUBST
verranno elencate tutte le unità virtuali già definite complete di lettere di unità e path.


Subst, elenco unità virtuali definite
FIG 1 - Subst, elenco unità virtuali definite


Creare un'unità virtuale

Per creare una nuova unità virtuale è necessario passare al comando SUBST la lettera dell'unità, comprensivo dei due punti, e il percorso da assegnarle racchiuso tra apici (soprattutto in caso in cui nel percorso siano presenti spazi).
Ad es.
SUBST X: "C:\Temp"
Subst, creazione unità virtuale
FIG 2 - Subst, creazione unità virtuale
Le unità virtuali create in questo modo vengono mantenute fino alla disconnessione dell'utenza. Al successivo logon è necessario procedere nuovamente alla loro creazione.

Sulle unità virtuali definite tramite SUBST non è possibile utilizzare alcuni comandi come: CHKDSKDISKCOMPDISKCOPYFORMAT, LABELRECOVER.


Eliminare un'unità virtuale

Per eliminare un'unità virtuale basta far seguire al comando la lettera dell'unità virtuale con i due punti e il parametro /D
Ad es.
SUBST X: /D
Subst, eliminazione di un'unità virtuale
FIG 3 - Subst, eliminazione di un'unità virtuale


Assegnare un'etichetta all'unità virtuale

Per assegnare all'unità virtuale un'etichetta personalizzata è necessario procedere tramite il registro di sistema.

  • Avviare l'editor del registro di sistema (WIN+R e digitare regedit seguito da invio); 
  • posizionarsi su
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\DriveIcons\
    quindi creare una nuova chiave nominandola con la lettera dell'unità virtuale a cui si intende assegnare l'etichetta. All'interno della nuova chiave creare una sottochiave e rinominarla in DefaultLabel. Al valore stringa (Predefinito) presente in quest'ultima assegnare l'etichetta da dare all'unità.
    Ad es. nel caso dell'unità virtuale X il percorso sarà 
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\DriveIcons\X\DefaultLabel

    Assegnare l'etichetta ad un unità virtuale
    FIG 4 - Assegnare l'etichetta ad un unità virtuale



Rendere permanenti le unità virtuali

Per rendere permanente un'unità virtuale (senza l'utilizzo di tool di terze parti) e ritrovarla anche dopo il riavvio del sistema è possibile utilizzare uno dei seguenti metodi.

Metodo 1
Creare un file Batch con i comandi per la creazione dell'unità virtuale e inserirlo in esecuzione automatica. Ad es.
@ECHO off
SUBST X: C:\Temp


Metodo 2
Inserire il comando SUBST per la creazione di unità virtuali direttamente all'interno della chiave di registro RUN.  Il modo più semplice è quello di creare un file .reg con all'interno le stringhe per creare il nuovo valore all'interno della chiave RUN.

Se si intende creare l'unità virtuale per tutti gli utenti che accedono al sistema il contenuto del file .reg sarà simile al seguente:
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
"Unità virtuale X"="SUBST X: d:\\Temp"

Se, invece, si intende creare l'unità virtuale solo per l'utente corrente allora il contenuto del file .reg sarà 
Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
"Unità virtuale X"="SUBST X: d:\\Temp"


Metodo 3
Anche in questo metodo prevede di agire tramite il registro di sistema ma questa volta l'unità virtuale verrà specificata all'interno della chiave DOS Devices. Il contenuto di un'eventuale file .reg avrà un aspetto simile al seguente
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\DOS Devices]
"X:"="\\??\\C:\\Temp"