【发布时间】:2019-02-16 18:30:06
【问题描述】:
无法理解如何按属性检查对象成员是否存在于数组中。
我有以下对象:
PS> $siteUser
Id Title LoginName Email
-- ----- --------- -----
1305 cinuwyl@banit.club i:0#.f|membership|urn%3aspo%3aguest#cinuwyl@banit.club cinuwyl@banit.club
我想检查属性LoginName中的字符串membership是否存在于数组中:
federateddirectoryclaimprovider
tenant
membership
我只是通过为membership 指定数组索引来获得匹配:
$siteUsers.LoginName | Where-Object {$_ -match $inclusionObjects[2]}
但是,这需要我事先知道匹配字符串的数组索引。
我尝试过但没有结果的另一件事是:
$siteUsers | Where-Object {$inclusionObjects | ForEach-Object {$_ -match $_.LoginName}}
有没有办法遍历数组中的每个项目?
【问题讨论】:
-
所以我了解您需要查找在登录列中具有短语“会员”的行是否存在于数组中?如果是这样 - 我想这只是
($siteusers |Where-Object {$_.LoginName -like "*Membership*"}).count -
差不多。我不仅想检查“成员资格”,还想检查数组中的任何项目。我在最初的帖子中措辞错误,对不起。因此,例如 LoginName 可能包含“租户”而不是成员资格,并且现实世界的对象包含多个成员。这也应该是匹配的。
标签: arrays powershell object properties