1
我在PowerShell中通过VSTS运行命令以影响Azure。该命令起作用,但它后面会出错。这些参数和连接正在发挥作用,证明了该组获得命令许可的事实。我想一个解决方法是将该命令放在try块中,让它运行,然后当错误出现时转到catch块并结束而不抛出错误。Powershell尝试块不能在VSTS版本上工作
当我运行这个脚本时,我仍然得到相同的错误,就像try块被忽略。我的语法错了吗?
Try
{
New-AzureRmRoleAssignment -ObjectId "xxxx" -RoleDefinitionName $roleName -ResourceGroupName pentest-$featureName
}
Catch
{
Write-Output "Whoops"
}
编辑:我在try块之前添加$ErrorActionPreference = "Stop"
并且使其正常运行所捕获的错误。
检查'$ ErrorActionPreference'的值。如果不是'停止','catch'将不会运行。让我们知道如果这是问题,我会写一个更完整的答案。还有一种情况是一些小命令不会在没有更多极端步骤的情况下“捕捉”。显式地添加参数'-ErrorAction Stop'将在命令的基础上实现所需的结果。 –
我检查了构建服务器,它是继续的 – user3364161