powershell remoting:很慢

时间:2011-02-21 05:34:33

标签: powershell powershell-remoting

如果我从solaris服务器ssh到美国服务器,ssh连接速度非常快,例如删除文件很快就会完成。

但是为什么PowerShell远程处理如此缓慢,在我进入远程会话,然后删除一个项目后,需要10秒以上才能完成。

Enter-PSSession -computerName test
remove-item 'C:\20010101.xls' 

运行以下命令也需要5秒以上。

[Environment]::UserDomainName + "\" + [Environment]::UserName+" on"+[Environment]::MachineName

我使用远程处理的原因之一是远程桌面连接速度很慢,因为它必须将大量数据从服务器传输到本地。对于远程处理,我希望它只传输非常少量数据的文本,所以我希望它比远程桌面连接快得多。但事实是它也很慢。

有什么方法可以提高性能,或找出大部分时间去哪里?

1 个答案:

答案 0 :(得分:7)

丹尼尔,

我猜你所看到的大部分时间都是由于远程PowerShell会话的启动造成的。

尝试使用Invoke-Command而不是使用Enter-PSSession。它仍然初始化一个远程PS会话,但是你没有得到所有的控制台开销。

Invoke-Command -Computer test -ScriptBlock {[Environment] :: UserDomainName +“\”+ [Environment] :: UserName +“on”+ [Environment] :: MachineName}

请记住,PowerShell和WinRM代表您做了很多事情,因为您的所有输出都被序列化为XML,然后再次重新构建到对象中。关于PowerShell的最好的事情之一,一切都是一个对象,是什么让它在通过ssh / bash / cmd等执行类似操作时变慢。这都是关于权衡。

当我正在完成我知道需要一段时间的任务时,我会尝试将它们安排为工作并转向其他事情。

- 格雷格