%ProgramFiles%
Windows Server 2019 の管理者ユーザー アカウントを使用して、、、およびのユーザー アカウントの NTFS アクセス許可を変更しようとしています%ProgramFiles(x86)%
が、フォルダーが によって所有されているため、エラーが%WinDir%
発生します。access denied
TrustedInstaller
- 基本権限ダイアログと詳細権限ダイアログの両方を試しましたが、詳細権限ダイアログを使用して権限を変更する
C:
と、サブ項目への変更が伝播するときに、これらの3つのフォルダーで失敗します。 - フォルダの所有権を変更することは可能だと思いますが、そうすることは良い考えではないと思います。
なぜこのようなことが起こるのでしょうか、またそれを回避する方法はあるのでしょうか?
- 私が実現しようとしているのは、ユーザー アカウントをサンドボックス化し、単一の自動化目的で使用される 2 つのアプリ (1 つは のサブフォルダーにあり、
%ProgramFiles%
もう 1 つは別のドライブにあります) を除くすべてのアプリの実行権限を拒否することです。
答え1
これはフォルダの現在ACL は、管理者アカウントに ACL を設定する権限を付与しません。所有者でない場合は、明示的にその種のアクセスを許可されない限り、ACL を変更することはできません。これは管理者にも当てはまります。
(フル コントロールを付与するアクセス エントリは(IO)
「継承のみ」としてマークされています。これは子オブジェクトにのみ影響し、元のフォルダーには影響しません。)
これを回避する 1 つの方法は、SeRestorePrivilege をアクティブ化することです (例: PSPrivilege コマンドレットを使用)。これは、エクスプローラーが任意の所有者を設定するために使用するものですが、icacls
変更を加える前に権限を手動で再度無効にするため、機能しません。ただし、別のツール (PowerShell 独自のSet-Acl
) を使用すると機能する可能性があります。
もう 1 つの方法は、TrustedInstaller 権限で任意のコマンドを実行できるようなツールを使用することですgsudo --ti
(Windows コンポーネントが権限を取得するのとほぼ同じ方法です)。