Active Directory(AD)のユーザーをドメイン内で検索する必要がある場合、PowershellのGet-Aduserコマンドが利用できます。ユーザーアカウントは従業員、サービスアカウント、その他のリソースに割り当てられています。しかし、ADのユーザーアカウントを管理することはますます難しくなっています。
Get-AdUser PowerShellコマンドレットを使用すると、さまざまな方法でADユーザーを取得することができます。この記事では、いくつかの方法とこの便利なコマンドレットの使用方法について学びます。
ManageEngine ADManager Plusを使用して、Active Directory、Exchange、およびMicrosoft 365を管理およびレポートします。 無料トライアルをダウンロード!
前提条件
この記事でカバーされているGet-AdUser
コマンドレットの例を使用するには、次のものが必要です:
- ADドメインに参加したWindows PC
- ADユーザーアカウントでログインしている
- PowerShell Active Directoryモジュールがインストールされている
Identity
を使用してユーザーアカウントを検索する
Get-AdUser
コマンドレットは、1つの目的と1つの目的のみを持っています。それは、ドメインユーザーを見つけるためのできるだけ多くのオプションを提供するために存在しています。ユーザー名をすでに知っている場合は、Identity
パラメータを使用することができます。
Identity
パラメータを使用すると、4つの異なる識別子のうちの1つを指定できます。
- distinguishedName (DN)
- samAccountName
- GUID
- SID
以下に、さまざまな識別子を使用してユーザーアカウントを検索する例が示されています。各ユーザーアカウントに対してAD属性のセットが返されることに注意してください。
Identity
パラメータに最も一般的に使用される属性は、samAccountName
属性です。
Get-ADUser
フィルター
複数のドメインユーザーを検索する必要がある場合や、識別子がわからない場合は、フィルターを使用します。そのために、Filter
とLDAPFilter
という2つのパラメータが用意されています。
各フィルターパラメータは、条件文を指定することができます。この条件が満たされると、Get-AdUser
はその条件に一致するユーザーアカウントを返します。
ユーザーをフィルタリングするための最も一般的なパラメータはFilter
です。Filter
パラメータを使用すると、PowerShellのWhere-Object
コマンドフィルター構文に似た条件を作成することができます。
Filter
パラメータは、PowerShellの式言語構文を使用します。この言語は、Where-Object
で使用するものに似ていますが、完全に同じではありません。このフィルタの使用方法についての詳細は、このActive DirectoryとLDAPフィルタの記事を参照してください。
以下は、Filter
パラメータの使用例です。この例では、AD属性(この例ではgivenName
)を指定し、条件を設定しています。フィルタは、givenName
がAdam
と等しい場合にのみユーザーを返すようになっています。
もう1つのフィルタリングオプションはLDAPFilter
ですが、この記事では説明しません。LDAPFilter
およびその構文の詳細については、このActive DirectoryとLDAPフィルタの記事を参照してください。
Get-AdUser
を使用したOU別のユーザーの取得
識別子またはフィルタを指定することで、PowerShellは基準に一致するドメイン内のすべてのユーザーを返します。これはOUで制限されません。OU別にフィルタを設定するには、Get-AdUser -SearchBase <OU>
を使用する必要があります。
SearchBase
パラメータを使用すると、特定のOU内のユーザーアカウントの検索を開始することができます。SearchBase
パラメータは、OUの識別名(DN)を受け入れます。MyUsers OUのすべてのユーザーを以下のように見つけることができます。*
のFilter
を使用すると、すべてのユーザーアカウントに一致することを意味します。
おそらく、単一のOU内のユーザーアカウントのみを見つけたい場合、および子OUを除外したい場合は、SearchBase
パラメータとSearchScope
パラメータを使用することができます。 SearchScope
パラメータは、OU階層でどのくらい深く検索するかを定義します。
たとえば、OUとその子OUのすべてのユーザーアカウントを検索したい場合は、SearchScope
の値に1
を使用します。子および孫OUすべてを検索したい場合は、2
を使用します。
以下は、MyUsers OUおよびその下のすべての子OUでユーザーアカウントを検索する例です。
代替資格情報の使用
Get-AdUser
は、デフォルトではログオンしているユーザーのコンテキストで実行されます。ただし、Credential
パラメータを使用して代替の資格情報を指定することもできます。
代替資格情報で認証するには、次のようにGet-Credential
を使用してPSCredentialオブジェクトを作成します:
資格情報に関する詳細は、PowerShell Get-Credentialコマンドレットの使用とすべての資格情報に関する情報を参照してください。
PowerShell Get-AdUserプロパティパラメータ
Get-AdUser
を実行すると、返される属性はわずかです。また、出力をSelect-Object -Property *
にパイプすると、すべての属性が返されるわけではありません。
Property
パラメーターを使用して、PowerShellでADユーザー属性を取得します。このパラメーターは、出力に表示する1つ以上のカンマ区切り属性を受け入れます。
以下に、givenName
がAdam
のすべてのユーザーアカウントのすべてのプロパティを検索するためにGet-AdUser
を使用する例が表示されます。出力は省略されていますが、メールアドレス、パスワードプロパティなど、他のよく知られた属性も表示されています。
ManageEngine ADManager Plusを使用して、Active Directory、Exchange、Microsoft 365を管理およびレポートします。無料トライアルをダウンロード!
概要
Get-ADUser
コマンドレットは、ADユーザーアカウントを検索したり、レポートを作成したりするための便利なコマンドです。ドメインからADユーザーを取得するための優れた方法です。 Get-AdUser
およびすべてのパラメーターの詳細については、Get-Help Get-AdUser
を実行してヘルプコンテンツを読んでください。
Get-AdUser
の使用方法の他の多くの例については、ブログ記事Active Directory Scripts Galore: Come and Get It!をご覧ください。