2017-10-19 70 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}