在 Azure powershell 中显示自定义错误消息并退出
display custom error message in Azure powershell and exit
我正在尝试使用 powershell 获取特定订阅的存储名称列表。如果我有正确的订阅名称,我会得到结果,但如果有一些错误,我会得到这个错误:
Select-AzSubscription : Please provide a valid tenant or a valid subscription.
Select-AzSubscription -SubscriptionName $subName
CategoryInfo : CloseError: (:) [Set-AzContext], ArgumentException
FullyQualifiedErrorId : Microsoft.Azure.Commands.Profile.SetAzureRMContextCommand
处理错误消息并退出脚本并显示消息“找不到订阅”的最佳选项是什么。
这是 powershell 代码:
###Set a subscription name
$subName = "Test SubscriptionName"
Select-AzSubscription -SubscriptionName $subName
### Select storage accounts based for above subscription
$sAccount = Get-AzStorageAccount | select StorageAccountName
$sAccount
我能够使用 try-catch 方法解决它。这是解决方案:
$subName = "Test SubscriptionName"
Try {
Select-AzSubscription -SubscriptionName $subName -ErrorAction Stop
#Select storage accounts based for above subscription
$sAccount = Get-AzStorageAccount | select StorageAccountName
$sAccount
}
Catch{
Write-Host $_.Exception.Message
}
更好的解决方案应该是使用以下脚本:
$subName = "Test SubscriptionName"
try{
Select-AzSubscription -SubscriptionName $subName -ErrorAction Stop
}
catch [System.ArgumentException]{
Write-Host "Couldn't find the subscription"
#use exit to exit the script
exit
}
#Select storage accounts based for above subscription
$sAccount = Get-AzStorageAccount | select StorageAccountName
$sAccount
你可以只做一个空测试:
$sub = Select-AzSubscription -SubscriptionName $subName -ErrorAction SilentlyContinue
if ($sub -eq $null)
{
"Couldn't find the subscription"
## Add you exit code here!
}
else
{ "Good subname" }
我正在尝试使用 powershell 获取特定订阅的存储名称列表。如果我有正确的订阅名称,我会得到结果,但如果有一些错误,我会得到这个错误:
Select-AzSubscription : Please provide a valid tenant or a valid subscription. Select-AzSubscription -SubscriptionName $subName CategoryInfo : CloseError: (:) [Set-AzContext], ArgumentException FullyQualifiedErrorId : Microsoft.Azure.Commands.Profile.SetAzureRMContextCommand
处理错误消息并退出脚本并显示消息“找不到订阅”的最佳选项是什么。 这是 powershell 代码:
###Set a subscription name
$subName = "Test SubscriptionName"
Select-AzSubscription -SubscriptionName $subName
### Select storage accounts based for above subscription
$sAccount = Get-AzStorageAccount | select StorageAccountName
$sAccount
我能够使用 try-catch 方法解决它。这是解决方案:
$subName = "Test SubscriptionName"
Try {
Select-AzSubscription -SubscriptionName $subName -ErrorAction Stop
#Select storage accounts based for above subscription
$sAccount = Get-AzStorageAccount | select StorageAccountName
$sAccount
}
Catch{
Write-Host $_.Exception.Message
}
更好的解决方案应该是使用以下脚本:
$subName = "Test SubscriptionName"
try{
Select-AzSubscription -SubscriptionName $subName -ErrorAction Stop
}
catch [System.ArgumentException]{
Write-Host "Couldn't find the subscription"
#use exit to exit the script
exit
}
#Select storage accounts based for above subscription
$sAccount = Get-AzStorageAccount | select StorageAccountName
$sAccount
你可以只做一个空测试:
$sub = Select-AzSubscription -SubscriptionName $subName -ErrorAction SilentlyContinue
if ($sub -eq $null)
{
"Couldn't find the subscription"
## Add you exit code here!
}
else
{ "Good subname" }