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

¿Cómo hacer que el mapeo de SUBST sea persistente a través de los reinicios?

¿Tiene Windows (XP o posterior) una forma integrada de crear mapeos de unidades persistentes, como los que crea SUBST? He encontrado una herramienta de terceros psubst . ¿Hay alguna manera de hacerlo sin herramientas de terceros?

Respuestas (8)

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

Bueno Wikipedia menciona :

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.

Así que puedes asociar rutas con letras de unidad usando subst. El software Persistent SUBST command (psubst) parece ser muy útil, y proporcionan una solución para ejecutarlo desde el inicio: https://code.google.com/p/psubst/#Inconstancy

Inconstancia

Sin embargo el reinicio de un sistema destruye un disco virtual. ¿Qué hacer? Se puede crear un disco después del arranque. ¿Pero qué hacer cuando se necesita un disco en los primeros pasos de un arranque? Por ejemplo, para ejecutar servicios. Existe una función del sistema para iniciar un disco virtual desde el registro del sistema:

REGEDIT4 

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

Basta con crear un archivo de texto con la extensión .REG y ejecutarlo. En el siguiente arranque del sistema, el disco virtual existirá al iniciar la sesión. Es necesario definir un nombre de disco y una ruta. Tenga en cuenta que cada barra invertida en la ruta se duplica.

En Windows, puede ejecutar el editor del registro de la siguiente manera:

  1. Iniciar “ Ejecutar… (o pulsar Win+R)
  2. Escriba: regedit
  3. En Windows Vista y superior, aparecerá el UAC, haga clic en "Sí”.
80
80
80
2012-02-24 17:38:22 +0000

Instalarlo en HKEY_CURRENT_USER tiene la ventaja de tener diferentes configuraciones para cada usuario. Yo prefiero quedarme con la configuración del espacio de usuario mientras un servicio del sistema no dependa del dispositivo.

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

Fuente: 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

Hay una respuesta en la página que enlazaste. No necesitas la herramienta de terceros, puedes hacerlo con una simple entrada en el registro, como se detalla en esa página.

Crea un archivo de texto llamado ‘mapdrive.reg’ con estos contenidos:

REGEDIT4 

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

Luego debería poder hacer doble clic en él para configurarlo, sin necesidad de herramientas de terceros.

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

Encontré esto porque estaba buscando una mejora sobre mis scripts de inicio de substancia - funcionaban bien, pero a veces se ejecutaban después de que las carpetas se estrellaran en el inicio porque mi unidad no estaba todavía mapeada.

Primero, edité el registro, pero no conseguí que funcionara. Sin embargo, me encontré con esta alternativa, que si bien no usa subst me responde la pregunta: “¿Cómo hacer que el mapeo de SUBST sea persistente a través de los reinicios?” No utilice subst… (inserte ‘computerName’ y ‘pathName’ apropiados):

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

Adapté esto de la sugerencia de Hank Arnold en esta discusión sobre el mapeo de unidades locales . Había adivinado que \NmyComputerName\c podría funcionar, pero no sabía aplicar el $.

Antes de intentar el comando “net use”, intenta navegar a

\computerName\c$

para asegurarte de que tienes el ‘computerName’ correcto.

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

Coloca un archivo por lotes en tu carpeta de inicio que haga todos los SUBST que quieras hacer.

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

Como el PSubst original tiene algunas limitaciones y parece estar concluido por el autor, tuve que codificar una nueva versión para mis necesidades, arreglando algunos problemas y añadiendo funcionalidad y flexibilidad.

Compruebe aquí el archivo por lotes de la versión 3 de PSubst https://github.com/cyberponk/psubst

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

Nota: Este trabajo no tiene ninguna intención de demeritar al autor original y sólo llegó a existir debido a la necesidad real, como sigue:

  • Como administrador de newtork tengo la necesidad constante de SUBST'ing unidades de red y juguetear con diferentes usuarios de la red.

  • Como no todo el mundo es un experto en Windows, pensé que la elevación automática del administrador con el manejo de errores ayudaría, basándome en los comentarios que leí en la web.

  • Como algunas personas tuvieron problemas con el orden de los argumentos, pensé que sería mejor que el script funcionara con argumentos en cualquier orden.

No puedo recordar cada funcionalidad añadida, pero cada inclusión se hizo puramente por necesidad. Estoy compartiendo el código para que otros no se encuentren con los problemas que yo tuve. Con esto no hay otra intención que la de compartir y ayudar.

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

Estoy ampliando la respuesta de davr porque cualquier archivo que se borre de la unidad asignada se elimina permanentemente en lugar de ir a la papelera de reciclaje. Este archivo REG se basa en la información recopilada de este artículo de TechNet , que trata sobre cómo habilitar la papelera de reciclaje. El ejemplo asigna la unidad Q virtual a la carpeta “OneDrive - Test”, y habilita la papelera de reciclaje en la unidad Q. Cambia las rutas y el nombre para adaptarlos a tu situación.

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

Si sólo tiene una unidad asignada, puede utilizar el GUID {9147E464-33A6-48E2-A3C9-361EFD417DEF}. Si tiene varias unidades mapeadas, entonces cada una de ellas debe ser emparejada con un GUID de su generador de GUIDs favorito.

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

Aquí hay dos ejemplos que utilizan reg.exe para añadir la entrada requerida a la subclave del Registro Run de la colmena HKEY_CURRENT_USER. Estos ejemplos se pueden adaptar según sea necesario. Abra una ventana de cmd no elevada como el usuario actual, y pegue la línea adaptada.

El caso de uso más sencillo:

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

Donde el argumento de la ruta de SUBST tiene una variable de entorno incrustada:

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

Observe que hay dos lotes de escape de caracteres en el segundo ejemplo. Las barras invertidas para las comillas dobles interiores que rodean el argumento de la ruta, y las caretas para los signos de porcentaje de la variable de entorno. Las comillas dobles no siempre son necesarias, pero para evitar problemas con los nombres de carpetas que contienen espacios se recomienda utilizarlas.