2017-06-22 91 views
1

我正在從我的兩個域控制器讀取所有計算機。在過去的50天內獲取所有在線的電腦列表。從數組中刪除雙重PSObjects

某些計算機將在兩個變量中列出。我怎樣才能刪除/忽略重複的條目,這樣我只能得到每個對象一次?

sort -unique只返回一個單一PSObject

# Computer von DC1 auslesen 
$DC1 = Invoke-Command -Session $BBDC1 { 
    Get-Adcomputer -filter * -property * | ? { $_.LastLogonDate -gt ((Get-Date).adddays("-50")) } | 
    Select CN, IPv4Address, OperatingSystem, LastLogonDate | Sort CN 
} 

# Computer von DC2 auslesen 
$DC2 = Invoke-Command -Session $BBDC2 { 
    Get-Adcomputer -filter * -property * | ? { $_.LastLogonDate -gt ((Get-Date).adddays("-50")) } | 
    Select CN, IPv4Address, OperatingSystem, LastLogonDate | Sort CN 
} 

$computers = $DC1 + $DC2 | sort -Unique 
+0

域控制器之間複製計算機對象?您正在讀取PowerShell提供的lastlogontimestamp的格式化值,它是已經在DC之間複製的計算機對象屬性,因此這不應該成爲查找最新版本的問題嗎? – thepip3r

+0

我想更好的問題是,你試圖達到什麼目標?你排序的原因很有趣,因爲複雜的對象正在被返回,並且它不會排序整個對象。您必須標識要排序的特定屬性:sort -unique屬性lastlogontimestamp – thepip3r

回答

0

使用,物業

Sort-Object -Property CN, IPv4Address, OperatingSystem, LastLogonDate -Unique

但如果LastLogonDate是不同的,那麼這是行不通的。