Восстановление и резервное копирование подключенных сетевых дисков без выхода из системы

666
BobbyT

Я использую этот скрипт для восстановления и резервного копирования сетевых дисков

SET path=C:\Users\%USERNAME%\Desktop\drives_backup.reg  C:\Windows\System32\reg.exe Export HKEY_CURRENT_USER\Network %path% 

Это прекрасно работает, но поскольку я не использую net useи не редактирую реестр, я должен заставить пользователя выйти из системы и снова войти в систему, чтобы изменения вступили в силу. Есть ли способ к тому же без необходимости выходить из системы?

Я также скрипт .vbs, который сохраняет подключенные сетевые диски в следующем формате

G: (\\path1\GROUPS) 

но понятия не имею, как перевести тезисы на

net use G: \\path1\GROUPS 
0

1 ответ на вопрос

1
Regejok

Вы можете экспортировать файл .reg, а затем перебрать его и использовать эти данные с 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!" ) 

Этот скрипт

  • экспортирует файл .reg по указанному пути
  • читает экспортированный файл .reg и ищет соответствующие строки
  • для каждой найденной сети выполняется net use FOUNDDRIVELETTER: \\found\network

Если я правильно понимаю, файл .reg на самом деле не часто меняется. Скажите, хотите ли вы, чтобы функция "export .reg file" была отдельной / необязательной для net useчасти.

Также я настоятельно рекомендую не называть переменные «путь».