如何判断Windows组是否具有众所周知的SID以及该SID是什么

时间:2018-04-12 22:10:19

标签: powershell

我试图从群组名称中获取众所周知的SID(如果存在)。

到目前为止,我有:

$group = 'Administrators'

$account = New-Object System.Security.Principal.NTAccount($group)
$sid = $account.Translate([System.Security.Principal.SecurityIdentifier])

这给了我一个具有方法' IsWellKnown'的组的Sid对象,到目前为止一直很好。如果我提供一份我已经从网上复制过的众所周知的sid列表,那就可以了。

此处有链接: https://msdn.microsoft.com/en-us/library/system.security.principal.wellknownsidtype(v=vs.110).aspx

$wks = 'list from the web'
foreach ($s in $wks){ $sid.IsWellKnown($s)}

我不想从网页上复制众所周知的sid列表,我想以编程方式找到它们。我可以通过使用废话使IsWellKnown方法出错来实现它:

$sid.IswellKnown('*')

会给我一个错误消息,里面有我需要的列表。显然,我不想从错误信息中获取列表,我想让它正常运行,是否有人知道如何?

提前致谢。

1 个答案:

答案 0 :(得分:1)

试试这个:

[Enum]::GetValues([System.Security.Principal.WellKnownSidType])