web-dev-qa-db-ja.com

権限を元に戻すことができるように「アクセスが拒否されました」を理解する-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を使用して、アクセス許可を見つけてから、resetコマンドを使用する必要があります。

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と同様に、作成する前に所有権を取得する必要がありますか、それとも回避策がありますか?

読書:

3
Under A Tree

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

システムはこのフォルダーにアクセスできる1人のユーザーであると思ったので、その後、コマンドプロンプトをシステムとして実行するためのソリューションを見つけました。

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

  1. ダウンロード PStools 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ソリューションのアクセス許可を使用して復元できます。ただし、システムとしてタスクスケジューラを介してバッチスクリプトを実行できることを発見しました。その場合、権限を変更する必要はありません。

読み:

3
Under A Tree