40の手習いということで、慣れない PowerShell で全VMをエクスポートするスクリプトを書いた。環境に合わせて、$export_base_dir を変えるだけである程度汎用的に使用できると思う。もう少し効率的に書ける気もする。
# 初期設定 $export_base_dir = "E:\VMEXP" # 処理実行 foreach($vm in Get-VM | Select Name) { $export_dir = $export_base_dir + "\" + $vm.Name # エクスポートフォルダ削除 if(Test-Path $export_dir) { write-host $vm.Name "エクスポートフォルダ削除" Remove-Item $export_dir -Recurs } # VM停止 write-host $vm.Name "停止" Stop-VM -Name $vm.Name $vm_state = Get-VM | Select State if($vm_state.State -eq "Off") { # VMエクスポート write-host $vm.Name "エクスポート" export-VM -Name $vm.Name -Path $export_base_dir # VM開始 write-host $vm.Name "開始" Start-VM -Name $vm.Name } else { write-host $vm.Name "は停止しておりません。エクスポートできません" } };