ADSearch

RSAT 不要で Active Directory を調べる PowerShell ライブラリ

English

どんなもの?

RSAT(リモートサーバー管理ツール)をインストールできない端末でも、一般のドメインユーザーのまま Active Directory・DNS・グループポリシー・Exchange の情報を取得できる PowerShell モジュールです。.NET の System.DirectoryServices(ADSI/LDAP)だけを使います。

yorozu-craft の「しごと・べんり」の PowerShell ライブラリです。

入手と読み込み

  1. GitHub の「Code → Download ZIP」でダウンロードし、フォルダごと手元かファイル共有に置きます(git clone https://github.com/YouheiOonuki/ADSearch でも可)
  2. PowerShell で読み込みます
# モジュールとして(推奨)
Import-Module C:\tools\ADSearch\ADSearch.psd1

# ファイル共有から
Import-Module \\fileserver\tools\ADSearch\ADSearch.psd1 -Force

実行ポリシー(RemoteSigned など)で読み込めない場合は、同梱の Import-ADSearch.ps1 を使います。

. ([scriptblock]::Create((Get-Content 'C:\tools\ADSearch\Import-ADSearch.ps1' -Raw)))
Import-ADSearch -Path 'C:\tools\ADSearch'

ダウンロードしたファイルは、先に Get-ChildItem -Recurse | Unblock-File でブロックを解除すると通常どおり読み込めます。

使い方の例

# ユーザーを取得
Get-ADUser -Identity yamada -Server dc01.corp.local

# 条件で絞り込み
Get-ADUser -Filter "DisplayName -like '山田*'" -Server dc01.corp.local

# グループのメンバーを再帰的に
Get-ADGroupMember -Identity "IT-Staff" -Recursive -Server dc01.corp.local

# ロックアウト中の有効なアカウント
Get-ADUser -Filter "Enabled -eq '$true'" -Server dc01 | Where-Object LockedOut

# DNS レコード(IP アドレスつき)
Get-ADDnsRecord -Name pc001 -ComputerName dc01.corp.local

# 読み込めたか・DC に届くかの自己診断
Invoke-ADSearchSelfTest -Server dc01.corp.local

例のドメイン名・ユーザー名は架空のものです。

使えるコマンド(42 個)

ディレクトリ

Get-ADUserGet-ADGroupGet-ADGroupMemberGet-ADComputerGet-ADOrganizationalUnitGet-ADObjectGet-ADServiceAccountGet-ADDomainGet-ADDomainControllerGet-ADForestGet-ADDefaultDomainPasswordPolicyGet-ADTrust

サイト・レプリケーション・GPO・DNS

Get-ADReplicationSiteGet-ADReplicationSiteLinkGet-ADReplicationSubnetGet-ADReplicationConnectionGet-ADGpoLinkGet-ADDnsRecord

Exchange の構成

Get-ExchangeServerGet-ReceiveConnectorGet-SendConnectorGet-AcceptedDomainGet-RemoteDomainGet-TransportRuleGet-MailboxDatabaseGet-DatabaseAvailabilityGroupGet-AddressListGet-GlobalAddressListGet-OfflineAddressBookGet-EmailAddressPolicy

Exchange の受信者

Get-RecipientGet-MailboxGet-RemoteMailboxGet-MailUserGet-MailContactGet-DistributionGroupGet-DynamicDistributionGroupGet-DistributionGroupMember

診断・棚卸し

Invoke-ADSearchSelfTestGet-ADUserHealthSearch-ADAccountGet-ADComputerHealth

パラメーターと出力の詳細はリファレンスマニュアルと、GitHub の README にあります。

よくある質問

RSAT(ActiveDirectory モジュール)が無くても使えますか?
はい。.NET の System.DirectoryServices(ADSI/LDAP)だけを使うので、RSAT のインストールは要りません。ドメインに参加した Windows 端末で、一般のドメインユーザーのまま動きます。
AD の情報を書き換えることはありますか?
ありません。公開しているコマンドはすべて取得(Get)・検索(Search)と自己診断だけです。テスト用のデータを作るスクリプト(forTest フォルダ)は検証用の環境専用で、本番では使わないでください。
RSAT の Get-ADUser と同じ結果になりますか?
主なパラメーターと出力のプロパティを RSAT に合わせています。-Identity は DN・ObjectGUID・SID・sAMAccountName を受け付け、見つからないときは RSAT と同じく例外になります。違いは README とリファレンスの「RSAT 互換プロパティ」「意図的な省略」に書いています。
実行ポリシーで読み込めません
同梱の Import-ADSearch.ps1 を使うと、ファイルを文字列として読み込んで取り込むため、ファイルの実行ポリシーの影響を受けません。ローカルにコピーできる場合は Unblock-File してから読み込む方法もあります。

プロキシの PAC ファイルを URL 一覧で一括評価する → PAC ファイル テスター

ご利用上の注意

ご要望・不具合の報告(Google フォーム):いただいた内容をもとに直します。お返事はしていません。GitHub の Issues でも受け付けます。

サイト全体の運営者情報・免責事項はこちら、プライバシーポリシーはこちらです(すべてのツールで共通)。

更新履歴