管理者権限を付与し、すべてのファイルとフォルダを調べるバッチスクリプト

管理者権限を付与し、すべてのファイルとフォルダを調べるバッチスクリプト

私はこれを持っています。確かに少し厳しいですが、目的は果たします。ドライブで実行すると、ドライブ上のファイルとフォルダーに対するすべての権限が与えられます。今度は、これをサブ ディレクトリーに移動できるようにして、すべてのフォルダー内に 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

関連情報