Restaure e faça backup de unidades de rede mapeadas sem fazer logoff

Restaure e faça backup de unidades de rede mapeadas sem fazer logoff

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 usee 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 executanet 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 usepeça.

Além disso, recomendo fortemente que você não nomeie as variáveis ​​como "caminho".

informação relacionada