Windows Server 2012 リモート デスクトップ環境の構成について

2013/09/13 追記。

こんにちは。Windows プラットフォーム サポートの横山です。

本日は、Windows Server 2012 リモート デスクトップ環境の構成に関するコマンドをご紹介いたします。

Windows Server 2012 リモート デスクトップ環境では、RDMS (Remote Desktop Management Service) を利用してリモート デスクトップ サービス関連の設定の変更を行います。

しかしながら、RDMS は "リモート デスクトップ サービスのインストール" を使用してリモート デスクトップ サービスのインストールを行わない限り、インストールされません。
また、"リモート デスクトップ サービスのインストール" は、非ドメイン環境では実行できず、ドメイン環境でのみ実行可能であり、ドメイン環境であってもドメイン コントローラー単一では、"リモート デスクトップ サービスのインストール" が実行できません。

その為、ドメイン コントローラーや WORKGROUP 環境の Windows Server 2012 にリモート デスクトップ セッション ホストの各種設定を行うには、WMI コマンドの利用やレジストリの編集が必要です。

※ ドメイン コントローラーへの "リモート デスクトップ サービスのインストール" については、KB2871777 にて公開されている更新プログラムをインストールして再起動することにより、実行可能となります。

 

今回は、PowerShell を利用したリモート デスクトップ セッション ホスト / リモート デスクトップ ライセンスのインストール、ライセンス サーバーの設定、また、RemoteApp の公開、RemoteApp 接続を行うための .rdp ファイルの作成方法についてお伝えいたします。

- リモート デスクトップ セッション ホストのインストール
1. [ツール] より、[Windows PowerShell] を起動します。

2. [リモート デスクトップ セッション ホスト] 役割サービスをインストールします。
> Add-WindowsFeature -Name RDS-RD-Server

3. [デスクトップ エクスペリエンス] をインストールします。
> Add-WindowsFeature -Name Desktop-Experience

4. [ライセンス診断] ツールをインストールします。
> Add-WindowsFeature -Name RSAT-RDS-Licensing-Diagnosis-UI

5. システムの再起動を行います。

 

- リモート デスクトップ ライセンスのインストール、ライセンス サーバーの設定
1. [ツール] より、[Windows PowerShell] を起動します。

2. [リモート デスクトップ ライセンス] の役割サービスをインストールします。
> Add-WindowsFeature -Name RDS-Licensing

3. [RD ライセンス マネージャー] をインストールします。
> Add-WindowsFeature -Name RDS-Licensing-UI

4. [リモート デスクトップ ライセンス モード] を変更します。
> (gwmi -Class Win32_TerminalServiceSetting -Namespace root\cimv2\TerminalServices).ChangeMode(4)
※ 4 は [接続ユーザー数] モードです。[接続デバイス数] モードは 2 です。

5. [リモート デスクトップ ライセンス サーバー] を指定します。
> New-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Services\TermService\Parameters\LicenseServers" -Name SpecifiedLicenseServers -Value "<IP アドレス>" -PropertyType MultiString
また、以下のコマンドを実行しても同様の処理が行えます。
> (gwmi -Class Win32_TerminalServiceSetting -Namespace root\cimv2\TerminalServices).SetSpecifiedLicenseServerList("<IP アドレス>")
コマンド例:
> New-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Services\TermService\Parameters\LicenseServers" -Name SpecifiedLicenseServers -Value "192.168.0.1" -PropertyType MultiString
> (gwmi -Class Win32_TerminalServiceSetting -Namespace root\cimv2\TerminalServices).SetSpecifiedLicenseServerList("192.168.0.1")

6. 以下のコマンドで正常にライセンス サーバーが指定されていることを確認します。
> Get-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Services\TermService\Parameters\LicenseServers" -Name SpecifiedLicenseServers
※ 以下のコマンドを実行しても同様の処理が行えます。
> (gwmi -Class Win32_TerminalServiceSetting -Namespace root\cimv2\TerminalServices).GetSpecifiedLicenseServerList()
- RemoteApp の公開方法、RemoteApp 接続用の .rdp ファイルの作成方法
1. 下記コマンドを実行し、RemoteApp として公開したいアプリケーションを登録します。
※ 以下は mspaint.exe を登録する手順です。
> $regPath = "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\TSAppAllowList\Applications"
> New-Item -Force $regPath -Name mspaint
> New-ItemProperty $regPath\mspaint -Name CommandLineSetting -Value 0 -PropertyType Dword
> New-ItemProperty $regPath\mspaint -Name Name -Value Paint -PropertyType String
> New-ItemProperty $regPath\mspaint -Name Path -Value C:\Windows\System32\mspaint.exe -PropertyType String
> New-ItemProperty $regPath\mspaint -Name RequiredCommandLine -PropertyType String
> New-ItemProperty $regPath\mspaint -Name SecurityDescriptor -PropertyType String
> New-ItemProperty $regPath\mspaint -Name ShowInTSWA -Value 1 -PropertyType Dword

2. クライアントには下記内容を含む .rdp ファイルを配布します。
=========================================
redirectclipboard:i:1
redirectposdevices:i:0
redirectprinters:i:1
redirectcomports:i:1
redirectsmartcards:i:1
devicestoredirect:s:*
drivestoredirect:s:*
redirectdrives:i:1
session bpp:i:32
prompt for credentials on client:i:1
span monitors:i:1
use multimon:i:1
remoteapplicationmode:i:1
server port:i:3389
allow font smoothing:i:1
promptcredentialonce:i:1
authentication level:i:2
gatewayusagemethod:i:2
gatewayprofileusagemethod:i:0
gatewaycredentialssource:i:0
full address:s:<サーバー名もしくは IP アドレス>
alternate shell:s:||mspaint <------------ レジストリ キー名
remoteapplicationprogram:s:||mspaint <--- レジストリ キー名
gatewayhostname:s:
remoteapplicationname:s:Paint <---------- Name に記載のデータ
remoteapplicationcmdline:s:
=========================================
※ <------ とその後の文字列は削除してください。

 

- 参考情報
Win32_TerminalServiceSetting class (Windows)
https://msdn.microsoft.com/en-us/library/windows/desktop/aa383640(v=vs.85).aspx

Windows Server 2012 ドメイン コントローラーで "リモート デスクトップ サービスのインストール" ができない。
https://support.microsoft.com/kb/2795837

A servicing stack update is available for Windows RT, Windows 8, and Windows Server 2012: September 2013
https://support.microsoft.com/kb/2871777