2017-06-22 94 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是不同的,那么这是行不通的。