Windows Server
 Computer >> コンピューター >  >> システム >> Windows Server

Get-ADUser:PowerShellを使用してActiveDirectoryユーザー情報を検索する

Get-ADUser PowerShellコマンドレットを使用すると、Active Directoryユーザーとその属性に関する情報を取得し、ドメインユーザー間で検索できます。これは、ADから情報を取得するための最も一般的なPowerShellコマンドレットの1つです。 Get-ADUserコマンドレットを使用すると、ADユーザーアカウントの任意の属性の値を取得し、属性を持つドメインユーザーを一覧表示し、ユーザーレポートをCSVファイルにエクスポートし、さまざまな基準を使用してドメインユーザーを選択およびフィルタリングできます。

ActiveDirectoryPowerShellモジュールのGet-ADUserコマンドレット

Get-ADUser コマンドレットは、Active Directoryと対話するための特別なモジュール– WindowsPowerShell用ActiveDirectoryモジュールに含まれています 。 RSAT-AD-PowerShellモジュールコマンドレットを使用すると、ADオブジェクトに対してさまざまな操作を実行できます。

。以前は、ADユーザーアカウントの属性に関する情報を取得するには、ADUCコンソール(保存されたADクエリを含む)、VBSスクリプト、dsqueryなどのさまざまなツールを使用する必要がありました。これらのツールはすべてGet-ADUserコマンドレットで簡単に置き換えることができます。 。

この例では、Get-ADUser PowerShellコマンドレットを使用して、ユーザーのパスワードが最後に変更された日時、パスワードの有効期限、および他のユーザーのプロパティに関する情報を取得する方法を示します。

RSAT-AD-PowerShellモジュールを使用するには、昇格されたPowerShellコンソールを実行し、次のコマンドでモジュールをインポートする必要があります。

Import-Module ActiveDirectory

RSAT-AD-PowerShellモジュールは、Active Directoryドメインサービス(AD DS)の役割を展開したときに、デフォルトでWindows Server 2012(およびそれ以降)にインストールされます。ドメインメンバーのWindowsServerホストにモジュールをインストールするには、次のコマンドを実行します。

Install-WindowsFeature -Name "RSAT-AD-PowerShell" –IncludeAllSubFeature

Get-ADUser:PowerShellを使用してActiveDirectoryユーザー情報を検索する

デスクトップWindows10/11でGet-ADUserコマンドレットを使用するには、適切なバージョンのRSATをインストールする必要があります。 設定からRSATを有効にできます ->アプリ ->オプション機能 ->機能を追加する -> RSAT:ActiveDirectoryドメインサービスと軽量ディレクトリサービスツール

Get-ADUser:PowerShellを使用してActiveDirectoryユーザー情報を検索する

RSAT ADモジュールは、PowerShellを使用してWindows10および11にインストールできます。

Add-WindowsCapability –online –Name "Rsat.ActiveDirectory.DS-LDS.Tools ~~~~ 0.0.1.0"

RSAT-AD-PowerShellモジュールがコンピューターにインストールされていない場合、Get-ADUserコマンドを実行すると、エラーが表示されます。

Get-ADUser: The term 'get-aduser' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.

モジュールがインストールされていることを確認し、必要に応じて、PowerShellセッションにインポートします。

Import-Module ActiveDirectory

Get-ADUser:PowerShellを使用してActiveDirectoryユーザー情報を検索する

コンピューターにRSATをインストールせずにAD-PowerShellモジュールを使用する方法もあります。メインモジュールファイルをコピーして、モジュールをPowerShellセッションにインポートするだけで十分です。

Import-Module "C:\ PS \ AD \ Microsoft.ActiveDirectory.Management.dll"
Import-Module "C:\ PS \ AD \ Microsoft.ActiveDirectory.Management.resources.dll"
>

Get-ADUserコマンドレットのすべての引数の完全なリストは、次のように取得できます。

help Get-ADUser

Get-ADUserを使用してADユーザーとリストプロパティを検索する方法

Get-ADUserコマンドレットを使用するために、ドメイン管理者または委任された権限を持つアカウントで実行する必要はありません。許可されたADドメインユーザーは、PowerShellコマンドを実行して、ほとんどのADオブジェクト属性の値を取得できます(機密属性を除く。ローカル管理者パスワードソリューション– LAPSの例を参照してください)。別のアカウントでGet-ADUserコマンドを実行する必要がある場合は、–資格情報を使用してください パラメータ。

すべてのドメインユーザーアカウントのリストを表示するには、次のコマンドを実行します。

Get-ADUser -filter *

重要 。多数のユーザーアカウントを持つActiveDirectoryドメインでこのコマンドを実行することはお勧めしません。これにより、AD情報を提供するドメインコントローラに大きな負荷がかかる可能性があります。

Get-ADUser:PowerShellを使用してActiveDirectoryユーザー情報を検索する

Set-ADUserを使用します ActiveDirectoryユーザー属性を変更するためのコマンドレット。

特定のユーザーのプロパティを表示するには、 –Identityを使用します パラメータ。 IDには、ユーザー名、ログイン(SAMAccountName)、DN(識別名)、SID、またはGUIDを指定できます。

次のPowerShellコマンドは、同じADユーザーアカウントに対して同じ結果を返します。

Get-ADUser –Identity b.smith
Get-ADUser –Identity "CN =Brian Smith、OU =Users、OU =Berlin、DC =woshub、DC =loc"
Get-ADUser –アイデンティティ「ブライアンスミス」

Get-ADUser:PowerShellを使用してActiveDirectoryユーザー情報を検索する

デフォルトでは、Get-ADUserコマンドレットは10個の基本的なユーザー属性(120を超えるユーザーアカウントプロパティのうち)のみを返します:DistinguishedName、SamAccountName、Name、SID、UserPrincipalName、ObjectClass、アカウントステータス(有効:UserAccountControlADに応じてTrue/ Falseこの場合、コマンドレットの出力には、最後にユーザーのパスワードが変更された時刻に関する情報は含まれていません。

特定のドメインコントローラーでADクエリを実行するには、-サーバーを使用します オプション:

Get-ADUser –Server DC01.woshub.com –Identity tstuser

別のADドメインからユーザーデータを取得する必要がある場合は、それにアクセスするためにドメインコントローラーの名前と資格情報を指定する必要があります。

$ ADcred =Get-Credential
Get-ADUSer tstuser -Server DC01.contoso.com -Credential $ ADcred

使用可能なすべてのユーザー属性に関する詳細情報を表示するには、次のコマンドを実行します。

Get-ADUser -identity tuser -properties *

Get-ADUser:PowerShellを使用してActiveDirectoryユーザー情報を検索する

プロパティ*を含むGet-ADUserコマンドレット スイッチは、すべてのADユーザーの属性とその値(空の属性を含む)を一覧表示します。同様のユーザー属性のリストは、Active Directoryユーザーとコンピューターのグラフィカルスナップイン( dsa.msc )で利用できます。 )属性エディタタブの下。

次に、Get-ADUser出力のフォーマットに移動して、必要なユーザー属性が表示されるようにします。たとえば、次のユーザープロパティの値を表示するとします。

  • PasswordExpired
  • PasswordLastSet
  • PasswordNeverExpires
  • LastLogonTimestamp

コマンドを実行します:

Get-ADUser tuser -properties PasswordExpired、PasswordLastSet、PasswordNeverExpires、lastlogontimestamp

Get-ADUser:PowerShellを使用してActiveDirectoryユーザー情報を検索する

これで、ユーザーデータに、アカウントのパスワードステータス(期限切れ:True / False)、最後のパスワード変更の日付、およびドメインへの最後のユーザーログオンの時刻( lastlogontimestamp > 属性)。この情報をより便利なテーブルビューで表示し、不要な属性をすべて削除するには、 Select-Object –Propertyを使用します およびフォーマットテーブル

Get-ADUser -filter * -properties PasswordExpired、PasswordLastSet、PasswordNeverExpires | ft Name、PasswordExpired、PasswordLastSet、PasswordNeverExpires

Get-ADUser:PowerShellを使用してActiveDirectoryユーザー情報を検索する

Get-ADUser -SearchBase:特定のOUからユーザーを取得する

特定のドメインコンテナ(組織単位)のユーザーのみを表示するには、– SearchBaseを使用します パラメータ:

Get-ADUser -SearchBase'OU =London、DC =woshub、DC =loc' -filter * -properties PasswordExpired、PasswordLastSet、PasswordNeverExpires | ft Name、PasswordExpired、PasswordLastSet、PasswordNeverExpires

複数のOUから一度にユーザーを選択する必要がある場合は、次のPowerShellスクリプトを使用してください。

$ OUs ="OU =NY、DC =woshub、DC =com"、 "OU =LA、DC =woshub、DC =com"、 "OU =MA、DC =woshub、DC =com"
$ OUs | foreach {Get-ADUser -SearchBase $ _ -Filter * | select Name、Enabled}

PowerShellを使用してADからユーザーのメールアドレスを取得するにはどうすればよいですか?

ユーザーの電子メールアドレスは、ActiveDirectoryのユーザーオブジェクト属性の1つです。ユーザーのメールアドレスを一覧表示するには、 EmailAddressを追加する必要があります Get-ADUserコマンドレットのプロパティへのフィールド。

Get-ADUser -filter * -properties EmailAddress -SearchBase'OU =Paris、OU-Fr、DC =woshub、DC =com' | select-object Name、EmailAddress

Get-ADUser:PowerShellを使用してActiveDirectoryユーザー情報を検索する

電子メールアドレスを持つ有効なユーザーアカウントのリスト:

Get-ADUser -Filter {(mail -ne "null")-and(Enabled -eq "true")} -Properties Surname、GivenName、mail | Select-Object Name、Surname、GivenName、mail |フォーマット-テーブル

電子メールアドレスを持たないActiveDirectoryユーザーのリストを取得するには:

Get-ADUser -Filter * -Properties EmailAddress |ここで、-Property EmailAddress -eq $ null

次の例では、会社の電子メールリストをADからCSVファイルにエクスポートできます。後で、このCSVアドレスリストをOutlookやMozillaThunderbirdなどのデスクトップメールクライアントにインポートできます。

Get-ADUser -Filter {(mail -ne "null")-and(Enabled -eq "true")} -Properties Surname、GivenName、mail | Select-Object Name、Surname、GivenName、mail | Export-Csv -NoTypeInformation -Encoding utf8 -delimiter "、" $ env:temp \ address_list.csv

Get-ADUser:PowerShellを使用したActiveDirectoryユーザーのCSVへのエクスポート

結果として得られる属性を持つドメインユーザーのリストは、テキストファイルにエクスポートできます。

Get-ADUser -filter * -properties PasswordExpired、PasswordLastSet、PasswordNeverExpires | ft Name、PasswordExpired、PasswordLastSet、PasswordNeverExpires> C:\ temp \ users.txt

または、ADユーザーリストをCSVファイルにエクスポートできます:

Get-ADUser -filter * -properties PasswordExpired、PasswordLastSet、PasswordNeverExpires |ここで、{$_。name–like "* Dmitry *"} |ソートオブジェクトPasswordLastSet| select-object Name、PasswordExpired、PasswordLastSet、PasswordNeverExpires | Export-csv -path c:\ tmp \ user-passwords-expires.csv -Append -Encoding UTF8

ADユーザーリストは、PowerShellを使用してExcelファイルに直接エクスポートできます。

Get-ADUserフィルターの例

–フィルターの使用 スイッチを使用すると、ユーザーアカウントのリストを1つ以上の属性でフィルタリングできます。これは、属性が指定された基準に一致するADユーザーを検索する場合に役立ちます。 Active Directoryユーザーの特定の属性の値は、このパラメーターの引数として指定できます。 –Filterを使用する場合 パラメータの場合、Get-ADUserコマンドレットは、フィルタ条件に一致するユーザーのみを表示します。

たとえば、名前に「 Dmitry 」が含まれているアクティブな(有効な)ユーザーアカウントを一覧表示したいとします。 」。以下の例では、複数のフィルターを使用しています。論理PowerShell比較演算子を使用して条件を組み合わせることができます。この例では、ユーザー属性は両方のフィルター条件を満たす必要があります(-および ):

Get-AdUser -Filter "(Name -like'* Dmitry *')-and(Enabled -eq'True')" -Properties * | select name、enabled

Get-ADUser:PowerShellを使用してActiveDirectoryユーザー情報を検索する

すべてのPowerShell論理演算子を使用して、ユーザー属性の値を選択できます( -eq -ne -gt -ge -lt -le -like -notlike -および-または 、など)

さらに、 Sort-Object を使用して、結果のユーザーリストを特定のユーザー属性で並べ替えることができます。 コマンドレット。 Where-Objectを使用することもできます 複数のフィルタリング基準を一度に指定するコマンドレット。

Get-ADUser -filter * -properties PasswordExpired、PasswordLastSet、PasswordNeverExpires -SearchBase'OU =NY、DC =woshub、DC =com' |ここで、{$_。name–like "* Dmitry *" -and$_。Enabled-eq$ true} |ソートオブジェクトPasswordLastSet| select-object Name、PasswordExpired、PasswordLastSet、PasswordNeverExpires

Get-ADUser:PowerShellを使用してActiveDirectoryユーザー情報を検索する

したがって、必要なActiveDirectory属性を持つユーザーのリストを取得できます。

複数の属性(legacyExchangeDN、proxyAddresses、SAMAccountName、Surname、DisplayName、SamAccountName、physicalDeliveryOfficeName、RDN、およびmsExchMailNickname)でユーザーを一度に検索するには、あいまいな名前の解決( ANR )を使用できます。 )機能:

Get-ADUser -Filter {anr -eq'John'} |名前を選択

ヒント 。 Get-ADUserを使用してActiveDirectoryユーザーを検索する場合、パフォーマンスの観点から、フィルターを使用して条件を指定します。 Where-Objectへのパイプラインを使用するよりも属性の方が望ましい コマンドレット。この場合、選択結果のフィルタリングはドメインコントローラーで実行され、より小さなデータセットがネットワーク経由でコンピューターに転送されます。

Get-ADUserクエリでLDAPフィルターを使用できます。 LDAPフィルターは、 –LdapFilterを使用して指定されます 属性。

Get-ADUser -LDAPFilter'(&(department =it)(title =sysops))'

PowerShellGet-ADUserの例

さまざまなフィルターを使用してActiveDirectoryユーザーにクエリを実行するためのより便利なPowerShellコマンドの例をいくつか示します。それらを組み合わせて、ADユーザーオブジェクトの必要なリストを取得できます。

名前がJoeで始まるADユーザーを表示します :

Get-ADUser -filter {name -like "Joe *"}

PowerShellを使用して、ActiveDirectory内のユーザーアカウントの総数を計算できます。

Get-ADUser -Filter {SamAccountName -like "*"} | Measure-Object

無効になっているActiveDirectoryユーザーアカウントを検索します:

Get-ADUser -Filter {Enabled -eq "False"} | Select-Object SamAccountName、Name、Surname、GivenName |フォーマット-テーブル

次のコマンドを使用して、ActiveDirectoryユーザーアカウントの作成日を確認できます。

get-aduser -Filter * -Properties Name、WhenCreated |作成時に名前を選択

過去24時間に作成された新しく追加されたActiveDirectoryユーザーのリストを取得できます:


$ lastday =((Get-Date).AddDays(-1))
Get-ADUser -filter {(whencreated -ge $ lastday)}

パスワードの有効期限が切れているアカウントを一覧表示します(ドメインパスワードポリシーでパスワードの有効期限オプションを構成できます):

Get-ADUser -filter {Enabled -eq $ True} -properties name、passwordExpired |ここで、{$_。PasswordExpired}|名前を選択、passwordexpired

Get-ADUserおよびAdd-ADGroupMemberコマンドレットを使用して、動的ADユーザーグループを作成できます(都市、役職、部門などによって異なります)。

タスク:テキストファイル(1行に1つのアカウント)に保存されているユーザーアカウントのリストについては、ADからユーザーの会社名を取得してCSVファイルに保存する必要があります(このファイルはExcelに簡単にインポートできます)。

Import-Csv c:\ ps \ users_list.csv | ForEach {
Get-ADUser -identity$_。user-PropertiesName、Company |
Select Name、Company |
Export-CSV c:\ ps \ users_ad_list.csv -Append -Encoding UTF8
}

過去90日間にドメインパスワードを変更していないユーザー:

$ 90_Days =(Get-Date).adddays(-90)
Get-ADUser -filter {(passwordlastset -le $ 90_days)}

非アクティブなユーザーアカウントを検索します(180日以上ドメインにログオンしていません)。 lastLogonTimestamp属性は、ドメインへのユーザーのログオン履歴を取得するために使用されます:

$ LastLogonDate =(Get-Date).AddDays(-180)
Get-ADUser -Properties LastLogonTimeStamp -Filter {LastLogonTimeStamp -lt $ LastLogonDate} | ?{$_。Enabled–eq $ True} | LastLogonTimeStampを並べ替える| FT名、@ {N ='lastlogontimestamp'; E ={[DateTime] ::FromFileTime($ _。lastlogontimestamp)}} -AutoSize

Active Directoryからユーザーの写真を取得してjpgファイルに保存するには、次のコマンドを実行します。

$ usr =Get-ADUsersjoe-プロパティthumbnailPhoto
$ usr.thumbnailPhoto | Set-Contentsjoe.jpg-エンコーディングバイト

ユーザーアカウントがメンバーになっているADグループのリストを取得するには:

Get-AdUser sjoe -Properties memberof | memberof -expandproperty memberofを選択します

特定のドメインセキュリティグループのメンバーであるOUのユーザーを一覧表示します。

Get-ADUser -SearchBase'OU =Rome、OU =Italy、DC =woshub、DC =com' -Filter * -properties memberof | Where-Object {($_。memberof-like "* CEO *")}

特定のドメインセキュリティグループのメンバーであるOUのユーザーを一覧表示します:

Get-ADUser -SearchBase'OU =Rome、OU =Italy、DC =woshub、DC =com' -Filter * -properties memberof | Where-Object {($_。memberof-like "* CEO *")}

特定のグループのメンバーを除く、OUのすべてのユーザーを一覧表示します。

$ Users =Get-ADUser -filter * -SearchBase'OU =Berlin、DC =woshub、DC =com' -properties memberOf
ForEach($ User In $ Users)
{
$ Groups =-join @($ User.memberOf)
If($ Groups -notlike'* Domain Admins *')
{
$ User.Name
}
}

組織単位名を持つADユーザーのリストをOut-GridViewテーブルにエクスポートします:

get-aduser -filter * -Properties cn、canonicalname | select name、userprincipalname、@ {Name ="OU"; expression ={$ _。Canonicalname.substring(0、$_。canonicalname.length-$_。cn.length)}} | Out-GridView

Get-ADUser:PowerShellを使用してActiveDirectoryユーザー情報を検索する

ADユーザーアカウントが存在することを確認します。
$ SamAccountName ='jbrown'
if(@(Get-ADUser -Filter {SamAccountName -eq $ SamAccountName})。Count -eq 0)
{Write-Host"ユーザー$SamAccountNameは存在しません"}

ユーザーがサインインできるドメインコンピューターを一覧表示します(LogonWorkstations AD属性によるログオン制限)。

Get-ADUser jbrown -Properties LogonWorkstations |フォーマット-リスト名、LogonWorkstations

ヒント 。 Get-ADComputerコマンドレットは、コンピューターのプロパティを取得したり、ActiveDirectoryから複数のコンピューターを検索したりするために使用されます。


  1. Active Directory サーバー 2016/2019 での最後のパスワード変更を確認する方法。

    Active Directory 内のユーザーの最後のパスワード変更を知りたい場合は、このチュートリアルを読み続けてください。この記事には、ユーザーが最後にパスワードを変更した時刻を Active Directory で表示する方法が記載されています。 Active Directory 2019/2016/2012 でユーザーの最後のパスワード変更を表示する方法 方法 1. Windows GUI からユーザー パスワードの最終変更を調べる Active Directory でユーザーのパスワードが最後に変更された日付を確認する必要がある場合: 1. Active Directory ユー

  2. Active Directory でユーザーの最終ログイン時間を表示する方法

    ユーザーが Active Directory に最後にログインした日付と時刻を表示する場合は、このチュートリアルを読み続けてください。このチュートリアルには、Active Directory ユーザーの最終ログイン時刻を確認するための 2 つの方法が含まれています。 AD ユーザーが任意のワークステーションから Active Directory にログオンするたびに、システムはログオンの日時を次の属性に記録します:lastLogon &lastLogonTimestamp. この 2 つのうち、最も正確な属性は lastLogon、 です。 これは、特定のドメイン コントローラによって認証さ