システム管理と管理タスクの自動化のために開発されたMicrosoftのPowerShell(PS)管理フレームワークは、単に従来のコマンドラインシェルを置き換えるだけではありません。PSは、サービスやアプリケーションと統合することで、クライアントとサーバーの包括的な管理を実現し、さらに多くの機能を提供します。
基盤となるフレームワークが更新されるにつれて、より強力な新機能が利用可能になります。PSは、Active Directory(AD)などのサポートサービスのモジュールをインポートすることでさらに強化され、管理者はADに保存されているデバイスやユーザーアカウントをより詳細に制御できるようになります。この機能は、コントローラーやドメインサービスを含む、ディレクトリサービスの保守のあらゆる側面に拡張されます。
コマンドレットの詳細に進む前に、AD コマンドレットが使用可能であり、完全にサポートされていることを確認するために満たす必要があるいくつかの要件があります。
- Windows Vista(またはそれ以降)がインストールされた管理用PC
- 管理用 PC にリモート サーバー管理ツールがインストールされている
- Windows Server 2008(またはそれ以降)を搭載したサーバー
- サーバーにインストールされている Active Directory ドメイン サービスの役割
- Windows Management Framework 3.0(またはそれ以降)
- スイッチドネットワーク(ほとんどのコマンドレットが適切に機能するために必要)
- ブロードバンド インターネット アクセス (オプションですが推奨)
- ドメイン管理者の資格情報
参照: Windows 管理者の PowerShell スクリプト キット (Tech Pro Research)
Active Directory コマンドレットへのアクセス
まず、モジュール Active Directory をインポートします。
AD 管理を可能にするコマンドレットを実行する前に、まず対応するモジュールを現在の PS セッションにインポートする必要があります。インポートが完了すると、AD コマンドレットが読み込まれ、制御できるようになります。
注: AD 固有のコマンドレットが使用できるようになる前に、PS が実行されるたびにこれを実行する必要があります。
1. コンピュータオブジェクトを作成する
指定した組織単位 (OU) に新しいコンピューター オブジェクトを作成するには、次のコマンドレットを入力します。
New-ADComputer -Name "ComputerName" -SamAccountName "ComputerName" -Path "OU=Computers,DC=Domain,DC=com"
-Name パラメータと -SamAccountName パラメータの両方にオブジェクト名を指定します。オブジェクトの作成場所を指定する -Path パラメータの後に、引用符で囲んだ識別名 (DN) を忘れずに含めてください。
これは、複数のサイトやドメインを管理する場合、特に、人事部門によるオンボーディング時に新規採用にリンクされる可能性のある新しいアカウントの作成など、AD への変更をスクリプト化する場合に役立ちます。
2. 新しいセキュリティグループを作成する
次のコマンドレットを入力します。
New-ADGroup -Name "Security Group Name" -SamAccountName "SecurityGroupName" -GroupCategory Security -GroupScope Global -DisplayName "Security Group Name" -Path "CN=Groups,DC=Domain,DC=com" -Description "Brief description of the what security group is used for"
このコマンドレットは、このようなグループの作成を支援し、管理オーバーヘッドを大幅に軽減します。ロールベースの管理設定をセキュリティグループに適用することで、個々のアカウントやオブジェクトを個別に変更するよりも、アカウントやコンピューターの管理が大幅に容易になります。
3. 新しいユーザーアカウントを作成する
次のコマンドレットを入力します。
New-ADUser -Name "User Account Name" -SamAccountName "UserAccountName" -AccountPassword (ConvertTo-SecureString "password" -AsPlainText -Force) -DisplayName "User Name" -Enabled $True -GivenName "FirstName" -Path "CN=Users,,DC=Domain,DC=com" -Server "controller.domain.com" -Surname "LastName" -UserPrincipalName "[email protected]"
ADが組織の集中型インフラストラクチャのバックエンドとして機能する場合、ユーザーアカウントの作成と管理は密接に関連しています。多数のパラメータとテキストフィールドが存在するため、新しいユーザーアカウントの作成は面倒な作業になりがちです。すべてが必須というわけではありませんが、メールアドレスや役職など、入力しておくと役立つ情報も数多くあります。
これらの属性のホスト全体は、-OtherAttributes パラメーターを追加し、それを構成したい属性と組み合わせることで構成できます。たとえば、@{title=”job_title”;mail=”[email protected]”} のようになります。
4. 新しいOUを作成する
次のコマンドレットを入力します。
New-ADOrganizationalUnit -Name "OU Name" -Path "DC=Domain,DC=com"
OUは、ネットワークのバックエンドにあるユーザーアカウントとコンピュータオブジェクトの管理に不可欠です。言い換えれば、適切に設定されたActive Directoryには、適切に設計されたOUのセットが含まれており、ADが集中管理するすべてのオブジェクトを区分化することで、整然とした構造化されたディレクトリが実現し、管理の容易さを維持しながらネットワークの強化にシームレスに役立ちます。
注:「New」で始まるコマンドレットは、そのオブジェクトの作成を意味します。タスクでオブジェクトの削除が必要な場合は、「New」の代わりに「Remove」プレフィックスを使用してください。また、オブジェクトを変更する必要がある場合にも、「New」の代わりに「Set」プレフィックスを使用してください。これらのコマンドレットの構文は、上記の「New」プレフィックス付きコマンドレットと同様の形式です。
5. ユーザーまたはコンピュータオブジェクトをグループに追加/削除する
次のコマンドレットを入力します。
Add-ADGroupMember SecurityGroupName -Members Username01 -Server "controller.domain.com" Remove-ADGroupMember SecurityGroupName -Members Username01 -Server "controller.domain.com"
ユーザーアカウントとコンピューターオブジェクトを作成したら、管理者はそれらを既存のセキュリティグループに追加して管理を容易にすることができます。このコマンドレットを実行すると、追加するアカウントをリストした -Members パラメータがセキュリティグループのメンバーシップを取得します。複数のアカウントを追加する場合は、アカウントをコンマで区切って1行に記述できます。また、 -Server パラメータはオプションですが、変更処理のために接続するドメインコントローラーを指定します。グループからメンバーを削除するには、同様の構文を持つ Remove-ADGroupMember コマンドレットを使用します。
6. コンピュータオブジェクトからローカルに保存されたパスワードを取得する
次のコマンドレットを入力します。
Get-AdmPwdPassword -ComputerName "computer.domain.net"
Microsoft の優れた (無料の) Local Administrator Password Solution (LAPS) を実装している組織では、各オブジェクトのデータベースを調べて ms-mcs-AdmPwd 属性を追跡するのではなく、AD 内のコンピューター オブジェクトに保存されているパスワードを取得し、簡単に取得できる 1 つの手順で表示できるコマンドレットがあります。
7. コンピュータをドメインに参加させる
次のコマンドレットを入力します。
Add-Computer -DomainName "domain.com" -Credential Domain\Username -Restart -Force
コンピューターをドメインに参加させることは、ITプロフェッショナルが生涯で数万回も行う最も一般的なタスクの一つです。このタスクは1台あたり数分しかかかりませんが、PSから実行することで効率化でき、いくつかの調整を加えることでプロセス全体を完全に自動化することも可能です。ただし、上記のコマンドレットは、デバイスを再起動する前にドメイン参加を完了するために管理者にパスワードの入力を求めることに注意してください。
8. ユーザー、コンピューター、またはサービスアカウントを有効化/無効化する
次のコマンドレットを入力します。
Enable-ADAccount -Identity "ComputerName"
Disable-ADAccount -Identity “ユーザー名”
このコマンドレットが何をするのかは明らかです。AD によって管理されているユーザーアカウント、コンピュータオブジェクト、またはサービスアカウントを有効化(または無効化)し、ネットワーク上での認証を許可(または禁止)します。
9. ユーザーアカウントのロックを解除する
次のコマンドレットを入力します。
Unlock-ADAccount -Identity "Username"
統計分析によると、IT部門はユーザーアカウントのロック解除とパスワードのリセットに関するヘルプデスクへの問い合わせ対応に、かなりの時間を費やしていることがしばしば指摘されています。後者は上記のSet-ADUserコマンドレットで説明されていますが、前者はこのコマンドレットで説明されています。これは基本的に、ユーザーがパスワードの再試行回数を超え、事実上アカウントが使用できない状態になっているアカウントに適用されます。ロック解除されると、AD機能(アカウントの認証を含む)が再び利用可能になります。
10. 無効になっているコンピュータまたはユーザーアカウントを見つける
次のコマンドレットを入力します。
Search-ADAccount -AccountDisabled | FT Name,ObjectClass
Search-ADAccount コマンドレットは、無効化されたアカウントを検索する以外にも多くの用途があります。AD を効果的に検索し、一致した結果を返すために使用できるパラメータは多数あります。しかし、その機能を強調するために、無効化されたアカウントを検索するコマンドレットを取り上げました。これは知っておくべき重要かつ便利なコマンドレットだからです。
検索対象を特定のOUに限定するには、-SearchBaseパラメータに続けてパスのDNを指定する必要があります。さらに、結果を特定のコントローラーに絞り込むには、-Server属性に続けて完全修飾ドメイン名(FQDN)を指定する必要があります。
11. クライアントとドメイン間の信頼関係を修復する
次のコマンドレットを入力します。
Test-ComputerSecureChannel -Server "controller.domain.com"
PSで言う「壊れたチャネル」とは、クライアントコンピュータとドメイン間の信頼関係が壊れた場合に発生します。クライアントとドメインの間にチャネルが設定されなくなり、両者間のリンクとして機能しなくなるため、ドメインログインの認証が停止します。上記のコマンドレットは、ドメインコントローラに対してこの関係をテストし、リンクがまだ存在することを確認します。リンクが存在しない場合は、-Repairパラメータを追加することで、両者間のリンクをリセットし、チャネルを再確立します。
これは、システムまたはドメイン管理者が使用できるすべてのコマンドレットを網羅したリストではなく、アカウントの管理、オブジェクトの変更、生産性に影響する問題の解決に使用される関連情報の取得に日常的によく使用されるコマンドレットのリストです。