Microsoftのツールのみを使用して、PowerShellを使用してActiveDirectoryにコンピューターアカウントが存在するかどうかをテストしたいと思います。
Quest ADコマンドレットを使用して、これを行うことができます:
if (!(get-qadcomputer $name)){ Stuff }
私の知る限り、それはget-adobject
またはget-adcomputer
では機能しません。
私が見逃している単純なものはありますか?スローされたすべての例外をトラップするハックに見えるソリューションをいくつか見てきましたが、特定の状況下では誤検知が発生する可能性があるようです。
DistinguishedNameによって一般的にADオブジェクトをテストするには、次を使用できます。
[bool](Get-ADObject -Filter {DistinguishedName-eq "CN=Users,DC=domain,DC=local"})
または、samaccountnameなどの別のプロパティで検索する場合:
[bool](Get-ADObject -Filter {sAMAccountname -eq "Administrator"})
どちらもブール値($ trueまたは$ false)のみを返し、条件付きロジック(if/elseなど)で使用できます。
$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
}
それを削除して、その戻りコードを読んでみてください。
(冗談ですよね。)