仅使用Microsoft提供的cmdlettestingPowerShell中是否存在AD对象

我想用仅使用Microsoft工具的PowerShell在Active Directory中testing是否存在计算机帐户。

使用Quest AD cmdlet,我可以这样做:

if (!(get-qadcomputer $name)){ Stuff } 

就我get-adcomputer ,这不适用于get-adobjectget-adcomputer

有什么简单的,我失踪? 我已经看到了一些看似简单的解决scheme,可以捕获所有抛出的exception,但在某些情况下似乎可能会导致一些误报。

 $c = Get-ADComputer <$ComputerName> if($c -eq $null) { ItDoesntExist } else { ItLives } 

这应该做你需要的东西…你说这不是为你工作,为什么呢?


对不起,看起来像这个cmdlet实际上抛出一个exception,而不是简单地返回$null , 这里logging …,它也忽略-erroraction参数(向下滚动到链接页面上的评论)。

build议的解决方法:

 $errorActionPreference = "SilentlyContinue" Get-ADComputer <$ComputerName> 

或者更好,看看我的其他答案。

尝试删除它,并阅读返回代码?

(开个玩笑)

要通过DistinguishedNametestingAD对象,您可以使用以下方法:

[bool](Get-ADObject -Filter {DistinguishedName-eq "CN=Users,DC=domain,DC=local"})

或者,当你想通过另一个属性,如samaccountnamesearch:

[bool](Get-ADObject -Filter {sAMAccountname -eq "Administrator"})

两者都只会返回一个布尔值($ true或$ false),并且可以在条件逻辑中使用(if / else等)。