web-dev-qa-db-ja.com

Microsoftが提供するコマンドレットのみを使用して、PowerShellにADオブジェクトが存在するかどうかをテストします

Microsoftのツールのみを使用して、PowerShellを使用してActiveDirectoryにコンピューターアカウントが存在するかどうかをテストしたいと思います。

Quest ADコマンドレットを使用して、これを行うことができます:

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

私の知る限り、それはget-adobjectまたはget-adcomputerでは機能しません。

私が見逃している単純なものはありますか?スローされたすべての例外をトラップするハックに見えるソリューションをいくつか見てきましたが、特定の状況下では誤検知が発生する可能性があるようです。

4
MDMarra
2
Massimo

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など)で使用できます。

0
Johan de Haan
$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
}
0
Shawn Francis

それを削除して、その戻りコードを読んでみてください。

(冗談ですよね。)

0
mfinni