次のホストファイルを置き換えるバッチスクリプトを作成しています。
%WinDir%\system32\drivers\etc\hosts
特定のパスにある backup に置き換えます。
バッチスクリプト(管理者権限で実行):
%homedrive%\test\hosts-replace.bat
コンテンツ:
attrib -s -h -r "%WinDir%\system32\drivers\etc\hosts"
copy /v /y "%HOMEDRIVE%\test\hosts" "%WinDir%\system32\drivers\etc\hosts"
attrib +s +h +r "%WinDir%\system32\drivers\etc\hosts"
問題は、これで十分かどうかわからない、 bleepingcomputer.com が実行を推奨しているためです交換前のこのコマンド(ただし、サイトではコマンドを元に戻す方法やその目的については説明されていません)。
echo,Y|cacls "%WinDir%\system32\drivers\etc\hosts" /G everyone:f
質問:hostsファイルをバッチスクリプトに置き換え、hostsファイルのアクセス許可をデフォルトにリセットする正しい方法は何ですか?
前もって感謝します
権限の質問に答えるには、次の方法でeveryone
アクセスを取り消すことができます。
echo,Y|cacls "%WinDir%\system32\drivers\etc\hosts" /e /r everyone
これには、全員がグループであるため、すべての権限が取り消されるという副作用があります。そのため、権限を完全にリセットする必要があります。簡単な方法は、hostsファイルをコピーする代わりに削除することです。これにより、親フォルダーによって割り当てられたアクセス許可がリセットされます。 etc
フォルダーのアクセス許可も変更されていない限り、次の問題に問題はありません。
del /f "%WinDir%\system32\drivers\etc\hosts"
copy /v "%HOMEDRIVE%\test\hosts" "%WinDir%\system32\drivers\etc\hosts"
copy /y
のみを使用しても、ファイルが削除および再作成されないため、アクセス許可がデフォルトにリセットされません。
どれも必要ありません。管理者はhosts
ファイルを変更できます。attrib
またはcacls
は必要ありません。
使用するだけ:
copy /v /y "%HOMEDRIVE%\test\hosts" "%WinDir%\system32\drivers\etc\hosts"