タグ
  ANSI (1)
  ASP.NET (10)
  Active Directory (55)
  BAT (16)
  Backup (2)
  CSharp (11)
  CentOS (4)
  C言語 (4)
  DNS (4)
  Excel (3)
  FFmpeg (1)
  Fedora (4)
  FreeBSD (6)
  IPv6 (3)
  Java (11)
  JavaScript (8)
  LAN (1)
  Link (4)
  Linux (15)
  Mac (1)
  Mail (2)
  Microsoft (3)
  NIS (1)
  Node.js (6)
  OpenIndiana (1)
  OpenLDAP (2)
  OpenSSL (1)
  OpenSolaris (4)
  PHP (2)
  Perl (2)
  Postfix (1)
  PostgreSQL (2)
  PowerShell (34)
  RFC (3)
  SQL Server (5)
  Solaris (10)
  Ubuntu (9)
  VBScript (73)
  VCpp (2)
  VMware (3)
  Visual Basic (1)
  WMI (17)
  WSF (5)
  WSH (10)
  Windows (19)
  bash (1)
  bind (1)
  iSCSI (1)
  おまけ (3)
  作成中 (8)
  慣用句 (3)
  正規表現 (6)
  運用 (8)
作成 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-2012 UPKEN IPv4