了解“拒绝访问”以便恢复权限 - icacls 和 takeown

5 windows permissions file-permissions icacls windows-10

    \n
  • 在获得文件和文件夹的所有权之前,我想了解如何查看当前权限以便恢复它们。
  • \n
  • 我收到一条“访问被拒绝”消息,无法在 Windows 10 环境中使用提升的命令提示符查看或保存位置的权限:C:\\ProgramData\\Microsoft\\Windows\\SystemData。
  • \n
  • 看起来我可能需要先获得所有权,然后才能查看权限,然后使用 icacls \'reset\' 命令来修复它。
  • \n
\n\n

如果我尝试查看权限:

\n\n
C:\\Windows\\system32>icacls "C:\\ProgramData\\Microsoft\\Windows\\SystemData"\nC:\\ProgramData\\Microsoft\\Windows\\SystemData: Access is denied.\nSuccessfully processed 0 files; Failed processing 1 files\n
Run Code Online (Sandbox Code Playgroud)\n\n

如果我尝试保存 ACL 文件:

\n\n
C:\\Windows\\system32>icacls C:\\ProgramData\\Microsoft\\Windows\\SystemData /save "C:\\SystemData.acl" /t\nC:\\ProgramData\\Microsoft\\Windows\\SystemData: Access is denied.\nSuccessfully processed 0 files; Failed processing 1 files\n
Run Code Online (Sandbox Code Playgroud)\n\n

在“了解如何使用 Icals & Takeown”的答案中,该文件夹的所有者是 NT SERVICE\\TrustedInstaller,这实际上可能是 Windows 10 中的标准,尽管我只是猜测。

\n\n

我应该只使用 takeown 和 icals,找出权限,然后使用重置命令。

\n\n
takeown /f C:\\ProgramData\\Microsoft\\Windows\\SystemData /r\nicacls C:\\ProgramData\\Microsoft\\Windows\\SystemData /grant "%USERDOMAIN%\\%USERNAME%":(F) /t\nMake Changes\nicacls C:\\ProgramData\\Microsoft\\Windows\\SystemData /setowner "NT SERVICE\\TrustedInstaller" /t\nicacls C:\\ProgramData\\Microsoft\\Windows\\SystemData /reset /t\n
Run Code Online (Sandbox Code Playgroud)\n\n

与 ACL 类似,在创建之前需要获得所有权,或者是否有解决方法?

\n\n

阅读:

\n\n\n

小智 4

如何在Windows 10中查看访问被拒绝的文件夹的权限

我猜测系统将是有权访问此文件夹的一个用户,因此在此之后我认为我找到了一种以系统身份运行命令提示符的解决方案。

请参阅 - SO 如何在本地系统帐户下运行 CMD.exe?

  1. 从 Microsoft SysInternals下载PStools 。
  2. 以管理员身份运行 CMD,导航到 psexec.exe 和 psexec64.exe 的文件夹并运行以下命令:
psexec -i -s cmd.exe 
Run Code Online (Sandbox Code Playgroud)

或者如果你想要 64 位...

psexec64 -i -s cmd.exe
Run Code Online (Sandbox Code Playgroud)
  1. 现在命令提示符窗口已作为系统打开。

  2. 现在我们可以查看文件夹的权限...

icacls C:\ProgramData\Microsoft\Windows\SystemData

C:\ProgramData\Microsoft\Windows\SystemData 
                                            NT SERVICE\TrustedInstaller:(F)
                                            NT AUTHORITY\SYSTEM:(F)
Run Code Online (Sandbox Code Playgroud)
  1. 现在还可以按照此处所述保存和重置 ACL
icacls C:\ProgramData\Microsoft\Windows\SystemData /save "C:\SystemData.acl" /t
icacls C:\ProgramData\Microsoft\Windows /restore "C:\SystemData.acl"
Run Code Online (Sandbox Code Playgroud)
  1. 在标准管理命令提示符(而不是系统)中,尚未研究如何在使用 takeown 后恢复所有权。目前使用上面的系统命令提示符或者ACL解决方案可以恢复权限。然而,我们发现可以通过任务计划程序作为系统运行批处理脚本,然后不需要更改权限。

阅读:


归档时间:

查看次数:

11779 次

最近记录:

6 年,10 月 前