ログオフせずにマップされたネットワークドライブを復元およびバックアップ

ログオフせずにマップされたネットワークドライブを復元およびバックアップ

このスクリプトを使用してネットワークドライブを復元およびバックアップします

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

答え1

.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 ファイルは実際には頻繁に変更されるわけではありません。「.reg ファイルのエクスポート」機能をその部分とは別個またはオプションにしたい場合はお知らせくださいnet use

また、変数に「path」という名前を付けないことを強くお勧めします。

関連情報