#azure #powershell #azure-powershell
#azure #powershell #azure-powershell
Вопрос:
#adding wrong parameters for checking the try block
$RGName = "RG1"
$VMName="VM1"
$VMSize="standard_B1ls"
$VirtualMachine = Get-AzVm | Where-Object {$_.ResourceGroupName -eq $RGName } | Where-Object {$_.Name -eq $VMName}
$virtualMachine.HardwareProfile.VmSize = $VMSize
#try block
try{
Update-AzVM -VM $VirtualMachine -ResourceGroupName $RGname
write-host "you are in try block "
}
catch{
write-host "you are in catch block "
}
блок catch не работает, мне нужно не печатать try block write-host — произошло исключение вместо print catch write-host
Комментарии:
1. Попробуйте использовать параметр -ErrorVariable в Update-AzVM, а также установите для параметра -ErrorAction значение «SilentlyContinue». А затем в блоке catch выведите переменную error. Возможно, это вам что-то даст.
2. Код работает для меня, я добираюсь до блока catch. Возможно, попробуйте изменить
Update-AzVM -VM $VirtualMachine -ResourceGroupName $RGname
Update-AzVM -VM $VirtualMachine -ResourceGroupName $RGname -ErrorAction Stop
на, если для вашей переменной $ErrorActionVariable по какой-то причине установлено значение Continue .