PowerShell操作の基本について学びたい方は、過去に連載した記事を参照ください。
対象読者
ActiveDirectory管理者、またはActiveDirectory管理に興味がある方。
必要な環境
- Windows Server 2008 R2
- PowerShell
ユーザー管理用コマンドレット
ActiveDirectoryモジュールには下表に示すユーザー管理専用のコマンドレットがあります。
コマンドレット | 説明 |
Get-ADUser | 1人以上のActiveDirectoryユーザーを取得する |
Get-ADUserResultantPasswordPolicy | ユーザーのパスワードポリシーの結果を取得する |
New-ADUser | 新しくActiveDirectoryユーザーを作成する |
Remove-ADUser | ActiveDirectoryユーザーを削除する |
Set-ADUser | ActiveDirectoryユーザーを修正する |
ユーザーを取得する
ActiveDirectoryユーザーを取得するにはGet-ADUserコマンドレットを使用します。Get-ADUserは非常に多くのパラメータを持っており、一口に「ActiveDirectoryユーザーを取得する」といっても、その取得方法は多様です。
次に示すように使用方法は3つあります。
- Filterパラメータを使用してPowerShellの記述言語でクエリ文字列を作成しActiveDirectoryユーザーを取得する方法
- Identityパラメータを使用して取得するActiveDirectoryユーザーを指定する方法
- LDAPFilterパラメータを使用してLDAPクエリ文字列でActiveDirectoryユーザーを取得する方法
上記3つについてそれぞれ例を見ていきましょう。
Filterパラメーターを使用する
全ユーザーを取得する
Filterパラメーターにワイルドカード(*)を指定すると、ActiveDirectoryに登録されている全ユーザーを取得することができます。
Get-ADUser -Filter *
メールアドレスからユーザーを取得する
ユーザーはメールアドレスから検索することが可能です。ここでは、メールアドレスが”hiro”で始まるユーザーを検索してみましょう。
「メールアドレスが”hiro”で始まる」を式で表すと「EmailAddress -like ‘hiro*’」となるので、コマンドは以下のようになります。
Get-ADUser -Filter {EmailAddress -like "hiro*"}
メールアドレスでユーザーを検索する以外にも、ユーザーが持つ属性による(性<givenname>、名<surname>、電話番号<telephonenumber>)検索も可能です。
参考までにパラメーターに指定可能な属性、ユーザープロパティのインターフェース上に絵で表したものを載せておきます。
特定の組織単位(OU)に属するユーザーを取得する
今度は-SearchBaseパラメータを追加して任意のOUに属するユーザーを取得してみましょう。下記コマンドはcorp.contoso.comのITに属するユーザーを検索します。
Get-ADUser -Filter * -SearchBase "OU=IT,DC=corp,DC=contoso,DC=com"
Identityパラメーターを使用する
Identityパラメーターでは、次のプロパティのいずれかを指定した検索ができます。
- 識別名
- GUID
- セキュリティ識別子
- SAMアカウント名
例としてセキュリティ識別子による検索例を見てみましょう。
Get-ADUser -Identity "S-1-5-21-4193795416-3281483866-4073542180-1000"
LdapFilterパラメーターを使用する
LDAPFilterパラメータを使用すると、LADPクエリ文字列による検索を行えます。下記はcorp.contoso.comのIT組織(OU)の中から名前が”HIRO”で始まるオブジェクトを検索します。
Get-ADUser -LDAPFilter "(name=HIRO*)" -SearchScope Subtree -SearchBase "OU=IT,DC=corp,DC