【问题标题】:Power-shell Output and optimizationPower-shell 输出和优化
【发布时间】:2012-09-20 18:57:31
【问题描述】:

我是 power-shell 的新手,正在尝试编写 VMreset 脚本。我一切正常,但对某些事情有一些疑问。

下面是运行所有命令的函数

我注意到有时代码运行需要很长时间,而在我添加 End-Process、Remove-Item 和 Copy-Item 命令之前它不会运行

现在看来,在所有命令执行后,Write-Output 正在显示。

有没有更好的方法让我这样做?

function OS-Windows7 {
    Foreach ($Computer in $global:ComputerList) {

    Write-Output "Starting VMReset on $Computer"
    Write-Output "Looking for active VMWare Processes to kill on $Computer"
    End-Process 'vmware-vmx'
    End-Process 'vmware'
    End-Process 'vmware-tray'
    Write-Output "Removing altered virtual machines on $Computer"
    Remove-Item \\$Computer\C$\"My Virtual Machines\*" -Force -Recurse
    Write-Output "Replacing altered virtual machines on $Computer"
    Copy-Item "\\$Computer\C$\Program Files (x86)\VMware\VMware Workstation\VM\Child\*" "\\$Computer\C$\My Virtual Machines\" -recurse -force
    Write-Output "VMReset Finished on $Computer"
    }
}

【问题讨论】:

  • End-Process 不是标准的 PowerShell cmdlet。显然这是您编写的函数?功能(此处未显示)是否有可能导致延迟?它是否比内置的 Stop-Process cmdlet 做得更多?
  • function End-Process { param([string[]]$ProcessName) Stop-Process -Process $ProcessName }

标签: powershell foreach richtextbox


【解决方案1】:

使用 WS-Management 处理副本和删除会更快,因为所有任务都将在远程运行。如果通过远程共享而不是本地完成,对大型文件(如 VM)的操作非常昂贵。

WS-管理

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-15
    • 2016-05-20
    • 1970-01-01
    • 2019-11-27
    • 2018-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多