PowerShell -ErrorAction SilentlyContinue不适用于Get-ADUser

时间:2014-04-10 22:39:03

标签: powershell

我遇到问题-ErrorAction SilentlyContinue可以使用cmdlet' Get-ADUser'

这不起作用,错误是否显示-ErrorAction?

  get-aduser "JSmith" -ErrorVariable Err -ErrorAction SilentlyContinue
  if ($Err){write-host "This is an error!!!!"}

这是有效的(在相同的条件下,没有错误显示并无声地继续?

 get-childitem z: -ErrorVariable Err -ErrorAction SilentlyContinue
 if ($Err){write-host "This is an error!!!!"}

2 个答案:

答案 0 :(得分:13)

get实际上是由网关服务在DC上执行的,并且错误处理的工作方式并不完全相同。幸运的是Try / Catch确实有效:

Try { get-aduser "JSmith" } 
  Catch { write-host "This is an error!!!!" }

答案 1 :(得分:6)

mjolinor对显式过滤器的评价如下:

$Sam = "JSmith"

$userObj = get-aduser -filter {SamAccountName -eq $Sam} -erroraction silentlycontinue
如果找不到用户,

$userObj将为null。这允许代码在不使用try / catch的情况下解决未找到的条件。