web-dev-qa-db-ja.com

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

私はこれを持っています、確かに少し厳しいですが仕事をします、ドライブで実行するとドライブ上のファイルとフォルダーへのすべての権利を与えます、今私はそれをサブディレクトリに入れるのを手助けする必要があるので、私は必要ありませんすべてのフォルダ内にbatスクリプトをコピーして実行する必要があります。

takeown /f *
icacls * /grant Administrator:F
icacls * /grant Administrators:F
icacls * /grant SYSTEM:F
icacls * /grant "Authenticated Users":F

ドライブを再帰的にトラバースするにはどうすればよいですか?

6
nwgat

短い答え:/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.をオンにします

enter image description here

これでright click menu -> Send ToFix Permissionsというアイテムが作成され、Send Toを実行するすべてのファイルまたはフォルダーに、EveryoneグループにFull Access権限が付与されます。フォルダで実行すると、再帰的に実行され、フォルダ内のすべての子にアクセス許可が適用されます。


バッチファイルを%AppData%フォルダーに保存します。これは、ドメインにいて、それが私の移動プロファイルの一部になっているため、接続して接続しているすべてのコンピューターで使用できるようになるためです。

7

これはネットワーク共有で機能しますか?

Takeown /f *
icacls * /grant Administrator:F
icacls * /grant Administrators:F
icacls * /grant SYSTEM:F
icacls * /grant "Authenticated Users":F
icacls * /grant "doamin\users":R
1
user259728