読者です 読者をやめる 読者になる 読者になる

雑木林

頭の中の整理と忘れないための確認メモ

WORKGROUP環境でRDMSの設定と冗長化

先の記事でRDS CALに関する基本的な理解は記載しましたが、今回は実際に構築する場合のお話。

RDSに必要な基本的な構成や手順はマイクロソフトの以下のサイトが詳しいです。

ゲートウェイやらWeb アクセス、接続ブローカーなどなど必要なサーバが結構ある上に、標準的な構成ではActive Directory環境が必要ということも構築難易度を上げているポイントです。今回は最低限の環境で作る場合についてメモ書きです。

要件は以下の通り。

  • WORKGROUP環境で構築する
  • ライセンスサーバとセッションホストサーバは兼務する
  • 単体障害時にも接続できるようライセンスサーバは複数用意する

作業手順

WORKGROUP環境での設定はWindows Server 2012 リモート デスクトップ環境の構成について に記載されている通りです。変更する必要もありません。設定にはPowerShellを用いて、確認にレジストリエディタやRDライセンス診断機能を用います。


1. リモート デスクトップ セッション ホストのインストール

PS C:\Users\Administrator> Add-WindowsFeature -Name RDS-RD-Server

Success Restart Needed Exit Code      Feature Result
------- -------------- ---------      --------------
True    Yes            SuccessRest... {リモート デスクトップ セッション ホスト, ...
警告: インストール処理を完了するには、このサーバーを再起動する必要があります。
警告: Windows
自動更新が有効になっていません。新しくインストールした役割または機能が自動的に更新されるよう
にするには、[Windows Update] を有効にしてください。


2. [リモート デスクトップ セッション ホスト] 役割サービスをインストール

PS C:\Users\Administrator> Add-WindowsFeature -Name Desktop-Experience

Success Restart Needed Exit Code      Feature Result
------- -------------- ---------      --------------
True    Yes            SuccessRest... {デスクトップ エクスペリエンス, インクと手...
警告: インストール処理を完了するには、このサーバーを再起動する必要があります。
警告: Windows
自動更新が有効になっていません。新しくインストールした役割または機能が自動的に更新されるよう
にするには、[Windows Update] を有効にしてください。


3. [デスクトップ エクスペリエンス] をインストール

PS C:\Users\Administrator> Add-WindowsFeature -Name Desktop-Experience

Success Restart Needed Exit Code      Feature Result
------- -------------- ---------      --------------
True    Yes            SuccessRest... {デスクトップ エクスペリエンス, インクと手...
警告: インストール処理を完了するには、このサーバーを再起動する必要があります。
警告: Windows
自動更新が有効になっていません。新しくインストールした役割または機能が自動的に更新されるよう
にするには、[Windows Update] を有効にしてください。


4. [ライセンス診断] ツールをインストールします。

PS C:\Users\Administrator> Add-WindowsFeature -Name RSAT-RDS-Licensing-Diagnosis-UI

Success Restart Needed Exit Code      Feature Result
------- -------------- ---------      --------------
True    Yes            SuccessRest... {リモート サーバー管理ツール, リモート デ...
警告: インストール処理を完了するには、このサーバーを再起動する必要があります。
警告: Windows
自動更新が有効になっていません。新しくインストールした役割または機能が自動的に更新されるよう
にするには、[Windows Update] を有効にしてください。


5. 再起動


6. [リモート デスクトップ ライセンス] の役割サービスをインストール

PS C:\Users\Administrator> Add-WindowsFeature -Name RDS-Licensing

Success Restart Needed Exit Code      Feature Result
------- -------------- ---------      --------------
True    No             Success        {リモート デスクトップ ライセンス}
警告: Windows
自動更新が有効になっていません。新しくインストールした役割または機能が自動的に更新されるよう
にするには、[Windows Update] を有効にしてください。


7. [RD ライセンス マネージャー] をインストール

PS C:\Users\Administrator> Add-WindowsFeature -Name RDS-Licensing-UI

Success Restart Needed Exit Code      Feature Result
------- -------------- ---------      --------------
True    No             Success        {リモート デスクトップ ライセンス ツール}
警告: Windows
自動更新が有効になっていません。新しくインストールした役割または機能が自動的に更新されるよう
にするには、[Windows Update] を有効にしてください。


8. [リモート デスクトップ ライセンス モード] を
ChangeMode(2)は接続デバイス数モード、ChangeMode(4)は接続ユーザ数モードです。

PS C:\Users\Administrator> (gwmi -Class Win32_TerminalServiceSetting -Namespace root\cimv2\TerminalServices).ChangeMode(2)


__GENUS          : 2
__CLASS          : __PARAMETERS
__SUPERCLASS     :
__DYNASTY        : __PARAMETERS
__RELPATH        :
__PROPERTY_COUNT : 1
__DERIVATION     : {}
__SERVER         :
__NAMESPACE      :
__PATH           :
ReturnValue      : 0
PSComputerName   :


9.[リモート デスクトップ ライセンス サーバー] の指定
ここでは複数(2つ)のライセンスサーバーを指定しています(理由は後述)

PS C:\Users\Administrator> New-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Services\TermService\Parameters\LicenseServe
rs" -Name SpecifiedLicenseServers -Value "192.168.56.","192.168.56.11" -PropertyType MultiString


SpecifiedLicenseServers : {192.168.56.10, 192.168.56.11}
PSPath                  : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Term
                          Service\Parameters\LicenseServers
PSParentPath            : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Term
                          Service\Parameters
PSChildName             : LicenseServers
PSDrive                 : HKLM
PSProvider              : Microsoft.PowerShell.Core\Registry


10. [リモート デスクトップ ライセンス サーバー] の確認

PS C:\Users\Administrator> Get-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Services\TermService\Parameters\LicenseServe
rs" -Name SpecifiedLicenseServers


SpecifiedLicenseServers : {192.168.56.10, 192.168.56.11}
PSPath                  : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Term
                          Service\Parameters\LicenseServers
PSParentPath            : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Term
                          Service\Parameters
PSChildName             : LicenseServers
PSDrive                 : HKLM
PSProvider              : Microsoft.PowerShell.Core\Registry

念のため、レジストリエディタでも確認してみる。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TermService\Parameters\LicenseServers
f:id:zokibayashi:20150329013524p:plain


上記のフローをもう一方のサーバでも行い、相互にライセンスサーバとして登録することで、2つのWindowsサーバをセッションホストサーバとしつつ、ライセンスサーバを冗長化することができます。

また、それぞれのサーバでRDS CALをアクティベーションした後は、RD ライセンス診断機能を用いてクライアントで利用可能なライセンスの数を確認するのをお忘れなく。

なぜライセンスサーバを複数指定するか

ライセンスサーバの冗長化の要否は要件によって異なると思いますが、ライセンスサーバ自身が故障すると、新規端末や恒久CALが期限切れとなっている端末が接続不可となるため、冗長化した方が良いと考えています。最悪、管理用のセッション(最大2セッション)で入ればよいのですが、用途の制約もあるため障害時のリモート保守用としてはオススメできません。

ちなみにライセンスサーバを複数指定した際の挙動は、マイクロソフト
リモート デスクトップ ライセンスに以下の記述があります。

ライセンス サーバーを複数追加した場合、RD セッション ホスト サーバーは、リモート デスクトップ セッション ホストの構成 の [ライセンス] タブの [指定されたライセンス サーバー] ボックスに表示されている順番にライセンス サーバーにアクセスします。