Powershell Remoting性能

时间:2015-10-05 11:17:04

标签: performance powershell remoting

我正在管理一个技术会议的实验室,我有一个PowerShell脚本,可以在会话之间进行一些清理,从桌面删除剩余的cruft,重置任务栏中的链接等。当我“本地”运行此脚本时,这意味着我在以普通实验室用户身份登录时使用快捷方式,大约需要5秒钟才能完成。但是,当我使用Remoting运行相同的脚本时,需要将近10分钟才能完成。而这在一台机器上。我担心的是我有40台需要刷新的机器,有时候会话之间只有15分钟。我正在测试的代码非常简单

Invoke-Command -computerName:$machine -argumentList: $file, $context –scriptblock {
    param (
        [String]$file,
        [string]$context
    )

    & powershell.exe -noProfile -noLogo -executionPolicy bypass -file $file -context:$context

} -credential:$credential -authentication:CredSSP –asJob -jobName:$machine > $null

所以,我的问题是,这是“正常”,还是有一些问题的迹象,我真的希望这可以在接近“本地”速度的情况下工作吗? FWIW,我在虚拟机上测试它。

此外,我正在使用BallonTip提醒正在机器上的人发生重置。当“手动”启动脚本时,这很有用。但是,当使用Remoting时,Ballon Tip永远不会出现。当然,控制台也没有,所以这可能只是Remoting的一个限制,没有UI可以被触发?

任何见解都非常感谢。谢谢!

1 个答案:

答案 0 :(得分:0)

由于脚本不会在交互式用户的会话中运行,因此无法让UI显示出来。

至于表现,我不完全确定为什么会花费这么长的时间。

首先,我会尝试远程访问本地计算机(而不是仅在本地运行),方法是将localhost.或实际的本地计算机名称传递给{{1 } -ComputerName的参数。看看表现是否仍然糟糕,或者表现如何不同。

我也想知道它是否与在远程端产生另一个Invoke-Command进程有关。理论上它不应该,但如果你这样做会怎么样:

powershell.exe