2

我在这个网站上找到了一个链接,它显示了如何将 SID 转换为二进制类型。有人可以告诉我如何做相反的事情 - 将二进制类型转换回 SID。

这是提供从 SID 到二进制文件的脚本:

PS> $sid = New-Object System.Security.Principal.SecurityIdentifier ("S-1-5-21-105005785-2143699225-541720777-501") 
PS> $c = New-Object 'byte[]' $sid.BinaryLength 
PS> $sid.GetBinaryForm($c, 0) 

谢谢!

4

2 回答 2

3

要从字节数组转到 SID,请尝试:

(New-Object System.Security.Principal.SecurityIdentifier($c, 0)).toString()
于 2012-08-17T08:45:42.577 回答
0

如果你想在 C# 中做同样的事情,那么你可以这样做(来自https://stackoverflow.com/a/59258680/12508260):

就我而言,byte[] 来自 ManagementEventWatcher:

ManagementBaseObject ne = e.NewEvent;
var securityIdentifier = System.Security.Principal.SecurityIdentifier((byte[])ne.Properties["SID"].Value, 0);

您可以使用 securityIdentifier.ToString() 将 SID 作为字符串获取。

于 2019-12-10T01:23:47.370 回答