了解「拒絕存取」以便恢復權限 - 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中查看存取被拒絕的資料夾的權限

我猜測系統將是有權訪問此資料夾的一個用戶,因此在此之後我認為我找到了一種以系統身份運行命令提示符的解決方案。

請參閱 - SO 如何在本機系統帳戶下執行 CMD.exe?

  1. 下載PS工具來自 Microsoft SysInternals。
  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解決方案可以恢復權限。然而,我們發現可以透過任務計劃程序作為系統運行批次腳本,然後不需要更改權限。

閱讀:

相關內容