指定服务器后,Get-ADUser之后执行时间更长

时间:2019-04-05 18:22:26

标签: powershell active-directory

我有一个查询AD并处理结果的脚本:

$users=Get-ADUser -filter {...} -Properties ...
try { 
   foreach($user in $users) {
     $obj=new-object PSObject @property {...}
     [void]($arraylist.add($obj))
   }
} 
catch {...}

Get-ADUser大约需要1.5秒,并返回1000多行,而整个try块大约需要0.5秒。

@Properties {...}部分仅处理$user字段,与AD或任何其他资源没有进一步的交互。 try块运行无误。

如果现在我将第一行更改为

$users=Get-ADUser -filter {...} -Properties ... -Server <someDC>

仅添加一个-Server参数,Get-ADUser命令大约需要3秒,而try块需要 20 + sec

我尝试了很多次,以确保远程连接建立良好,没有任何改善。我尝试了每个可用的DC,每次执行时间都非常相同。如果删除了-Server参数,我将获得原始的执行时间。

问题与this post中描述的问题相似,但是我的问题是在Get-ADUser之后而不是由Get-ADUser执行的代码本身。

非常令人不安的是它的代码之后变慢了。

你有什么线索吗?

DC: Win2008R2
Client: Win7, Powershell5.1, AD Management Tools locally installed.

0 个答案:

没有答案