Active Directory(AD)は、企業内のユーザーやコンピューター、グループなどの管理に欠かせない存在です。特にシステム管理者にとって、ADユーザーの情報を素早く取得する手段は日常業務の効率化に直結します。
そこで役立つのが、PowerShellの「Get-ADUser」コマンドです。本記事では、Get-ADUserの基本的な使い方から応用的なフィルタリング方法、よく使われるパラメーターの解説まで、わかりやすく解説します。PowerShell初心者でもすぐに使いこなせるよう、実際の使用例を交えて紹介しますので、ぜひ参考にしてください。
Get-ADUserとは何か?
Get-ADUserは、Active Directory内のユーザー情報を取得するためのPowerShellコマンドレットです。
Windows Serverに搭載されている「ActiveDirectory」モジュールの一部で、ドメイン環境におけるユーザーアカウントの検索や一覧表示、属性の抽出に利用されます。
使用可能な環境
- Windows Server(AD DSの役割が有効)
- RSAT(Remote Server Administration Tools)をインストールしたWindowsクライアント
- ActiveDirectoryモジュールが利用可能な状態
まず、ActiveDirectoryモジュールをインポートしておくと確実です。
Import-Module ActiveDirectory
(※ Windows Serverの場合は標準でインポートされていることが多いです)
基本的な使い方:ユーザー一覧を取得する
Get-ADUserを最もシンプルに使う例として、以下のコマンドがあります。
Get-ADUser -Filter *
このコマンドは、すべてのADユーザーを取得するものです。ただし、デフォルトではName
とDistinguishedName
など、限られた情報しか表示されません。
もっと詳しく表示したい場合は、-Properties
パラメータを使ってみましょう。
Get-ADUser -Filter * -Properties * | Select-Object Name, Department, Title
上記では、すべての属性を取得し、その中からName
、Department
(部署)、Title
(役職)を選んで表示しています。
ユーザーを絞り込む:-Filterパラメーターの活用
すべてのユーザーを取得するだけでは実用的ではありません。特定の条件で検索するには、-Filter
パラメーターを使います。
名前で検索する
Get-ADUser -Filter "Name -like '山田*'"
「山田」で始まる名前のユーザーを検索します。-like
演算子とワイルドカード(*)の組み合わせがポイントです。
部署で検索する(部署情報を持つユーザー)
Get-ADUser -Filter "Department -eq '営業部'" -Properties Department
Department
属性を参照する場合は、-Properties Department
で明示的に指定する必要があります。
特定のユーザー情報を取得する:-Identityパラメーター
-Identity
パラメーターを使えば、特定のユーザーを直接指定して情報を取得できます。
Get-ADUser -Identity yamada.taro -Properties *
yamada.taro
はsAMAccountName(ユーザー名)です。メールアドレスやDistinguishedNameでも指定可能です。
この方法で取得すれば、そのユーザーに関するあらゆる属性情報を確認できます。
よく使われるプロパティ一覧
以下は、Get-ADUserで取得できる代表的な属性です:
プロパティ名 | 説明 |
---|---|
Name | 表示名 |
SamAccountName | ログオン名 |
UserPrincipalName | メールアドレス形式の名前 |
Enabled | 有効かどうか |
Department | 所属部署 |
Title | 役職 |
LastLogonDate | 最終ログオン日時 |
EmailAddress | メールアドレス |
たとえば、ログオン状態や役職をチェックするスクリプトは以下のようになります:
Get-ADUser -Filter * -Properties Enabled, Title | Select-Object Name, Enabled, Title
CSV出力して管理に活かす
取得したユーザー情報をCSV形式で保存すれば、Excelなどで分析できます。
Get-ADUser -Filter * -Properties Department, Title |
Select-Object Name, Department, Title |
Export-Csv -Path "C:\ADUsers.csv" -NoTypeInformation -Encoding UTF8
このようにすれば、部署ごとのユーザー一覧や人事データの確認にも活用できます。
注意点とトラブルシューティング
「Get-ADUserが使えない」という場合
以下のようなエラーが出る場合は、モジュールがインストールされていない可能性があります。
sqlコピーする編集するGet-ADUser : 用語 'Get-ADUser' は、認識されるコマンドレットの名前ではありません。
対処法:
Import-Module ActiveDirectory
またはRSATをインストールしてください(Windowsクライアントの場合)。
フィルター構文ミス
Filter構文の文字列はPowerShellではなく、独自の構文なので注意。たとえば、変数展開はできません。
$dep = "営業部"
Get-ADUser -Filter "Department -eq '$dep'" -Properties Department
上記のように、シングルクォーテーション内に変数を埋め込む必要があります。
応用:ログオンユーザー一覧の取得
ドメイン内のログオンユーザーを確認したい場合、LastLogonDate
属性を利用すると便利です。
Get-ADUser -Filter * -Properties LastLogonDate |
Where-Object { $_.LastLogonDate -gt (Get-Date).AddDays(-30) } |
Select-Object Name, LastLogonDate
これは、過去30日以内にログオンしたユーザーを一覧表示します。
まとめ
Get-ADUserは、Active Directory上のユーザー情報を柔軟に取得できる非常に強力なコマンドレットです。
単純な一覧取得から、詳細なプロパティ表示、CSVへのエクスポートまで、業務の効率化に大いに役立ちます。
ポイントを振り返ると:
-Filter
で検索条件を指定-Properties
で取得する情報を拡張Select-Object
で必要な情報だけ抽出Export-Csv
でファイル出力
PowerShellとADをうまく組み合わせることで、管理者の作業負荷を大幅に軽減できます。
まずは基本的な使い方を身につけ、自社環境に合わせたスクリプトに応用してみましょう。