【问题标题】:Powershell Remoting performancePowershell 远程处理性能
【发布时间】:2015-10-05 11:17:03
【问题描述】:

我正在管理一个技术会议的实验室,并且我有一个 PowerShell 脚本,可以在会话之间进行一些清理、从桌面删除剩余的内容、重置任务栏中的链接等。当我在“本地”运行此脚本时,这意味着我在以通用实验室用户身份登录时使用快捷方式,大约需要 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的一个限制,不能触发UI?

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

【问题讨论】:

  • 不确定为什么需要这么长时间,但我怀疑最好创建 ps1 脚本并将其复制到每个系统,然后远程执行。
  • 尼克,我曾想过,但是当我“本地”运行它时,它仍在使用网络文件,所以它似乎没有什么区别。但是,我还有一些在本地复制的其他代码,所以我也会添加为此所需的资源并运行测试。谢谢!

标签: performance powershell remoting


【解决方案1】:

由于脚本不会在交互式用户会话中运行,因此您将无法让 UI 显示为这样。

至于性能,我不完全确定为什么要花这么长的时间。

首先,我会说尝试通过将localhost. 或实际本地计算机名称传递给@987654324 的-ComputerName 参数来远程访问您的本地计算机(而不仅仅是在本地运行它) @。看看性能是否仍然很差,或者有什么不同。

我还想知道它是否与在远程端产生另一个 powershell.exe 进程有关。理论上它不应该,但是如果你这样做呢:

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

    $sb = [ScriptBlock]::Create((Get-Content $file -Raw))
    & $sb -context:$context

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

【讨论】:

  • 啊,用户界面真是太糟糕了。令人沮丧的是,它们不是 Windows 中内置的、安全且功能强大的消息传递系统。至于替代方法,我试过了,它根本没有运行。但我假设脚本在目标机器上被阻止,因此需要 -ExecutionPolicy Bypass 可以解释这一点?我也尝试在本地运行,但失败似乎是我没有得到正确的修订。我所做的只是将机器名称更改为“。”。将在那里进行更多实验。
  • 嗯,还有一点数据。当我在管理上下文中完成不同的远程处理工作时,我没有这样的性能问题。只有作为普通用户运行的作业才有问题。但是,真正慢的任务是取消固定和固定到任务栏的东西,这通常有点慢,但现在慢了一个数量级。因此,非常好奇他们的标准用户或任务栏的 Pin 是否可能是问题所在。我也可以尝试升级到更新版本的 PS,因为我在 2.0 上进行这些测试。我怀疑这将是一个漫长的一周。 ;)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-09-21
  • 1970-01-01
  • 2023-03-19
  • 1970-01-01
  • 2023-03-30
  • 2012-02-10
  • 2010-12-14
相关资源
最近更新 更多