PowerShell を使用して Azure 仮想マシンを自動化し、スケジュールに従って 1 台のマシンを開始および停止しています。以前にこれを行ったことがありますが、余分な手順があるこのコード スニペットに出くわしました。重要なものを見逃していないことを確認したいと思います。
# Shutdown VM(s)
$vmList = ('VM1', 'VM2', 'VM3')
$svcName = 'servicename'
For ( $vmCount = 0; $vmCount -lt $vmList.Count; $vmCount++) {
$vm = Get-AzureVM `
-ServiceName $svcName `
-Name $vmList[$vmCount]
if ( $vm.InstanceStatus -eq 'ReadyRole' ) {
Stop-AzureVM `
-ServiceName $vm.ServiceName `
-Name $vm.Name `
-Force
}
}
そのため、Stop-AzureVM を呼び出すだけでした... InstanceStatus のチェックは何をしますか? たとえば、更新プログラムのインストール中に VM がシャットダウンするのを防ぐことはできますか? いいえ、これは他のコマンドにとってより重要なチェックだと思います。でも今知りたい。
いろいろ調べてみたところ、関連のないいくつかのコード サンプルで使用されていることがわかりましたが、説明を見つけることができませんでした。