Active-Directory

僅使用 Microsoft 提供的 cmdlet 測試 PowerShell 中是否存在 AD 對象

  • September 26, 2019

我想僅使用 Microsoft 的工具通過 PowerShell 測試 Active Directory 中是否存在電腦帳戶。

使用 Quest AD cmdlet,我可以這樣做:

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

據我所知,get-adobject這不起作用。get-adcomputer

我缺少一些簡單的東西嗎?我見過一些看起來很笨拙的解決方案,它們可以擷取所有拋出的異常,但這似乎在某些情況下可能會產生一些誤報。

看看這個:

<http://blogs.msdn.com/b/adpowershell/archive/2009/05/05/how-to-create-a-function-to-validate-the-existence-of-an-ad-object-test-xadobject.aspx>

$c = Get-ADComputer &lt;$ComputerName&gt;
if($c -eq $null) { ItDoesntExist } else { ItLives }

這應該完全符合你的需要……你說它不適合你,為什麼?


抱歉,看起來這個 cmdlet 實際上會引發異常,而不是簡單地返回$null,如此所述……並且它也忽略了-erroraction參數(向下滾動到連結頁面上的評論)。

建議的解決方法:

$errorActionPreference = "SilentlyContinue"

Get-ADComputer &lt;$ComputerName&gt;

或者,更好的是,請參閱我的其他答案。

引用自:https://serverfault.com/questions/311413