获取广告组过滤器 "SID -like '*-512'"

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

我一直想弄清楚如何使用-filter得到我想要的东西。我想做的是通过 *-512-like 语句针对 SID 属性 使用以下语句找到 Domain Admins 组:

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

如目录中的, you cannot partially filter on SIDs in LDAP queries, because of the way SID values are stored。您看到的 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}