我正在尝试删除一个过时的 SID(该帐户显然已被删除)。
我尝试在服务器(win2003)和客户端(win7)上运行以下命令:
icacls c:\path /remove *S-1-5-21-1883347182-1220252494-433279356-1095 /T
但我总是得到输出
Successfully processed 0 files; Failed processing 0 files
它什么也不做。我怎样才能让它工作?
更新:
我用过访问枚举获取 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, ..." ""
答案1
答案2
我发现最便携且实际上最简单的使用/save
和/restore
功能的方法icacls
:
icacls C:\ /save D:\creds.txt /T
然后我会使用 Vim 或其他gred/sed/awk
类似工具来操作文件。这样我就可以删除 SID、替换 SID 等。处理完文件后,我会
icacls C:\ /restore D:\creds.new.txt /T
就是这样。无需下载其他程序。无需学习其他非标准命令行语法。我只需创建一个虚拟文件并使用 GUI 或其他任何工具来使 ACL 完全符合我的要求,使用它/save
来查看生成的 ACE 字符串是什么样子,然后只需将该 ACE 字符串复制并粘贴到creds.new.txt
.
答案3
你可以很容易地做到这一点设置ACL:
SetACL -on C:\Path -ot file -actn trustee -trst
"n1:S-1-5-21-1883347182-1220252494-433279356-1095;s1:y;ta:remtrst;w:dacl"
答案4
为什么不直接使用 GUI?调出文件夹属性并从安全设置中删除不需要的 SID。这对我来说一直很有效。