gpt4 book ai didi

performance - Powershell 远程处理性能

转载 作者:行者123 更新时间:2023-12-03 00:16:37 25 4
gpt4 key购买 nike

我正在为技术 session 管理一个实验室,并且我有一个 PowerShell 脚本,可以在 session 之间进行一些清理,从桌面删除剩余的垃圾,重置任务栏中的链接等。当我“本地”运行这个脚本时,意味着我使用以通用实验室用户身份登录时的快捷方式,大约需要 5 秒才能完成。但是,当我使用 Remoting 运行相同的脚本时,需要将近 10 分钟才能完成。这在一台机器上。我担心的是我有 40 台机器需要刷新,有时 session 之间总共只有 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?

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

最佳答案

由于脚本不会在交互式用户的 session 中运行,因此您将无法获得这样的 UI。

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

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

我也想知道它是否与产生另一个 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

关于performance - Powershell 远程处理性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32947278/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com