我在Powershell中通过VSTS运行命令来影响Azure。该命令有效,但之后会出错。 params和连接正在工作,因为该组获得了命令的许可。我想一个解决方法是将命令放在try块中,让它运行,然后当出现错误时转到catch块并结束而不会抛出错误。
当我运行这个脚本时,我仍然会得到相同的错误,就像忽略了try块一样。我的语法有错吗?
Try
{
New-AzureRmRoleAssignment -ObjectId "xxxx" -RoleDefinitionName $roleName -ResourceGroupName pentest-$featureName
}
Catch
{
Write-Output "Whoops"
}
编辑:我在try-block之前添加了$ErrorActionPreference = "Stop"
,它正确捕获了错误。
答案 0 :(得分:0)
由于错误的$ErrorActionPreference
,忽略了try块。将其改为"继续"到"停止"修好了。