gpt4 book ai didi

azure - 如何在 Powershell Azure Devops Pipeline 中捕获错误 ERROR : Insufficient privileges to complete the operation.

转载 作者:行者123 更新时间:2023-12-02 23:05:28 25 4
gpt4 key购买 nike

我创建了一个 Azure Devops Pipeline 并创建了在 ServiceConnection 上下文中运行的 Powershell 脚本。此服务连接是 Azure ServicePrincipal。

$groupName =  "ABC"
$res = (az ad group list --display-name $groupName)

Write-Host "Response " $res

当我执行管道时,我收到此错误消息

错误:权限不足,无法完成操作。

但是 $res 为空。

如何在我的 powershell 代码中捕获此错误消息?

最佳答案

看起来错误已写入stderr,因此如果您想检查错误消息,请使用以下命令将stderr重定向到stdout重定向运算符2>&1:

$stdout, $stderr = (az ad group list --display-name $groupName 2>&1).Where({$_ -is [string]}, 'Split') 

if( $stderr -like '*Insufficient privileges to complete the operation*' ) {
# Handle the error
}
  • 使用redirection operator 2>&1 错误流(又名 stderr)被合并到成功流(又名 stdout)中,因此我们可以统一对待它们方式。
  • 使用组运算符(...),可以从流中创建一个临时数组。
  • 使用内在 .Where()方法中,我们根据流类型将该数组拆分为两个变量。
  • 如果有任何消息写入 stdout,则 $stdout 变量是一个字符串数组。
  • 如果有任何消息写入 stderr,则 $stderr 变量是 ErrorRecord 的数组.
  • 当 LHS 参数是集合时,-like 运算符充当过滤器,仅输出匹配的元素。如果存在任何匹配元素,则结果将转换为 $true,否则将在 bool 上下文中转换为 $false
  • 使用字符串比较运算符-like时,PowerShell 会自动将ErrorRecord 转换为字符串

关于azure - 如何在 Powershell Azure Devops Pipeline 中捕获错误 ERROR : Insufficient privileges to complete the operation.,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73906814/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com