Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Azure powershell中显示自定义错误消息并退出_Azure_Powershell_Azure Powershell - Fatal编程技术网

在Azure powershell中显示自定义错误消息并退出

在Azure powershell中显示自定义错误消息并退出,azure,powershell,azure-powershell,Azure,Powershell,Azure Powershell,我正在尝试使用powershell获取特定订阅的存储名称列表。如果订阅名称正确,则会得到结果,但如果键入错误,则会出现以下错误: 选择订阅:请提供有效的租户或有效的订阅。 选择AzSubscription-SubscriptionName$subName CategoryInfo:CloseError:(:)[Set-AzContext],ArgumentException FullyQualifiedErrorId:Microsoft.Azure.Commands.Profile.SetAzu

我正在尝试使用powershell获取特定订阅的存储名称列表。如果订阅名称正确,则会得到结果,但如果键入错误,则会出现以下错误:

选择订阅:请提供有效的租户或有效的订阅。 选择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
     }

我用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

更好的解决方案应该是使用以下脚本:

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

您只需执行空测试:

$sub = Select-AzSubscription -SubscriptionName $subName -ErrorAction SilentlyContinue
if ($sub -eq $null) 
  { 
    "Couldn't find the subscription"
    ## Add you exit code here!
  }  
else
  { "Good subname" }

这不是一个好的解决办法。如果子名称正确,并且错误来自以下代码,如
Get-AzStorageAccount
,则您的代码仍会打印消息“找不到订阅”。@IvanYang现在呢?是否可以添加带有异常消息的自定义错误消息?例如:如果错误在子名称中,则“请重新输入您的子名称”+异常消息;如果错误在Get-AzStorageAccount中,则“您没有存储帐户”+异常消息?是的,您可以添加自定义错误消息。您还可以指定我的答案中提到的异常类型。@IvanYang,刚刚看到您的答案。非常感谢。这不是一个好的解决办法。如果子名称正确,并且错误来自以下代码,如
Get-AzStorageAccount
,则您的代码仍会打印消息“找不到订阅”。@IvanYang现在呢?是否可以添加带有异常消息的自定义错误消息?例如:如果错误在子名称中,则“请重新输入您的子名称”+异常消息;如果错误在Get-AzStorageAccount中,则“您没有存储帐户”+异常消息?是的,您可以添加自定义错误消息。您还可以指定我的答案中提到的异常类型。@IvanYang,刚刚看到您的答案。非常感谢。谢谢,有道理!这样,我就可以看到错误在哪里了。谢谢,有道理!这样,我可以看到错误在哪里。