我想仅使用 Microsoft 的工具通过 PowerShell 测试 Active Directory 中计算机帐户的存在。
使用 Quest AD cmdlet,我可以执行以下操作:
if (!(get-qadcomputer $name)){ Stuff }
据我所知,get-adobject
这不起作用。get-adcomputer
我是否遗漏了一些简单的东西?我见过一些看起来很老套的解决方案,它们可以捕获所有抛出的异常,但在某些情况下,这似乎可能会产生一些误报。
答案1
答案2
$c = Get-ADComputer <$ComputerName>
if($c -eq $null) { ItDoesntExist } else { ItLives }
这应该正是您所需要的...您说它对您不起作用,究竟是为什么呢?
抱歉,看起来这个 cmdlet 实际上会引发异常,而不是$null
像文档中所述那样简单地返回这里...并且它也忽略了-erroraction
参数(向下滚动到链接页面上的评论)。
建议的解决方法:
$errorActionPreference = "SilentlyContinue"
Get-ADComputer <$ComputerName>
或者更好的是,看看我的其他答案。
答案3
尝试删除它并读取其返回代码?
(只是开玩笑。有点。)
答案4
$errored=$false
try { Add-ADGroupMember -Identity $SomeGroupName $SomeComputer }
catch {
$errored=$true
Write-Output "$SomeComputer does not exist in AD,$_" | Tee-Object $errorLogFileName -Append
}
if ( $errored == $false) {
#either accept the computer is added to $SomeGroupName or delete it back out now that you know $someComputer exists
}