CSV ファイルを読み込んで、仮想マシンを制御するスクリプトの例です。
本例では、仮想マシン名を記述した CSV ファイル(vms.csv)を以下のパスに配置しています。
C:\scripts\vms.csv
CSV ファイルの内容は、以下のとおりです。
仮想マシンを起動するスクリプト
$vCenterIP = "192.168.1.10" $User = "Administrator" $Password = "Password" $VMs = Import-CSV C:\scripts\vms.csv #Import the PowerCLI module Add-PSSnapin VMware.VimAutomation.Core #Connect to the server $vi = Connect-VIServer -Server $vCenterIP -User $User -Password $Password #Power on the VMs foreach ($vm in $VMs){ Get-VM $vm.VMName | where{$_.PowerState -eq "PoweredOff"} | Start-VM -Runasync -Confirm:$false | Out-Null } #Disconnect to the server Disconnect-VIServer -Server $vCenterIP -Confirm:$False
仮想マシンを停止するスクリプト
$vCenterIP = "192.168.1.10" $User = "Administrator" $Password = "Password" $VMs = Import-CSV C:\scripts\vms.csv #Import the PowerCLI module Add-PSSnapin VMware.VimAutomation.Core #Connect to the server $vi = Connect-VIServer -Server $vCenterIP -User $User -Password $Password #Power off the VMs foreach ($vm in $VMs){ Get-VM $vm.VMName | where{$_.PowerState -eq "PoweredOn"} | Shutdown-VMguest -Confirm:$false | Out-Null } #Disconnect to the server Disconnect-VIServer -Server $vCenterIP -Confirm:$False
仮想マシンのスナップショットを取得するスクリプト
$vCenterIP = "192.168.1.10" $User = "Administrator" $Password = "Password" $Date = Get-Date -format yyyyMMddHHmm $VMs = Import-CSV C:\scripts\vms.csv #Import the PowerCLI module Add-PSSnapin VMware.VimAutomation.Core #Connect to the server $vi = Connect-VIServer -Server $vCenterIP -User $User - #Create the Snapshot foreach ($vm in $VMs){ New-Snapshot -Name $Date -VM $vm.VMName -Descript } #Disconnect to the server Disconnect-VIServer -Server $vCenterIP -Confirm:$False
仮想マシンのスナップショットを削除するスクリプト
$vCenterIP = "192.168.1.10" $User = "Administrator" $Password = "Password" $Date = Get-Date -format yyyyMMddHHmm $VMs = Import-CSV C:\scripts\vms.csv #Import the PowerCLI module Add-PSSnapin VMware.VimAutomation.Core #Connect to the server $vi = Connect-VIServer -Server $vCenterIP -User $User -Password $Password #Remove the Snapshot foreach ($vm in $VMs){ Get-Snapshot -VM $vm.VMName | Remove-Snapshot -RemoveChildren -Confirm:$False } #Disconnect to the server Disconnect-VIServer -Server $vCenterIP -Confirm:$False
参考書籍
リンク
以上