1

私は 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"
    }
}
4

1 に答える 1

1

WS-Management を使用してコピーと削除を処理すると、すべてのタスクがリモートで実行されるため、はるかに高速になります。VM ファイルのような大きなファイルに対するアクションは、ローカルではなくリモート共有で実行すると非常にコストがかかります。

WS-管理

于 2012-09-20T10:57:31.873 に答える