我有一个脚本,用于在 AD 中搜索不同 OU 中具有相同名称的计算机。 例如。
Get-ADComputer -filter * -Searchbase "OU=domain,DC=home,DC=com" -properties * |
Where-Object {$_.DistinguishedName -like "*XXX09*"} |
Select name, DistinguishedName
一切正常,但速度非常慢,有什么办法可以加快速度,或者以不同的方式构建脚本?
答案 0 :(得分:4)
您不仅可以通过使用过滤器来加快速度,而且使用 -Properties *
会要求 ALL 属性。在这种情况下,这是无用且耗时的,因为您只想检索 Name 和 DistinguishedName。
Get-ADCumputer
默认已经返回这些属性:
DistinguishedName, DNSHostName, Enabled, Name, ObjectClass, ObjectGUID, SamAccountName, SID, UserPrincipalName
。
试试
Get-ADComputer -Filter "DistinguishedName -like '*XXX09*'" | Select-Object Name, DistinguishedName
答案 1 :(得分:0)
在搜索期间而不是之后使用过滤器会大大减少查询时间。
Get-ADComputer -filter 'DistinguishedName -like "*XXX09*"' -Searchbase "OU=domain,DC=home,DC=com" -properties * | select name, DistinguishedName
您可能需要稍微调整查询,但我使用“name”而不是“DistinguishedName”对其进行了测试,效果很好(而且速度要快得多;))