使用ICACLS删除SID

我试图删除一个过时的SID(该帐户显然被删除)。

我试图在服务器(win2003)和客户端(win7)上运行以下内容:

icacls c:\path /remove *S-1-5-21-1883347182-1220252494-433279356-1095 /T 

但我总是得到输出

 Successfully processed 0 files; Failed processing 0 files 

没有它做任何事情。 我怎样才能使它工作?

更新:

我已经使用AccessEnum来获取SID,因为icacls只会说“帐户名称和安全ID之间没有映射已完成”。 但不显示sid。

AccessEnum的输出是:

 "Path" "Read" "Write" "Deny" "c:\path" "Administrators, S-1-5-21-1883347182-1220252494-433279356-1095, ..." "Administrators, S-1-5-21-1883347182-1220252494-433279356-1095, ..." "" 

我对另一个类似的问题的build议

“也许你正在寻找SUBINACL, 在这里下载

subinacl.exe / help / cleandeletedsidsfrom提供以下内容:

/ cleandeletedsidsfrom =域[= DACL | SACL |业主| primarygroup |所有]

从DomainName中删除包含已删除(无效)SID的所有ACE您可以指定将扫描安全描述符的哪一部分(默认值为全部)如果所有者被删除,则新的所有者将是Administrators组。 如果主要组被删除,则新的主要组将成为用户组。 出现您可以根据需要将它用于/ file/ share/子目录

您可以使用SetACL轻松完成此操作 :

 SetACL -on C:\Path -ot file -actn trustee -trst "n1:S-1-5-21-1883347182-1220252494-433279356-1095;s1:y;ta:remtrst;w:dacl" 

我已经find了使用icacls/save/restore函数的最便携和最简单的方法:

 icacls C:\ /save D:\creds.txt /T 

然后我会使用Vim或其他一些相当于操作文件的gred/sed/awk 。 这使我可以删除SID,replaceSID等等。完成文件后,我就可以完成了

 icacls C:\ /restore D:\creds.new.txt /T 

那呢。 无需下载其他程序。 不需要学习另一个非标准的命令行语法。 我只是创build一个虚拟文件,使用GUI或任何完全按照我想要的方式制作ACL,使用/save来查看结果ACEstring的样子,然后将该ACEstring复制并粘贴到creds.new.txt

为什么不使用GUI? 调出文件夹属性并从安全设置中删除不需要的SID。 这对我来说总是有效的