在 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" }