【问题标题】:xed iSuppressing Powershell error已修复 iSuppressing Powershell 错误
【发布时间】:2016-09-02 12:33:44
【问题描述】:

我试图抑制以下语句中的错误:

$notes = Get-AdGroup $permissiongroup -Properties info 
$notes | Select-Object -expandproperty info -ErrorAction SilentlyContinue

这是看AD中的'notes'字段是否有信息。

如果没有信息,我(逻辑上)会收到以下错误:

Select-Object : 无法处理参数,因为参数的值 “obj”为空。将参数“obj”的值更改为非空值。 在行:1 字符:10 + $注释 |选择对象 -ErrorAction 0 -expandproperty 信息 + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~ + CategoryInfo : InvalidArgument: (:) [Select-Object], PSArgumentNullException + FullyQualifiedErrorId : ArgumentNull,Microsoft.PowerShell.Commands.SelectObjectCommand

如何抑制此错误? SilentlyContinue 似乎没有任何作用?

更新 用 try/catch 修复它,谢谢。

【问题讨论】:

  • 您使用的是哪个版本的 Powershell?我似乎记得这是版本 3 中的一个已知错误。

标签: powershell


【解决方案1】:

使用 powershell tr​​y / catch 来处理

【讨论】:

  • 您有什么建议吗?我似乎无法让它工作
  • 尝试 { $notes = Get-AdGroup $permissiongroup -Properties info $notes | Select-Object -expandproperty info -ErrorAction SilentlyContinue } catch {}
【解决方案2】:

你可以试试这样的:

$notes | ? {$_.info -ne $null} | Select-Object -expandproperty info

【讨论】:

  • 这样我没有收到错误,但我仍然得到输出。由于下一条语句使用 $notes 变量,取决于是否有输入,这将不起作用。
  • @Kevin 你需要决定你想要什么,因为它在问题上显示的是“如何抑制错误并继续前进”,但现在你告诉你不要不想抑制错误。如果下一条语句取决于结果,则在该位置检查您需要的属性、基数等。
  • 你是对的,但现在发生的并不是我们所需要的。错误被抑制,但它会产生错误的输出。如果有输出,它应该返回它,这是有效的。但是当 info 属性为空时,我会返回其他信息。在下一个 if/else 语句中,我取决于是否有一些输出(-eq $null 触发器)。我希望这能让它更清楚:) 感谢到目前为止的帮助!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-01-29
  • 2019-09-03
  • 1970-01-01
  • 2019-07-17
  • 2021-11-18
  • 2018-01-08
  • 1970-01-01
相关资源
最近更新 更多