2009-08-24 22:53:16 +0000 2009-08-24 22:53:16 +0000
183
183

Come rendere la mappatura SUBST persistente attraverso i riavvii?

Windows (XP o successivo) ha un modo integrato per creare mappature di unità persistenti, come quelle che crea SUBST? Ho trovato uno strumento di terze parti psubst . C'è un modo per farlo senza strumenti di terze parti?

Risposte (8)

156
156
156
2009-08-24 23:04:22 +0000

Beh Wikipedia menziona :

C:\>SUBST /?
Associates a path with a drive letter.

SUBST [drive1: [drive2:]path]
SUBST drive1: /D

drive1: Specifies a virtual drive to which you want to assign a path.
[drive2:]path Specifies a physical drive and path you want to assign to
a virtual drive.
/D Deletes a substituted (virtual) drive.

Type SUBST with no parameters to display a list of current virtual drives.

Quindi si possono associare percorsi a lettere di unità usando subst. Il software Persistent SUBST command (psubst) sembra essere dannatamente comodo, e forniscono una soluzione per eseguirlo dall'avvio: https://code.google.com/p/psubst/#Inconstancy

Inconstancy

Tuttavia il riavvio di un sistema distrugge un disco virtuale. Cosa fare? Un disco può essere creato dopo l'avvio. Ma cosa fare, quando un disco è necessario nei primi passi di un avvio? Per esempio, per eseguire i servizi? C'è una funzione di sistema per avviare un disco virtuale dal registro di sistema:

REGEDIT4 

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\DOS Devices] 
"Z:"="\??\C:\Documents and Settings\All Users\Shared Documents"

Basta creare un file di testo con estensione .REG ed eseguirlo. Al prossimo avvio del sistema, il disco virtuale esisterà all'accesso. Bisogna definire un nome di disco e un percorso. Si noti che ogni backslash nel percorso è raddoppiato.

In Windows, è possibile eseguire l'editor di registro come segue:

  1. Avvia “ Esegui… (o premi Win+R)
  2. Digita: regedit
  3. In Windows Vista e superiori, apparirà l'UAC, fare clic su "Sì”.
80
80
80
2012-02-24 17:38:22 +0000

Installarlo a HKEY_CURRENT_USER ha il vantaggio di avere diversi setup per ogni utente. Io preferisco mantenere la configurazione dello spazio utente finché un servizio di sistema non dipende dal dispositivo.

REGEDIT4
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run]
"F Drive"="subst F: D:\mount\db"
"G Drive"="subst G: D:\mount\log"

Fonte: http://networkadminkb.com/KB/a446/how-to-use-drive-letters-mount-points-the-same-disk-drive.aspx

46
46
46
2009-08-24 23:08:49 +0000

C'è una risposta nella pagina che hai linkato. Non hai bisogno di uno strumento di terze parti, puoi farlo con una semplice voce di registro, come dettagliato in quella pagina.

Crea un file di testo chiamato ‘mapdrive.reg’ con questi contenuti:

REGEDIT4 

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\DOS Devices] 
"Z:"="\??\C:\Documents and Settings\All Users\Shared Documents"

Poi dovresti essere in grado di fare un doppio clic su di esso per impostarlo, senza bisogno di strumenti di terze parti.

28
28
28
2011-01-11 23:34:33 +0000

Ho trovato questo perché stavo cercando un miglioramento rispetto ai miei script subst di avvio - funzionavano bene, ma a volte venivano eseguiti dopo che le cartelle si bloccavano all'avvio perché il mio disco non era ancora mappato.

Prima ho modificato il registro di sistema, ma non sono riuscito a farlo funzionare. Tuttavia, mi sono imbattuto in questa alternativa, che sebbene non usi subst risponde alla domanda “Come rendere la mappatura SUBST persistente attraverso i riavvii? Non usare subst… (inserire ‘computerName’ e ‘pathName’ appropriati):

net use u: "\computerName\c$\pathName" /persistent:yes

L'ho adattato dal suggerimento di Hank Arnold a questa discussione sulla mappatura delle unità locali . Avevo intuito che \myComputerName\c potesse funzionare, ma non sapevo come applicare il $.

Prima di provare il comando "net use”, prova a navigare su

\computerName\c$

per assicurarti di avere ‘computerName’ corretto.

8
8
8
2009-08-24 23:02:00 +0000

Rilasciate un file batch nella vostra cartella di avvio che fa tutti i SUBST che volete fare.

5
5
5
2015-06-11 00:29:36 +0000

Poiché l'originale PSubst ha alcune limitazioni e sembra essere concluso dall'autore, ho dovuto codificare una nuova versione per le mie esigenze, sistemando alcuni problemi e aggiungendo funzionalità e flessibilità.

Controlla qui per il file batch di PSubst versione 3 https://github.com/cyberponk/psubst

Compatibile con Windows 7, Windows 8, Windows 10, Windows Server 2012

Nota: Questo lavoro non ha alcuna intenzione di demeritare l'autore originale ed è nato solo per reale necessità, come segue:

  • Come amministratore di newtork ho la costante necessità di SOTTOSCRIVERE unità di rete e di smanettare con diversi utenti di rete.

  • Dato che non tutti sono esperti di Windows, ho pensato che l'elevazione automatica dell'amministratore con la gestione degli errori mi avrebbe aiutato, sulla base dei commenti che ho letto sul web.

  • Dato che alcune persone hanno lottato con l'ordine degli argomenti, ho pensato che sarebbe stato meglio per lo script lavorare con argomenti in qualsiasi ordine.

Non posso ricordare di ogni funzionalità aggiunta, ma ogni inclusione è stata fatta puramente per necessità. Sto condividendo il codice in modo che altri possano non incontrare i problemi che ho avuto io. Con questo non c'è altra intenzione che condividere e aiutare.

2
2
2
2019-08-27 01:09:25 +0000

Sto espandendo la risposta di davr perché qualsiasi file che viene cancellato dall'unità mappata viene eliminato in modo permanente invece di andare nel Cestino. Questo file REG è basato sulle informazioni compilate da questo articolo TechNet , che discute come abilitare il Cestino. L'esempio mappa l'unità virutale Q alla cartella “OneDrive - Test”, e abilita il Cestino sull'unità Q. Cambia i percorsi e il nome in base alla tua situazione.

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\DOS Devices]
"Q:"="\??\C:\Users\Tony\OneDrive - Test"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{9147E464-33A6-48E2-A3C9-361EFD417DEF}]
"RelativePath"="Q:\"
"Category"=dword:00000004
"Name"="Q_Mapped_OneDrive"

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\BitBucket\KnownFolder\{9147E464-33A6-48E2-A3C9-361EFD417DEF}]
"MaxCapacity"=dword:0000c7eb
"NukeOnDelete"=dword:00000000

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{9147E464-33A6-48E2-A3C9-361EFD417DEF}]
"RelativePath"="Q:\"
"Category"=dword:00000004
"Name"="Q_Mapped_OneDrive"

[HKEY_CURRENT_USER\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\BitBucket\KnownFolder\{9147E464-33A6-48E2-A3C9-361EFD417DEF}]
"MaxCapacity"=dword:0000c7eb
"NukeOnDelete"=dword:00000000

Se hai solo un'unità mappata, puoi usare il GUID {9147E464-33A6-48E2-A3C9-361EFD417DEF}. Se hai più unità mappate, allora ciascuna dovrebbe essere abbinata a un GUID dal tuo generatore di GUID preferito.

1
1
1
2019-11-02 18:16:15 +0000

Ecco due esempi che usano reg.exe per aggiungere la voce richiesta alla sottochiave di registro Run dell'alveare HKEY_CURRENT_USER. Questi esempi possono essere adattati come richiesto. Aprite una finestra di cmd senza elevazione come l'utente corrente, e incollate la linea adattata.

Il caso d'uso più semplice:

reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /v "Map I" /t REG_SZ /d "subst I: \"C:\path\to\folder\"" /f

Dove l'argomento percorso di SUBST ha una variabile d'ambiente incorporata:

reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /v "Map J" /t REG_EXPAND_SZ /d "subst J: \"^%DROPBOX_HOME^%\Notes\"" /f

Notate che ci sono due lotti di escape dei caratteri nel secondo esempio. Backslashes per le doppie virgolette interne che circondano l'argomento path, e caret per i segni di percentuale della variabile d'ambiente. Le doppie virgolette non sono sempre necessarie, ma per evitare problemi con i nomi delle cartelle che contengono spazi si raccomanda di usarle.