我必须接管特殊文件夹C:\Program Files\WindowsApps
才能修复图标问题。该问题现已解决,所以我想将权限重置为我拥有该文件夹之前的权限。
我恢复了NT SERVICE\TrustedInstaller
所有者并删除了我的帐户的权限条目:
但我仍然可以完全控制该文件夹,并且可以在资源管理器中浏览该文件夹,而不会收到通常的警告,提示我必须取得所有权:
是否可以恢复该文件夹的默认权限?
答案1
我对这个问题苦苦挣扎了很久。
首先不使用
icacls "C:\Program Files\WindowsApps" /reset /t /c /q
。 它会删除特殊条件权限从文件夹并赋予它 Windows 默认和继承的 ACL,这不应该对 WindowsApps 执行。
这是我发现的对我有用的答案(Win10 和 Win11 21H2)并且没有造成任何麻烦(至少我知道的麻烦)
首先以管理员权限打开命令提示符
通过运行下一个命令确保您拥有 WindowsApps 文件夹的所有权
takeown /f "%ProgramFiles%\WindowsApps"
- 运行以下命令恢复该文件夹的初始权限
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
- 将 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 命令参考
我可能还重新启动了计算机,但我认为这不是必需的。