【问题标题】:PowerShell Invoke-Command performance issuePowerShell 调用命令性能问题
【发布时间】:2013-10-14 23:40:58
【问题描述】:

我的域中有几台计算机可以使用 PowerShell 远程访问。当我使用以下命令远程访问特定计算机时,性能变得非常缓慢:

Invoke-Command -ComputerName someComputerName -ScriptBlock { ls C:\ } -credential myUsername

显示驱动器上的每个文件/文件夹大约需要 10 秒。如果我使用 Enter-PSSession 从会话中运行相同的命令,则不会出现性能问题。此外,如果我使用 Invoke-Command 运行 Get-Alias 之类的命令,则不会出现性能问题。最后,我可以在任何其他计算机上运行任何命令而不会出现任何性能问题。

知道是什么原因造成的吗? 谢谢!

【问题讨论】:

    标签: performance powershell powershell-remoting


    【解决方案1】:

    可能是带宽问题。这样跑得更快吗?

    convertfrom-csv (Invoke-Command -ComputerName someComputerName -ScriptBlock { ls C:\ | convertto-csv} -credential myUsername)
    

    【讨论】:

    • 是的,该命令几乎立即运行。这是否更快,因为这些文件的 csv 表示比对象表示小得多?知道什么可能导致这样的带宽问题吗?谢谢!
    • 是的,该 csv 的 XML 负载远小于 FileInfo 对象的 XML 负载。您可以自己验证这一点,方法是在两者上都使用 export-clixml,并注意文件大小。您可能想要启动数据包分析器以查看网络发生了什么。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-01
    • 2021-12-24
    • 2016-12-12
    相关资源
    最近更新 更多