【发布时间】: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