Powershell 脚本查找计算机很慢

时间:2021-02-18 09:51:14

标签: powershell

我有一个脚本,用于在 AD 中搜索不同 OU 中具有相同名称的计算机。 例如。

Get-ADComputer -filter * -Searchbase "OU=domain,DC=home,DC=com"  -properties * |
    Where-Object {$_.DistinguishedName -like "*XXX09*"} |
        Select name, DistinguishedName

一切正常,但速度非常慢,有什么办法可以加快速度,或者以不同的方式构建脚本?

2 个答案:

答案 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”对其进行了测试,效果很好(而且速度要快得多;))