无法删除引用孤立 SID 的 ACL 条目
Posted
技术标签:
【中文标题】无法删除引用孤立 SID 的 ACL 条目【英文标题】:Can't remove ACL entry that refers to orphaned SID 【发布时间】:2021-06-12 00:18:30 【问题描述】:我(仍在)运行 Win-7 Home Premium。我了解这些风险,并且出于多种原因,我仍然不想升级到 Win-10 或重建我的 win-7 安装来纠正这个问题。该系统是 8 年前建立的,多年来,我创建和删除了许多用户帐户。我目前有三个用户帐户:
Administrator (SID 500)
AdminUser (SID 1003)
NormalUser (SID 1007)
在此过程中,我删除了 Windows 在其原始安装期间创建的原始用户帐户,我认为该帐户被分配了 SID 1000。
在当前系统上,事情通常按预期工作。但我偶尔会遇到奇怪的行为和失败。在故障排除过程中,我发现许多文件夹保留了引用现在孤立的 SID 1000 的 ACL 条目。例如,命令
icacls c:\ProgramData /save output.txt
产生以下
ProgramData
D:PAI(A;OICI;FA;;;SY)(A;OICI;FA;;;BA)(A;OICI;FA;;;S-1-5-21-xxx-yyy-zzz-1000)
以上表示NT AUTHORITY\SYSTEM
和BUILTIN\Administrators
拥有Full Control
权限。它还列出了现在孤立的 1000 个用户帐户的完整 SID。我想删除这些对虚假 SID 的引用,但命令:
icacls C:\ProgramData /remove S-1-5-21-xxx-yyy-zzz-1000
从提升的命令提示符运行时不执行任何操作,报告 Successfully processed 0 files
。使用文件管理器时,文件夹Properties
的Security
选项卡的Advanced Security Settings
对话框中的Remove
按钮灰显。所以我也不能以这种方式删除权限。
如何删除对这个孤立 SID 的引用?或者将其更改为引用合法的 SID?
或者,我如何将与现有 1003 用户关联的 SID 更改为 1000,以便对 SID 1000 的引用正确解析为活动用户帐户?
任何建议将不胜感激。
【问题讨论】:
【参考方案1】:有一个工具 subinacl.exe 由 Microsoft 提供,直到 2004 年。现在有点难找(参见https://answers.microsoft.com/en-us/windows/forum/all/i-wanted-to-download-subinacl-but-i-cant-find-it/a8bf4c50-1d43-4f03-b6f9-f62deab010fb)。 使用此工具,您可以从文件夹和子文件夹中删除所有无效的 SID。
subinacl /subdirectories "C:\folder\*.*" /cleandeletedsidsfrom=<domain>
这对我很有帮助,但输出似乎已损坏。所以我通过 >logfile.txt
绕过了输出到一个文件【讨论】:
【参考方案2】:我刚发布我的问题,就找到了答案:
Right-click a File Explorer shortcut pinned to my TaskBar
Select Run as Administrator
Browse to the desired Folder, right-click and select Properties
Select the Security Tab
Remove the undesired User
不知道为什么我之前没有考虑使用提升的文件资源管理器。但它成功更新了 ACL,现在对虚假 SID 的引用消失了。 :-)
【讨论】:
以上是关于无法删除引用孤立 SID 的 ACL 条目的主要内容,如果未能解决你的问题,请参考以下文章
使用 PowerShell 从 Azure 中存储帐户的管理 ACL 列表中删除 ACL 条目
从 TFS 项目管理员中删除“编辑团队项目级别权限 ACL”,以便他们无法添加用户