作成 2010.01.05
更新 2011.11.27
PowerShell で Active Directoryのオブジェクトを検索する
DirectoryServices.DirectorySearcher クラスを使用します。
見つからなかった場合 FindOne メソッドでは Null が返され、FindAll メソッドでは空の配列が返されます。
Filter には LDAP のフィルターの書式を使用します。
$search = New-Object DirectoryServices.DirectorySearcher
$search.Filter = "(sAMAccountName=user001)"
$result = $search.FindOne()
if ($result -eq $null)
{
  "見つかりませんでした"
}
else
{
  $result.Path
  $objUser = $result.GetDirectoryEntry()
}
OU配下のオブジェクトの一覧を取得するには以下のように記述します。
$search = New-Object DirectoryServices.DirectorySearcher
$search.SearchRoot = [ADSI]("LDAP://OU=People,DC=example,DC=lan")
$search.Filter = "(objectClass=*)"
$search.SearchScope = "OneLevel"
$result = $search.FindAll()
if ($result.Count -eq 0)
{
  "見つかりませんでした"
}
else
{
  $result
}
参照

DirectorySearcher クラス


©2004-2017 UPKEN IPv4