私はこれを持っています。確かに少し厳しいですが、目的は果たします。ドライブで実行すると、ドライブ上のファイルとフォルダーに対するすべての権限が与えられます。今度は、これをサブ ディレクトリーに移動できるようにして、すべてのフォルダー内に bat スクリプトをコピーして実行しなくて済むようにするための支援が必要です。
takeown /f *
icacls * /grant Administrator:F
icacls * /grant Administrators:F
icacls * /grant SYSTEM:F
icacls * /grant "Authenticated Users":F
ドライブを再帰的にトラバースするにはどうすればよいでしょうか?
答え1
短い答え: /t
(i)cacls に追加
長い答え:
これは、ファイルをすべてのユーザーがアクセスできるようにする場合に私が使用するスクリプトです。各フラグの機能に関するコメントが含まれています。これをフォルダー内のどこかのバッチ ファイルに配置するだけです%AppData%
。
REM --v2 -----------------------------------------------------------
takeown /r /d y /f %1
icacls %1 /t /grant Everyone:F
REM takeown /r /d y /f will set the owner to the Administrators group recursively.
REM /t makes it recursive
REM /grant Sets the permision to the following user, replaces existing permissions for the specified uesr.
REM :f Grants full controll permission.
REM ----------------------------------------------------------------
REM --v1 -----------------------------------------------------------
REM cacls %1 /t /e /g Everyone:f
REM /t makes it recursive
REM /e Edits the ACL instead of replaceing it
REM /g Grants permissions to the following users
REM :f Grants full controll permission.
REM ----------------------------------------------------------------
次に、%AppData%\Microsoft\Windows\SendTo
バッチ スクリプトへのショートカットを作成します。
そのショートカットのプロパティを編集し、Advanced...
チェックボックスをオンにしますRun as Administrator.
これで、right click menu -> Send To
という項目が作成Fix Permissions
され、Send To
それに対して を実行すると、Everyone グループFull Access
に権限が付与されます。これをフォルダーに対して実行すると、フォルダーを再帰的に処理し、フォルダー内のすべての子に権限が適用されます。
私はドメイン上にいるので、バッチ ファイルを%AppData%
フォルダーに保存します。これにより、バッチ ファイルはローミング プロファイルの一部となり、接続するどのコンピューターでも使用可能になります。
答え2
これはネットワーク共有でも機能しますか?
Takeown /f *
icacls * /grant Administrator:F
icacls * /grant Administrators:F
icacls * /grant SYSTEM:F
icacls * /grant "Authenticated Users":F
icacls * /grant "doamin\users":R