5

如果我从solaris服务器ssh到美国服务器,ssh连接很快,比如删除一个文件很快就可以完成。

但是为什么powershell远程处理这么慢,我进入远程会话后,然后删除一个项目,需要10多秒才能完成。

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

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

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

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

有什么方法可以提高性能,或者找出大部分时间都花在了哪里?

4

1 回答 1

7

丹尼尔,

我猜您看到的大部分时间延迟是由于远程 PowerShell 会话的启动造成的。

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

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

请记住,PowerShell 和 WinRM 为您做了很多工作,因为您的所有输出都被序列化为 XML,然后再次重组为对象。PowerShell 最好的一点是,一切都是对象,这就是在通过 ssh/bash/cmd 等执行类似操作时使其变慢的原因。这都是关于权衡的。

When I'm doing tasks that I know will take a while I try to schedule them as jobs and move on to other things.

--Greg

于 2011-03-17T18:49:06.443 回答