我在两个列表上运行比较对象。 $distros
列表包含名称为 MDM 的对象,$adgroups
列表中没有具有该名称的对象。
为什么比较对象不返回名为MDM且< = side指示符的输入对象?
PS C:\Users\ME> $distros | ?{$_.name -like "*MDM*"}
Name DisplayName GroupType PrimarySmtpAddress
---- ----------- --------- ------------------
MDM MDM Universal MDM@contoso.com
PS C:\Users\ME> $adgroups | ?{$_.name -like "*MDM*"}
PS C:\Users\ME> Compare-Object ($distros | select name) ($adgroups | select Name)
InputObject SideIndicator
----------- -------------
@{Name=UAD} <=
@{Name=UAT Funders} <=
@{Name=Underwriting Managers} <=
使用Compare-Object ($distros | select -expandproperty Name) ($adgroups | select -expandproperty Name
工作。感谢Matt的评论。
答案 0 :(得分:2)
你应该试试这个
Compare-Object ($distros | select -expandproperty name) ($adgroups | select -expandproperty Name)
-expandproperty name
将返回name
s的字符串数组,而不是具有name属性的对象数组。显然Compare-Object
将适用于复杂对象,但扩展$distros
名称和$adgroups
名称可使输出更清晰。
你也可以尝试这样的东西,这更简洁!
Compare-Object $distros $adgroups -property Name