Get-ADUser コマンドレットは、Active Directory ユーザーを取得するために使用される非常に用途の広いツールです。特定の AD ユーザーを識別する必要がある場合は、SAM アカウント名などの値を使用して識別できます。または、1 人以上のユーザーに関する詳細情報が必要な場合は、Properties パラメーターを使用できます。

同様に、多数のユーザー オブジェクトを扱っている場合、Filter パラメーターは AD ユーザー ベースの取得に役立ちます。 Get-ADUser を並べ替えやエクスポートなどのツールと組み合わせると、ドメイン内のユーザー管理が非常に便利になります。

PowerShell Get-ADUser の要件

ドメイン コントローラーでは、Get-ADUser コマンドは明らかに既定で機能します。ただし、AD ドメインの一部である他のシステムでこのコマンドを実行しようとすると、Get-ADUser が認識されないというエラーが発生する場合があります。

これは、RSAT AD をインストールする必要があるためです最初にコンポーネントを Add-WindowsCapability –online –Name”Rsat.ActiveDirectory.DS-LDS.Tools~~~~0.0.1.0″で実行できます。これを行うと、どのシステムでも Get-ADUser を使用できます。

ドメイン管理者アカウントに限定されることもありません。承認された AD ユーザー アカウントはすべて機能します。管理者以外のアカウントは、このコマンドを使用してほとんどのユーザー オブジェクト属性を取得できますが、一部の機密情報にはドメイン管理者のみがアクセスできる可能性があることに注意してください。

Get-ADUser パラメーター

Get-ADUser は主に、Identify、Filter、LDAPFilter の 3 つのパラメーターを使用してユーザー オブジェクトを取得します。

Identity は、識別名や GUID などの特定の値を使用してユーザー オブジェクトを取得します。これは、ユーザー オブジェクトを見つけて必要な値を覚えておく必要がある場合に便利です。

Filter は、選択したクエリに基づいてユーザー オブジェクトのリストを返します。パスワードの有効期限が切れている AD ユーザーや、過去 2 週間ログインしていないユーザーなどを取得する必要がある場合は、フィルターが役立ちます。特定のサーバー、特定の OU などからのユーザー オブジェクトのみに結果をさらに絞り込むことができます。

LDAPFilter はクエリ文字列を使用してユーザー オブジェクトをフィルター処理します。違いは、PowerShell 構文に従う Filter とは異なり、LDAPFilter は独自の LDAP クエリ構文 (属性と値) を使用することです。これは、多少の学習曲線があることを意味しますが、慣れれば便利なツールであることがわかります。

SearchBase のような他の便利なパラメーターもあります。 SearchScope については、例で説明します。 パラメーターの完全なリストですが、この記事では前の 3 つに焦点を当てます。

Identity

Identity は単一の AD ユーザー オブジェクトを返します。次のプロパティのいずれかを使用します:

識別名 (DN) ObjectGUID objectSid (SID、またはセキュリティ識別子) SamAccountName

Ava という名前のユーザーの詳細が必要だとしましょう。彼女の SamAccountName が ava であると仮定すると、Get-ADUser-Identity ava でユーザー オブジェクトを取得できます。

ただし、このコマンドは 10 個のメイン プロパティしか返しません。ユーザー オブジェクトの完全なプロパティ リストが必要な場合は、代わりに Get-ADUser-Identity ava-Properties * を使用する必要があります。

フィルター

一般に、Identity パラメーターに必要なプロパティ値を覚えていないため、フィルターがより一般的に使用される傾向があります。 Filter は、PowerShell Expression Language 構文に従って AD ユーザー オブジェクトを取得するクエリ文字列を指定します。したがって、演算子はオペランドと値の間に入ります。

基本的な例は、Get-AdUser-Filter”Name-like’*a*'”のようになります。ここで、Name はオペランドで、like は the a は値です。このコマンドは、名前に文字 a を含むすべてのユーザー オブジェクトを返します。

もう 1 つの便利なコマンドは、すべての AD オブジェクトを取得する Get-ADUser-Filter * です。

フィルタ演算子のリストは次のとおりです:

<表> 演算子機能eqEqual togeGreater than or equal toleLess than or equal toneNot equal toapproxAprapproximate equal togtGreater thanltLess thanlikeLikenotlikeNot likeandAll clauses must be trueorAny the clauses should truenotThe c lause は falsebandBitwise ANDborBitwise OR である必要があります

前述のように、Get-ADUser -Properties * を使用すると、プロパティの完全なリストが返されます。このリストで、出力のフィルタリングに使用できる許容可能なすべてのプロパティを確認できます。

AccountExpirationDate City Company Country CountryCode Department Description EmailAddress EmployeeID EmployeeNumber Enabled Initials LogonCount Name PasswordExpired SamAccountName State Title

これらの演算子とプロパティを使用して、さまざまな種類のフィルタを作成できます。たとえば、説明に Tech が含まれるユーザーのみを取得するには、Get-ADUser-Filter”Description-like’Tech'”を使用できます。アクティブな AD ユーザーのみを一覧表示するには、Get-ADUser-Filter’Enabled-eq $true’を使用します。

同様に、コマンドを組み合わせて、説明に Tech が含まれるアクティブな AD ユーザーを一覧表示できます。:
Get-ADUser-Filter {Description-like’Tech’-and Enabled-eq $true}

管理者以外のアカウントを使用している場合、権限がない場合、未終了エラーが発生することがありますタスクを実行します。この場合、資格情報オプションを使用して、次のように異なる資格情報でコマンドを実行できます。
Get-ADUser-Filter *-Credential ava

最後に、Filter は通常多くの AD オブジェクトを返すため、次の方法で出力をさらに最適化できます。必要な正確なプロパティ値を指定します。最初に Properties パラメータを使用して値を取得し、次に Select-Object オプションを使用して指定したプロパティのみを表示します。
Get-ADUser-Filter *-Properties Name 、イニシャル | Select-Object 名、イニシャル

LDAPFilter

LDAP 句は (ADAttribute Operator Value) 形式に従います。具体的には、次の演算子を使用します:

演算子関数=等しい>=より大きいか等しい<=より小さいか等しい~=ほぼ等しい&Boolean AND|Boolean OR!Boolean NOT

いくつかの基本的な例を見てみましょう。次のコマンドは、名前が era で終わる AD オブジェクトを返します:
Get-ADUser-LDAPFilter”(name=*era)”

説明に Tech が含まれていないオブジェクトを取得するには:
Get-ADUser-LDAPFilter'(!(description=Tech))’

複数の句を組み合わせて、名前に A が含まれ、説明に Tech が含まれていないオブジェクトを取得するには:
Get-ADUser-LDAPFilter'(&(!(description=Tech ))(cn=A))’

便利な Get-ADUser の例

この時点で、基本的な Get-ADUser の使用法を理解する必要があります。他の有用なパラメーターとシナリオを示す一般的なユースケースの例をここにリストしました。

出力を表形式で取得するには、Format-Table または ft:
Get-ADUser-Filter * | を使用します。 Format-Table
特定のコンテナーからオブジェクトを取得するには、SearchBase を使用します:
Get-ADUser-Filter *-SearchBase”OU=Cali,OU=Locations,DC=mylab,DC=local”
OU 階層の特定のレベルまでオブジェクトを取得するには、 SearchScope を使用:
Get-ADUser-Filter *-SearchBase”OU=Cali,OU=Locations,DC=mylab,DC=local”-SearchScope 1 | ft
特定のドメイン コントローラーからオブジェクトを取得するには、サーバーを使用:
Get-ADUser –Server mylab.local –Identity ava
電話番号が設定されていないユーザーを取得するには、
Get-ADUser-LDAPFilter'(!phone=*)’
全ユーザーのメールアドレスを表示するにはs,
Get-ADUser-Filter *-Properties Name, EmailAddress |名前、メールアドレスを選択
出力をエクスポートするにはtext,
Get-ADUser-filter *-properties 名前、PasswordLastSet | ft Name, PasswordLastSet > C:\pwddata.txt
出力を CSV にエクスポートするには、
Get-ADUser-filter *-properties Name, PasswordLastSet | select-object Name、PasswordLastSet | Export-csv-path C:\pwddata.csv-Append-Encoding UTF8

Categories: IT Info