Powershell 搜索属于多个组的用户的广告

Powershell 搜索属于多个组的用户的广告,powershell,active-directory,ldap,Powershell,Active Directory,Ldap,我正在尝试获取对其工作站具有本地管理员权限的所有用户,这是在memberof属性下指定的,我还需要在memberof属性下通过另一个组进行筛选。我创造了类似的东西 Get-ADUser -Filter * -Properties DisplayName, EmailAddress, CN, StreetAddress, memberof | Where-Object {$_.memberof.contains('RemovalStorage-R') -and $_.memberof.con

我正在尝试获取对其工作站具有本地管理员权限的所有用户,这是在memberof属性下指定的,我还需要在memberof属性下通过另一个组进行筛选。我创造了类似的东西

Get-ADUser -Filter * -Properties DisplayName, EmailAddress, CN, StreetAddress, memberof |
Where-Object 
{$_.memberof.contains('RemovalStorage-R') -and 
 $_.memberof.contains('EU-IRL-Dublin' )
 } | 
Select DisplayName, EmailAddress, CN | Sort-Object Displayname
现在我需要将第一组更改为

Get-ADUser -Filter * -Properties DisplayName, EmailAddress, CN, StreetAddress, memberof |
Where-Object 
{$_.memberof.contains('EU-EIE*-LocalAdmins') -and 
 $_.memberof.contains('EU-IRL-Dublin' )
 } | 
Select DisplayName, EmailAddress, CN | Sort-Object Displayname
EIE*是工作站名称的开头,因此需要能够搜索通配符以获取名称的其余部分: EIE123, EIE124, EIE125, EIE126

提前感谢您的回复。 善良的RGD,
Dan

单引号的意思是从字面上理解字符串,contains类似于-eq,它必须精确匹配,提供正确或错误的答案。所以现在你说的搜索就是EU-EIE*-LocalAdmins。如果您将引号交换为双引号,并将.Contains更改为-like,您的运气会更好

Get-ADUser -Filter * -Properties DisplayName, EmailAddress, CN, StreetAddress, memberof |
Where-Object 
{$_.memberof -like ("EU-EIE*-LocalAdmins") -and 
$_.memberof.contains('EU-IRL-Dublin' )
} | 
Select DisplayName, EmailAddress, CN | Sort-Object Displayname
请注意,您的环境可能与我的不同,但运行您的行会给出其成员的DN,这意味着您将获得OU=X DC=X,因此您可能希望两者都使用Like,并在每一端放置一个通配符

-like "*Word*One*"

使用双引号并将其更改为like
$\ memberof-like(“EU-EIE*-LocalAdmins”)