質問: ユーザーのファイルへの削除アクセスを拒否しますが、アクセスの実行は許可します 実行可能ファイルを削除したり名前を変更したりすることはできないが、実行できるようにアクセス許可を設定したい。削除を拒否すると、実行もできなくなります。どうして?削除できないが実行可能にする方法はありますか? (高度なアクセス許可を使用して、ファイルの実行と読み取りを許可するように設定しています)。
回答: ファイルの削除または名前の変更を防止しますが、読み取りおよび実行アクセスは許可しますロックダウンするファイルに対して以下の構文を使用し、それが適用されるユーザー名(またはセキュリティグループ名)を使用して icacls を試してください。各コマンドの上のスクリプトには、_:::_が追加されたコメントメモがあり、それぞれがアクセス許可をaclするために具体的に何をするかを説明しています。これを実行する前に行った変更を行う前に、aclアクセス許可を最初に設定された方法にリセットする必要があります。それが完了したら、アカウントがファイルを実行できることを確認してから、以下のスクリプトを実行します。基本的に、このは、実行可能ファイルが存在するフォルダーとファイル自体へのacl継承を無効にします。次に、は、フォルダーと実行可能ファイルの両方に明示的な読み取りと実行を付与します。ファイルの名前変更を防ぐために、ファイルの作成を拒否/データの書き込み実行可能ファイルが存在するフォルダーへの書き込み。最後に、明示的にフォルダと実行可能ファイルの両方への削除アクセスを拒否します。脚本_@echo on setlocal enabledelayedexpansion set "exe=c:\folder\path\file.exe" set "uaccount=username" for %%a in ("%exe%") do set "efolder=%%~dpa" ::: this strips the last "\" from the folder the exe resides so icacls can process set "efolder=!efolder:~0,-1!" ::: disables acl inheritence on the folder the exe file resides but copies all acls as inherited before removing icacls "!efolder!" /inheritance:d /grant:r "%uaccount%:(oi)(io)" /c ::: remove all granted permission acls on only the folder the exe file resides icacls "!efolder!" /remove:g "%uaccount%" /c ::: remove all denied permission acls on only the folder the exe file resides icacls "!efolder!" /remove:g "%uaccount%" /c ::: grants explicit read and execute acl access on only the folder the exe file resides icacls "!efolder!" /grant:r "%uaccount%:(rx)" /c ::: denies delete acl access on only the folder the exe file resides icacls "!efolder!" /deny "%uaccount%":(de) ::: denies create files / write data acl access on only the folder the exe file resides icacls "!efolder!" /deny "%uaccount%":(wd) ::: disables acl inheritence on the exe file only but copies all acls as inherited before removing icacls "%exe%" /inheritance:d /grant:r "%uaccount%:(oi)(io)" /c ::: remove all granted permission acls on only the exe file icacls "%exe%" /remove:g "%uaccount%" /c ::: remove all denied permission acls on only the exe file icacls "%exe%" /remove:g "%uaccount%" /c ::: grants explicit read and execute acl access only to the exe file icacls "%exe%" /grant:r "%uaccount%:(rx)" /c ::: grants an explicit deny of delete acl access only to the exe file icacls "%exe%" /deny "%uaccount%":(de) pause exit _ 注:_exe=_変数の値を、ロックダウンする実行可能ファイルへの完全な明示的パスに変更し、_uaccount=_変数の値を次のように変更します。これを実行するアカウント(またはグループ)のユーザー名(またはセキュリティグループ名)である。 guiacl権限の明確化exeが存在するフォルダ exeファイル自体 その他のリソース setlocal enabledelayedexpansion icacls for 可変部分文字列