我试图让所有对其工作站具有本地管理员权限的用户,这是在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
提前感谢您的回复。 亲切的, 丹
答案 0 :(得分:0)
单引号意味着从字面上理解字符串,并且包含类似于-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*"