ものぐさ日記(仮)

特にテーマはありません。仕事のこと、趣味のこと、思いついたこと、だらだら綴っていきます。

【Windows】Windows Server 2012 R2 リモート デスクトップ サーバー構築(ワークグループ環境)

 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 ライセンス診断機能」により、ライセンスによる問題が無いか確認する。

f:id:michio_s:20141108163914p:plain

 

⑥他の端末から「リモート デスクトップ接続」でログインし、その端末にライセンスが割り当てられたら、問題無いと考える。

 

《付記》

①同一ユーザーで複数セッション使用できるようにする。

 グループポリシーで設定する。(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 --------------------------------------------------------------