Ipswitch Blogs

PowerShell を使用して Active Directory を検索

Dan Franciscus | Posted on | IT技術情報

Microsoft 環境の IT 管理者が PowerShell で最初に行うことの1つに、PowerShell を使用して Active Directory でタスクを実行することがあります。

PowerShell を使って、コンピュータを Active Directory に登録したり削除したり、パスワードをリセットしたり、といった様々なことが可能です。筆者が特によく実行するタスクは、Active Directory でユーザーとコンピュータの情報を検索することです。PowerShell が便利なのは、特定の部門のユーザーのみを検索するなど、情報をフィルター処理できる点にあります。このブログでは、PowerShell で Active Directory を検索する方法を説明します。

ユーザー情報の検索

AD でユーザー情報を検索するには、Get-ADUser コマンドレットを使用します。筆者が多用する -Identity パラメータには、以下のようなタイプの値を渡すことができます。

  • 識別名 (DistinguishedName)
  • GUID (ObjectGUID)
  • セキュリティ識別子 (SID)
  • SAM アカウント名 (SamAccountName)

たとえば、次のように samaccountname で情報を取得することができます。

C:\> Get-ADUser -Identity dfrancis




DistinguishedName : CN=Daniel Franciscus,OU=Test,DC=domain,DC=com

Enabled           : True

GivenName         : Dan

Name              : Daniel Franciscus

ObjectClass       : user

ObjectGUID        : 68fbb9c6-bc5a-4892-8f93-5ba8ec523365

SamAccountName    : dfrancis

SID               : S-1-5-21-2099712884-232525161-946742744-8334

Surname           : Franciscus

UserPrincipalName : dfrancis@domain.com

簡単ですね?もう少し進んで -Filter パラメータを使うと、出力をフィルタリングできます。次のようにすると、間違ったパスワードのカウントが7を超えるユーザーを表示できます。

C:\>  Get-ADUser -Filter 'badpwdcount -ge 7' | Select-Object samaccountname




samaccountname

--------------

Guest

Test-1

TestUser2

TestUser3

TestUser4

また、特定の組織単位で、Active Directory の特定の情報を検索することもできます。下は、組織単位 (organizational unit、OU) =Desktop で、姓が「Davis」であるユーザーをチェックする例です。

C:\> Get-ADUser -Filter 'Surname -eq "Davis"' -SearchBase 'OU=Desktop,DC=domain,DC=com' -Properties *  | Select Displayname,Surname




Displayname    Surname

-----------    -------

Dan Davis      Davis

Brad Davis     Davis

Active Directory では姓の属性は “Sirname” なので、–eq 演算子を使用して “Sirname” が “Davis” であることを正確に指定します。

コンピュータ情報の検索

コンピュータ情報の検索には、Get-ADComputer コマンドレットを使用します。パラメータは Get-ADUser とよく似ていて、同様に機能します。次の例は、特定の IPv4 アドレスに関連付けられたコンピュータ情報の検索です。

C:\> Get-ADComputer -Filter 'IPv4Address -eq "172.16.67.155"'




DistinguishedName : CN=Test-1,OU=Staff,OU=Test,DC=domain,DC=com

DNSHostName       : Test-1.domain.com

Enabled           : True

Name              : Test-1

ObjectClass       : computer

ObjectGUID        : 68e597fe-631d-413d-9087-2cc806709c82

SamAccountName    : Test-1$

SID               : S-1-5-21-2099712884-232525161-946742744-11288

UserPrincipalName :

次は同じコマンドですが、検索されたマシンの SID だけを選んで表示しています。このような SID の検索など、Get-ADComputer で Active Directory の属性を簡単に検索できるのは非常に便利です。

C:\> Get-ADComputer -Filter 'IPv4Address -eq "172.16.48.155"' | Select-Object SID




SID

---

S-1-5-21-2099712884-232525161-946742744-11243

最後に

Active Director を頻繁に使用する場合は、Active Directory PowerShell モジュールを検討してください。AD の表示と変更を効率的に行うことができ、フィルタリングも簡単です。

 

Get Started with Ipswitch

Free Trial Price Quote Live Demo

Subscribe to our mailing list

Get our latest blog posts delivered in a weekly email.

Subscribe