重置 C:\Program Files\WindowsApps 的默认 ACL

重置 C:\Program Files\WindowsApps 的默认 ACL

我必须接管特殊文件夹C:\Program Files\WindowsApps才能修复图标问题。该问题现已解决,所以我想将权限重置为我拥有该文件夹之前的权限。

我恢复了NT SERVICE\TrustedInstaller所有者并删除了我的帐户的权限条目:

在此处输入图片描述

但我仍然可以完全控制该文件夹,并且可以在资源管理器中浏览该文件夹,而不会收到通常的警告,提示我必须取得所有权:

在此处输入图片描述

是否可以恢复该文件夹的默认权限?

答案1

我对这个问题苦苦挣扎了很久。

首先不使用 icacls "C:\Program Files\WindowsApps" /reset /t /c /q。 它会删除特殊条件权限从文件夹并赋予它 Windows 默认和继承的 ACL,这不应该对 WindowsApps 执行。


这是我发现的对我有用的答案(Win10 和 Win11 21H2)并且没有造成任何麻烦(至少我知道的麻烦)

  1. 首先以管理员权限打开命令提示符

  2. 通过运行下一个命令确保您拥有 WindowsApps 文件夹的所有权

takeown /f "%ProgramFiles%\WindowsApps"
  1. 运行以下命令恢复该文件夹的初始权限
cacls "%programfiles%\WindowsApps" /s:"D:PAI(A;;FA;;;S-1-5-80-956008885-3418522649-1831038044-1853292631-2271478464)(A;OICIIO;GA;;;S-1-5-80-956008885-3418522649-1831038044-1853292631-2271478464)(A;;0x1200a9;;;S-1-15-3-1024-3635283841-2530182609-996808640-1887759898-3848208603-3313616867-983405619-2501854204)(A;OICIIO;GXGR;;;S-1-15-3-1024-3635283841-2530182609-996808640-1887759898-3848208603-3313616867-983405619-2501854204)(A;;FA;;;SY)(A;OICIIO;GA;;;SY)(A;CI;0x1200a9;;;BA)(A;OICI;0x1200a9;;;LS)(A;OICI;0x1200a9;;;NS)(A;OICI;0x1200a9;;;RC)(XA;;0x1200a9;;;BU;(Exists WIN://SYSAPPID))"

或者如果cacls无法访问,请使用icacls。为此,创建temp.txt包含以下内容的文件并将其保存在某处,例如c:\

windowsapps
D:PAI(A;;FA;;;S-1-5-80-956008885-3418522649-1831038044-1853292631-2271478464)(A;OICIIO;GA;;;S-1-5-80-956008885-3418522649-1831038044-1853292631-2271478464)(A;;0x1200a9;;;S-1-15-3-1024-3635283841-2530182609-996808640-1887759898-3848208603-3313616867-983405619-2501854204)(A;OICIIO;GXGR;;;S-1-15-3-1024-3635283841-2530182609-996808640-1887759898-3848208603-3313616867-983405619-2501854204)(A;;FA;;;SY)(A;OICIIO;GA;;;SY)(A;CI;0x1200a9;;;BA)(A;OICI;0x1200a9;;;LS)(A;OICI;0x1200a9;;;NS)(A;OICI;0x1200a9;;;RC)(XA;;0x1200a9;;;BU;(Exists WIN://SYSAPPID))

然后运行

icacls "%programfiles%" /restore c:\temp.txt
  1. 将 WindowsApps 的所有权交还给 TrustedInstaller
icacls "%programfiles%\WindowsApps" /setowner "nt service\trustedinstaller"

如果在 cmd 中不起作用 - 右键单击​​资源管理器中的 WindowsApps 文件夹,打开属性并转到安全选项卡,单击高级,然后单击所有者对应的更改按钮。输入NT Service\TrustedInstaller(NT 和服务之间有空格,不带引号)并单击检查名称按钮。单击确定并最终应用更改。


经过此操作后,WindowsApps 文件夹的权限应恢复为默认值,并且所有 UWP 应用程序都应正常运行(例如 wt.exe)


PS WindowsApps 的默认 ACL 是

NT SERVICE\TrustedInstaller:(F)
NT SERVICE\TrustedInstaller:(OI)(CI)(IO)(F)
S-1-15-3-1024-3635283841-2530182609-996808640-1887759898-3848208603-3313616867-983405619-2501854204:(RX)
S-1-15-3-1024-3635283841-2530182609-996808640-1887759898-3848208603-3313616867-983405619-2501854204:(OI)(CI)(IO)(GR,GE)
NT AUTHORITY\SYSTEM:(F)
NT AUTHORITY\SYSTEM:(OI)(CI)(IO)(F)
BUILTIN\Administrators:(CI)(RX)
NT AUTHORITY\LOCAL SERVICE:(OI)(CI)(RX)
NT AUTHORITY\NETWORK SERVICE:(OI)(CI)(RX)
NT AUTHORITY\RESTRICTED:(OI)(CI)(RX)
BUILTIN\Users:(Rc,S,RD,REA,X,RA)

上面的命令就是为了这样设置。


我从 winhelponline 博客中获取了大部分有用的信息,因此我将其归功于它。我选择写长答案而不是只给出链接,因为我认为最好将有用的信息放在多个地方,而不是只放在一个博客中。

答案2

更新:根据评论,不要再使用此命令. 使用投票的答案或由 Agentrev 提供的工具 -> https://github.com/AgentRev/WindowsAppsUnfukker

(顺便说一句,我从来没有遇到过 Windows 10 PC 上的 /reset 问题,但 UWP 中发生了大量变化)

在大多数情况下重置权限是有效的,但是您需要系统权限才能运行该命令。

最简单的解决方案是使用执行程序(来自 Sysinternals)。

打开提升的命令提示符或 PowerShell 并运行psexec以获取 SYSTEM shell。

psexec.exe -s -i cmd

在该命令提示符中,运行重置权限命令:

icacls "C:\Program Files\WindowsApps" /reset /t /c /q

答案3

像这样重置此文件夹的权限:

icacls "C:\Program Files\*" /q /c /t /reset

事情是这样的:

/reset - Replaces ACLs with default inherited ACLs for all matching files.
/t     - Performs the operation on all specified files in the current
         directory and its subdirectories.

答案4

我不必使用前面提到的恢复磁盘选项。我只需从命令提示符管理员模式

icacls "C:\Program Files\WindowsApps" /reset /t /c /q

参数说明:

  • /重置用所有匹配文件的默认继承 ACL 替换 ACL。
  • /吨 对当前目录及其子目录中的所有指定文件执行操作。
  • /C 无论文件是否存在错误,都继续操作。错误消息仍会显示。
  • /q 抑制成功消息。

参考:icacls 命令参考

我可能还重新启动了计算机,但我认为这不是必需的。

相关内容