我是power-shell的新手并尝试编写VMreset脚本。我有一切工作,但对某些事情有一些问题。
下面是运行所有命令的函数
我注意到有时需要永远运行代码,在我添加End-Process,Remove-Item和Copy-Item命令之前没有这样做
现在看来,所有命令执行后都会显示写输出。
我有更好的方法来做这件事吗?
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"
}
}
答案 0 :(得分:1)
使用WS-Management处理副本并删除将会更快,因为所有任务都将在远程上运行。当通过远程共享而不是本地共享时,对VM等大文件的操作非常昂贵。
WS管理