![]() |
1
7
您可以使用.NET的内置 System.Security.Principal.SecurityIdentifier 为此目的的类:通过将其转换为 NtAccount 您可以获得帐户名:
稍后进行编辑,以响应注释中的问题:您不需要任何特殊权限来在本地计算机上执行sid-to-name查找——例如,即使您运行的用户帐户仅在guests组中,此代码也应该有效。如果sid解析为一个域帐户,情况会稍有不同,但即使在大多数情况下,只要您登录到域(并且在查找时有域控制器可用),这也会正常工作。 |
![]() |
2
3
或者你可以使用:
用
|
![]() |
3
1
这应该和您发布的内容类似。我不确定如何立即获取WMI对象的特定属性,但这将使您从语法开始:
|
![]() |
4
1
接受的答案的问题是,运行代码的本地计算机必须能够解决帐户名。 如果您正在远程计算机上读取ACL,则可能无法解析远程计算机上的域SID/本地SID。下面使用wmi并获取远程计算机的参数和希望远程计算机解析的sid。
|