2017-10-19 71 views
0

我试图比较PowerShell中的两个对象。我想比较对象的一个​​属性并保留原始对象的所有属性。我有以下对象:在PowerShell中,如何比较具有不同属性的对象并保留参考对象的原始属性

UserID ID 
aaa 111 
aab 112 
aac 113 
zaa 211 
zab 212 

UserID 
aaa 
aab 
aac 

,我想我的输出是:

UserID ID 
zaa 211 
zab 212 

我试着使用Compare-Object没有运气。看来我在比较中丢失了ID列,或者它比较了整行而不是仅仅是UserID属性。我怎样才能完成这个比较?

$ObjectsToDelete = Compare-Object -ReferenceObject $DirectoryItemsToSync -DifferenceObject $CurrentUserPropertyValues 

回答

1
$A 
UserID ID 
------ -- 
aaa 111 
aab 112 
aac 113 
zaa 211 
zab 212 

$B 
UserID 
------ 
aaa 
aab 
aac 

$A | where {$B.UserID -notcontains $_.userid} 

UserID ID 
------ -- 
zaa 211 
zab 212 
1

。假定$DirectoryItemsToSync是既UserIdID上面的列表中。

使用Where-Object Cmdlet

$DirectoryItemsToSync | Where {($CurrentUserPropertyValues | Select -Expand UserID) -NotContains $_.UserID}