
Eu uso este script para restaurar e fazer backup de unidades de rede
SET path=C:\Users\%USERNAME%\Desktop\drives_backup.reg
C:\Windows\System32\reg.exe Export HKEY_CURRENT_USER\Network %path%
Funciona muito bem, mas como não estou usando net use
e editando o registro, tenho que fazer o usuário fazer logoff e entrar novamente para que as alterações sejam aplicadas. Existe alguma maneira de fazer a mesma coisa sem precisar fazer logoff do usuário?
Também tenho um script .vbs que salva as unidades de rede mapeadas no seguinte formato
G: (\\path1\GROUPS)
mas não tenho ideia de como traduzir teses para
net use G: \\path1\GROUPS
Responder1
Você pode exportar o arquivo .reg e, em seguida, iterá-lo e usar esses dados com 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 roteiro
- exporta o arquivo .reg para o caminho fornecido
- lê o arquivo .reg exportado e procura linhas relevantes
- para cada rede encontrada executa
net use FOUNDDRIVELETTER: \\found\network
Se bem entendi, o arquivo .reg não muda com frequência. Diga-me se deseja que a função "exportar arquivo .reg" seja separada/opcional da net use
peça.
Além disso, recomendo fortemente que você não nomeie as variáveis como "caminho".