
Utilizo este script para restaurar y hacer copias de seguridad de unidades de red.
SET path=C:\Users\%USERNAME%\Desktop\drives_backup.reg
C:\Windows\System32\reg.exe Export HKEY_CURRENT_USER\Network %path%
Funciona muy bien, pero como no lo estoy usando net use
y estoy editando el registro, tengo que hacer que el usuario cierre sesión y vuelva a iniciar sesión para que se apliquen los cambios. ¿Hay alguna manera de hacer lo mismo sin tener que cerrar la sesión del usuario?
También tengo un script .vbs que guarda las unidades de red asignadas en el siguiente formato
G: (\\path1\GROUPS)
pero no tengo idea de cómo traducir las tesis a
net use G: \\path1\GROUPS
Respuesta1
Puede exportar el archivo .reg y luego iterarlo y usar esos datos con net use
:
setlocal enabledelayedexpansion
SET _path=C:\Users\%USERNAME%\Desktop\drives_backup.reg
C:\Windows\System32\reg.exe Export HKEY_CURRENT_USER\Network %_path%
for /f "tokens=1* delims=^=" %%a in ('type "%_path%"^|findstr /b .RemotePath') do (
set network=%%~b
set network=!network:\\=\!
for /f "delims=[]" %%# in ('find /n %%b "%_path%"') do set n=%%#
set /a n-=1
for /f "delims=[] tokens=2" %%# in ('find /n /v "" "%_path%"^|findstr /b /c:"[!n!]"') do net use %%~n#: "!network!"
)
este guión
- exporta el archivo .reg a la ruta indicada
- lee el archivo .reg exportado y busca líneas relevantes
- por cada red encontrada se ejecuta
net use FOUNDDRIVELETTER: \\found\network
Si entendí correctamente, el archivo .reg en realidad no cambia con frecuencia. Dígame si desea que la función "exportar archivo .reg" sea independiente/opcional de la net use
pieza.
Además, le recomiendo encarecidamente que no nombre las variables como "ruta".