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