Active Directory の扱いは、時に面倒な場合があります。少数のユーザーを管理する場合でも、ドメイン全体を管理する場合でも、コマンドラインツールを使えば、正しく動作させれば作業を大幅にスピードアップできます。しかし、最も難しいのは、適切なモジュールをインストールし、PowerShell が Active Directory と正しく通信していることを確認することです。誰もが一日中 GUI ツールを操作したいわけではないので、PowerShell の使い方を知っていれば、一度セットアップしてしまえば、大幅に時間を節約できます。さらに、PowerShell は繰り返しのタスクを自動化するのに非常に便利で、いくつかのコマンドでかなり複雑な処理を実行できます。このガイドは、Windows デスクトップまたはサーバーに PowerShell モジュールをインストールし、Active Directory でスクリプトを自在に操作できるようになるためのガイドです。
Windows で Active Directory モジュールがインストールされない、または動作しない問題を修正する方法
方法1:Windows 10および11にRSAT機能をインストールする
ADモジュールが利用できない場合は、まずWindowsのバージョンを確認してください。Windows 10と11では、これらの機能はオプション機能として提供されていますが、オンラインでインストールされます。以前のビルドではRSATパッケージを手動でダウンロードする必要がありましたが、最近は直接インストールできるので、少し面倒です。最も簡単な方法は、PowerShellで次のコマンドを管理者権限で実行することです。
Add-WindowsCapability -online -Name Rsat. ActiveDirectory. DS-LDS. Tools~~~~0.0.1.0
これにより、必要なADツールとモジュールが読み込まれます。ビルドによっては、このコマンドが最初の試行で完璧に動作しない場合があります。これは当然のことながら、Windowsが処理を複雑にする必要があるためです。その場合、または古いバージョンを使用している場合は、次の手順を実行してください。
- [設定] > [アプリ] > [オプション機能]に移動し、[機能の追加]をクリックします。
- スクロールするか、「RSAT: Active Directory Domain Services and Lightweight Directory Services」を検索します。
- 確認してインストールしてください。その後再起動が必要になる場合があります。
注: 古いバージョンの Windows の場合、またはオンライン メソッドが機能しない場合は、Microsoft Web サイトから RSAT インストーラーを手動でダウンロードし、[コントロール パネル] > [プログラム] > [Windows の機能の有効化または無効化]から機能を有効にする必要がある場合があります。
見落とされがちな小さな追加手順が1つあります。Windows PowerShell を管理者として実行していることを確認してください。そうしないと、コマンドがエラーになる場合があります。また、これらのコマンドレットを PowerShell Core(PowerShell 7 以降など)で使用する場合は、まず WindowsCompatibility モジュールを読み込む必要がありますが、これは簡単ではありません。そのためには、次のコマンドを実行します。
Install-Module -Name WindowsCompatibility Import-Module WindowsCompatibility Import-WinModule -Name ActiveDirectory
ちょっと変わった設定ですが、環境によってはPowerShell CoreでADコマンドレットを実行できます。すべてのマシンで動作するとは限らず、バグが発生することもあります。とはいえ、Windows以外のシェルからスクリプトを作成しようとしている場合は、試してみる価値はあるでしょう。
方法2: Windows Serverへのインストール
Windows Serverをご利用の場合は、手順はもう少し簡単です。サーバーマネージャーまたはPowerShellを使用して、モジュールがインストールされているかどうかを確認できます。機能があるかどうかを確認するには、次のコマンドを実行します。
Get-WindowsFeature -Name "RSAT-AD-PowerShell"
見つからない場合は、次のコマンドを実行します:
Install-WindowsFeature -Name "RSAT-AD-PowerShell" -IncludeAllSubFeature
これは通常うまく機能し、PowerShellを使ってサーバーがADを管理できることを確認する最もクリーンな方法です。ドメインコントローラーでは、サーバーをDCに昇格させるとADモジュールが自動的にインストールされますが、リモート管理でモジュールがインストールされていない場合は、表示されている通りにインストールしてください。なお、AD Webサービスが実行されていることを確認するには(モジュールはTCPポート9389経由で接続するため)、次のコマンドを実行してください。
Test-NetConnection DCName -port 9389
ブロックされていると表示される場合は、ファイアウォールでそのポートを開く必要があります。そうしないと、モジュールは何も言わずに動作を拒否するか、リモートで使用しようとしたときにエラーが発生します。
方法3: 一般的なインストール問題のトラブルシューティング
最善を尽くしても、モジュールのインストールや読み込みが拒否されることがあります。これは、Windows アップデートが保留中になっている、システムファイルが破損している、ネットワークに問題があるなどの理由が考えられます。DISM /Online /Cleanup-Image /RestoreHealthまたはsfc /scannowを実行すると、根本的な問題を解決できる場合があります。また、システムが完全に更新されていることを確認してください。パッチが不足していると、機能のインストールが失敗する場合があります。
インストール後に動作を確認する方法
手順を実行したら、新しい PowerShell ウィンドウを開き (管理者として実行することを推奨)、次のように入力します。
Import-Module ActiveDirectory Get-Module -Name ActiveDirectory
エラーが表示されず、インポート済みと表示されれば成功です。次の操作を試してください。
Get-ADUser -Filter * -Properties * | Select-Object Name, SamAccountName | Less
Active Directoryユーザーのリストが表示されれば、設定は完了です。表示されない場合は、アカウントに適切な権限が付与されていること、およびファイアウォールの問題なくドメインコントローラーにアクセスできることを再度ご確認ください。
まとめ
Active Directoryモジュールのインストールは、特にWindowsが不可解なエラーを出している場合は、少し面倒に感じるかもしれません。しかし、一度インストールが完了すれば、日常的なAD管理をスクリプト化することで数時間の節約になります。さらに、すべてを自分の管理下に置けるという満足感も得られます。何度か再試行したり、再起動したり、別の方法を試したりする必要がある場合もありますが、粘り強く取り組むことで必ず成果は得られます。この記事が正しい方向を示し、少しでも頭を悩ませるのを防いでくれることを願っています。
まとめ
- Windows のバージョンを確認し、PowerShell または設定を使用して RSAT 機能をインストールします。
- Windows Server では、Server Manager または PowerShell コマンド (など) を使用します
Install-WindowsFeature。 - PowerShell Core の場合、必要に応じて WindowsCompatibility を使用してモジュールを読み込みます。
- ドメイン コントローラーへの接続、特にリモート AD 管理用のポート 9389 を確認します。