Windows Server 2012 R2 のワークグループ環境でリモート デスクトップ サーバー(セッションベース)を構築した時の覚え書き。
Windows Server 2012 からはリモート デスクトップ サーバーは Active Directory (AD)環境で構築することを前提としているようである。AD環境では試していないが、ワークグループ環境で普通に「役割と機能の追加」を使用し、サービスを入れていくと、2008までのように「リモート デスクトップ サービス マネージャー」や「リモート デスクトップ セッション ホストの構成」が入らない。(よって、セッションホストの構成やリモートデスクトップ接続の管理がGUIベースでできない。調べてみると、AD環境でしか入れることができない「RDMS」とやらを使用するようである→Windows Server 2012 リモート デスクトップ環境の構成について - Ask CORE - Site Home - TechNet Blogs)。
作業は下記の手順で実施した。
①「役割と機能の追加」で「リモート デスクトップ サービス」の役割を追加する。その際、役割サービスとしては「リモート デスクトップ セッションホスト」、「リモート デスクトップ ライセンス」、「リモート デスクトップ 接続ブローカー」を選択する。
②「RD ライセンス マネージャー」でライセンス サーバーをアクティブ化し、RDS CALをライセンス サーバーにインストールする。
③以下のコマンドで、セッションホストのライセンスモードを指定する。
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 :
④以下のコマンドでセッションホストが参照するライセンスサーバーを指定する。
PS C:¥Users¥Administrator> (gwmi -Class Win32_TerminalServiceSetting -Namespace root¥cimv2¥TerminalServices).SetSpecifiedLicenseServerList("localhost") __GENUS : 2 __CLASS : __PARAMETERS __SUPERCLASS : __DYNASTY : __PARAMETERS __RELPATH : __PROPERTY_COUNT : 1 __DERIVATION : {} __SERVER : __NAMESPACE : __PATH : ReturnValue : 0 PSComputerName :
⑤「RD ライセンス診断機能」により、ライセンスによる問題が無いか確認する。
⑥他の端末から「リモート デスクトップ接続」でログインし、その端末にライセンスが割り当てられたら、問題無いと考える。
《付記》
①同一ユーザーで複数セッション使用できるようにする。
グループポリシーで設定する。(gpedit.mscを実行。ローカル コンピューター ポリシー]→[コンピューターの構成]→[管理用テンプレート]→[Windows コンポーネント]→[リモート デスクトップ サービス]→[リモート デスクトップ セッション ホスト]→[接続]の「リモート デスクトップ サービス ユーザーに対してリモート デスクトップ サービス セッションを1つに制限する」を無効にする。
②リモート デスクトップ サービス マネージャーと同様のことをコマンドで行う為のバッチを作成した。
@ECHO OFF GOTO :ITEM1 :MENU ECHO ≪コマンド:1=ユーザー確認、2=プロセス確認、3=ログオフ、4=プロセスキル、5=終了≫ SET /P SELECT=コマンドを選択して下さい: IF %SELECT%==2 GOTO ITEM2 IF %SELECT%==3 GOTO ITEM3 IF %SELECT%==4 GOTO ITEM4 IF %SELECT%==5 GOTO ITEM5 IF %SELECT%==q GOTO :EOF GOTO :ITEM1 :ITEM1 CALL :TITLE query user GOTO :MENU :ITEM2 CALL :TITLE query process GOTO :MENU :ITEM3 SET ANS=NUL set /P SID=ログオフ対象のセッションIDを入力して下さい: set /P ANS=セッションID:%SID%をログオフします。宜しいですか?[Y/N]: if %ANS%==Y reset session %SID% if %ANS%==y reset session %SID% GOTO :ITEM1 :ITEM4 SET ANS=NUL set /P PID=キル対象のプロセスIDを入力して下さい: set /P ANS=プロセスID:%PID%をキルします。宜しいですか?[Y/N]: if %ANS%==Y tskill %PID% if %ANS%==y tskill %PID% GOTO :ITEM2 :TITLE CLS ECHO -------------------------------------------------------------- ECHO □■ リモート デスクトップ サービス マネージャー(CUI版) ■□ ECHO --------------------------------------------------------------