PowerCLIスクリプトのバッチおよび一般的な自動化操作スクリプト


一、指定されたテンプレートを使用して仮想マシンを一括作成する
#    
param(
[string]$VMname,[string]$vmhostname,[string]$datastore,
[string]$template
)

#        powercli  
try{
add-pssnapin vmware.vimautomation.core -ErrorAction SilentlyContinue
}
catch{}

#  Vsphere
Connect-VIServer -server Vsphere -Protocol https -User user -Password password

foreach ($i in 1..5)
{
$fullname = $VMname +"-"+ $i
new-vm -name $fullname -template $template -host $vmhostname -datastore $datastore
}

disconnect-viserver -confirm:$false

     
.\scriptfile.ps1 VMname vmhost datastore template
#      ,    param         
or
.\screptfile.ps1 -VMname  vmname  -template template -vmhostname vmhost -datastore datastore
#      ,         

二、一括再起動名前が似ている仮想マシンを実行している
#        powercli  
try{
add-pssnapin vmware.vimautomation.core -ErrorAction SilentlyContinue
}
catch{}

#  Vsphere
Connect-VIServer -server Vsphere -Protocol https -User user -Password password

#       
$matchname="^[a-zA-Z]+\d{5}([a-zA-Z]{1,4})?(\w)?([a-zA-Z]{3})?(\d+)?"

#        
Get-Cluster -Name cluster |Get-VM |where {$_.Name -match $matchname -and $_.PowerState -eq "PoweredOn"} | Restart-VM -RunAsync

disconnect-viserver -confirm:$false