「アクセス拒否」を理解して権限を元に戻す - icacls と takeown

「アクセス拒否」を理解して権限を元に戻す - icacls と takeown
  • ファイルとフォルダーの所有権を取得する前に、現在の権限を表示して元に戻す方法を理解しておきたいと思います。
  • Windows 10 環境で、管理者特権のコマンド プロンプトを使用して C:\ProgramData\Microsoft\Windows\SystemData の場所のアクセス許可を表示または保存しようとすると、「アクセスが拒否されました」というメッセージが表示されます。
  • 最初に所有権を取得し、権限を表示し、その後 icacls 'reset' コマンドなどを使用して修正する必要があるようです。

権限を表示しようとすると:

C:\Windows\system32>icacls "C:\ProgramData\Microsoft\Windows\SystemData"
C:\ProgramData\Microsoft\Windows\SystemData: Access is denied.
Successfully processed 0 files; Failed processing 1 files

ACL ファイルを保存しようとすると:

C:\Windows\system32>icacls C:\ProgramData\Microsoft\Windows\SystemData /save "C:\SystemData.acl" /t
C:\ProgramData\Microsoft\Windows\SystemData: Access is denied.
Successfully processed 0 files; Failed processing 1 files

の回答では「IcalsとTakeownの使い方を理解する」フォルダーの所有者は NT SERVICE\TrustedInstaller でしたが、これは実際には Windows 10 の標準である可能性がありますが、これは推測にすぎません。

takeown と icals を使用して権限を確認し、リセット コマンドを使用するだけでよいでしょうか。

takeown /f C:\ProgramData\Microsoft\Windows\SystemData /r
icacls C:\ProgramData\Microsoft\Windows\SystemData /grant "%USERDOMAIN%\%USERNAME%":(F) /t
Make Changes
icacls C:\ProgramData\Microsoft\Windows\SystemData /setowner "NT SERVICE\TrustedInstaller" /t
icacls C:\ProgramData\Microsoft\Windows\SystemData /reset /t

ACL の場合も同様に、作成する前に所有権を取得する必要がありますか、それとも回避策がありますか?

読む:

答え1

Windows 10 でアクセス拒否フォルダーの権限を表示する方法

システムはこのフォルダにアクセスできる 1 人のユーザーであると推測したので、その後考えた結果、システムとしてコマンド プロンプトを実行するための解決策を見つけました。

参照 - ローカル システム アカウントで CMD.exe を実行するにはどうすればよいでしょうか?

  1. ダウンロードPSツールSysInternals、Microsoft より。
  2. 管理者として CMD を実行し、psexec.exe と psexec64.exe のフォルダーに移動して、以下を実行します。
psexec -i -s cmd.exe 

または 64 ビットが必要な場合...

psexec64 -i -s cmd.exe
  1. これで、システムとしてコマンド プロンプト ウィンドウが開きました。

  2. これで、フォルダーの権限を表示できます...

icacls C:\ProgramData\Microsoft\Windows\SystemData

C:\ProgramData\Microsoft\Windows\SystemData 
                                            NT SERVICE\TrustedInstaller:(F)
                                            NT AUTHORITY\SYSTEM:(F)
  1. また、ACLを保存して、次のように復元できるようになりました。ここで説明
icacls C:\ProgramData\Microsoft\Windows\SystemData /save "C:\SystemData.acl" /t
icacls C:\ProgramData\Microsoft\Windows /restore "C:\SystemData.acl"
  1. システムではなく標準の管理者コマンド プロンプトでは、takeown を使用した後にこのように所有権を復元する方法をまだ検討していません。現在、上記のシステム コマンド プロンプトまたは ACL ソリューションを使用して、アクセス許可を復元できます。ただし、システムとしてタスク スケジューラを介してバッチ スクリプトを実行するだけで済むことがわかりました。その場合、アクセス許可を変更する必要はありません。

読む:

関連情報