get-adgroup -filter" SID-like' * - 512'"

时间:2017-07-21 18:22:40

标签: powershell filter sid

我一直想知道如何使用-filter来获得我想要的东西。我要做的是使用以下内容通过Domain Admins语句-like对{SID属性'找到*-512组:

get-adgroup -filter "SID -like '*-512'"

如果我把实际的SID

,它就有效
get-adgroup -filter "SID -eq 'S-1-5-21domain-512'"

我知道这样做会起作用

get-adgroup -filter * | ? {$_.SID -like '*-512'}

https://support.microsoft.com/en-us/help/243330/well-known-security-identifiers-in-windows-operating-systems

1 个答案:

答案 0 :(得分:2)

作为BenH comments,由于目录中的the way SID values are stored,您无法对LDAP查询中的SID进行部分过滤。您看到的SID字符串是底层字节数组的SDDL表示。

我认为您尝试与众所周知的RID进行通配符匹配的动机是您事先不知道域SID。您可以使用Get-ADDomain cmdlet轻松获取该内容:

$DomainSID = (Get-ADDomain).DomainSID
$DomainAdminsSid = New-Object System.Security.Principal.SecurityIdentifier ([System.Security.Principal.WellKnownSidType]::AccountDomainAdminsSid,$DomainSID)

Get-ADGroup -Filter {SID -eq $DomainAdminsSid}