ワークグループ環境でRDSを構築する方法

今回の記事ではワークグループ環境でRDSを構築する方法をまとめています。

# 概要

RDS 環境を構築する際は基本的にドメイン環境で構築されると思います。
が運用の規模によってはドメイン構築するまでのコストをかけたくない、工数をかけたくないといった場合もあるかと思います。
そのような場合にワークグループ環境で RDS を構築する手順についてまとめて行きます。

# Microsoft の公式情報

Microsoftの公式情報は下記です。

[ 接続ブローカーなしでRDS役割サービスをインストールする-WindowsServer | Microsoft Docs](https://docs.microsoft.com/ja-jp/troubleshoot/windows-server/remote/install-rds-host-role-service-without-connection-broker)

こちらはワークグループないしドメインコントローラー 1 台で構成された環境の手順で煩雑な記載なので
今回はワークグループで必要な手順に絞って記事にまとめていきます。

# ワークグループ環境で RDS 環境を構成する際の注意点

ワークグループ環境で RDS 環境を構成する際には下記の点をご注意ください。

## サーバー マネージャで RDS の管理ができない

サーバー マネージャーで[リモート デスクトップ サービス]をクリックすると下記の画面が表示されるのみで GUI で RDS の管理ができず、管理をしたい場合はコマンドを使用しての管理しかできなくなります。
![RDCB1_019.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1833876/633bdcd1-63a9-e687-8baf-cf8e505ffa02.png)

 RemoteApp を使用したい場合も Windows PowerShell のコマンドレットで実行する必要性が出てきます。

 その為細かい管理をしたい場合は面倒でもドメイン環境を構築して RDS 環境を構成するほうが結果的には効率がよいと思います。

## ワークグループ環境で使用できるのは接続デバイス数 CAL のみ

ここが結構ポイントになるかと思います。

下記の Microsoft の公開情報にあるようにワークグループでは [接続ユーザー数] モードの CAL は使用することができません。
その為ワークグループ環境で RDS 環境を構築する際には [接続デバイス数] モードの CAL を用意する必要性があります。

[ クライアント アクセス ライセンス (CAL) を使用して RDS 展開をライセンスする | Microsoft ](https://docs.microsoft.com/ja-jp/windows-server/remote/remote-desktop-services/rds-client-access-license)
※ [RDS CAL モデルについて]欄の[接続ユーザー数]の3行目 [ワークグループ内で RDS CAL を追跡することはできません。]が該当の記載です。

なお Windows Server 2016 以前はここがアバウトでワークグループ環境で[接続ユーザー数] モードで運用しても表面上問題はなかったのですが、 Windows Server 2019 では厳密に管理するようになったようで猶予期間満了後は [接続デバイス数] モード出ないと、エラーが発生しリモートデスクトップ接続が切断されて使用に耐える状態となりません。

古い環境を構築した際の手順書をもとに構成されたりするハマる可能性があるポイントとなりますのでご注意ください。

# ワークグループ環境で RDS 環境を構成する手順

以下の5つの手順を実施します。

* 手順 1 役割の追加
* 手順 2 ライセンス サーバーのアクティブ化
* 手順 3 リモート デスクトップ接続を許可するユーザーを追加
* 手順 4 ライセンス サーバーの指定
* 手順 5 構築完了の確認

手順 3 に関しては必須ではないで必要があれば実施してください。

## 手順 1 役割の追加

まず下記手順でセッションホスト並びにライセンスの役割の追加を実施します。

1. サーバーマネージャを起動します。
2. [役割と機能の追加]をクリックします。
![WG_001.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1833876/8b851dd6-a5bd-3cb9-5ac8-fdaff25ec052.png)

3. [開始する前に]画面が表示されましたら、[次へ]をクリックします。
![WG_002.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1833876/40265882-0da9-8ac8-ec3d-2cf6d8c147bd.png)

4. [インストールの種類の選択]画面が表示されましたら[役割ベースまたは機能ベースのインストール]を選択し、[次へ]をクリックします。
※[リモート デスクトップ サービスのインストール]を選ばないように注意してください。
![WG_003.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1833876/6b5a7f8a-41c8-151d-fd88-b68fbcbc9c6c.png)

5. [対象サーバーの選択]画面が表示されましたら、[次へ]をクリックします。
![WG_006.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1833876/872bdd3a-2c3f-a1e4-0776-0b5a711efef8.png)

6. [サーバーの役割の選択]画面が表示されましたら、[リモート デスクトップ サービス]にチェックを入れ、[次へ]をクリックします。
![WG_007.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1833876/174ff809-d520-29aa-f4a3-6e4c8e652ed5.png)

7. [機能の選択]画面が表示されましたら、[次へ]をクリックします。
![WG_008.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1833876/e8085e9b-2c0e-804b-96b6-efb2b547f784.png)

8. [リモート デスクトップ サービス]画面が表示されましたら、[次へ]をクリックします。
![WG_009.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1833876/1b91bf27-5393-ac28-f026-4b801f7d4ae2.png)

9. [役割サービスの選択]画面が表示されましたら、[Remote Desktop Session Host]にチェックを入れます。
![WG_010.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1833876/6e39935d-870f-a66e-649e-9a59f1f3d7fa.png)

10. [Remote Desktop Session Host に必要な機能を追加しますか？]画面が表示されましたら、[機能の追加]をクリックします。
![WG_011.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1833876/5c253843-0c6f-2bf6-b74b-a14e91860606.png)

11. [役割サービスの選択]画面にもどりましたら、[リモート デスクトップ ライセンス]にチェックを入れます。
![WG_012.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1833876/8dbfcc53-b297-fb34-291f-e2da3b944fe8.png)

12. [リモート デスクトップ ライセンス に必要な機能を追加しますか？]画面が表示されましたら、[機能の追加]をクリックします。
![WG_013.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1833876/d7ca0556-dbc4-c72f-f757-09807b6a68b5.png)

13. [インストール オプションの確認]画面が表示されましたら、[インストール]をクリックします。
![WG_014.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1833876/d8490360-5fa6-7847-2166-42f7e4b11697.png)

14. [インストールの進行状況]画面が表示されます。インストールが完了しましたら[閉じる]をクリックします。
![WG_016.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1833876/e1229efc-1214-289a-b7f0-390804c655d3.png)

15. サーバーを再起動します。

## 手順 2 ライセンス サーバーのアクティブ化

役割の追加が完了しましたら、ライセンスサーバーのアクティブ化を実施します。

手順は下記を参照してください。

* インターネット接続が可能な場合<br>
[RD ライセンス サーバーを追加しCALをインストールする方法](https://qiita.com/valpasucucci43/items/735f23a7e24d2440fba1#2-%E3%83%A9%E3%82%A4%E3%82%BB%E3%83%B3%E3%82%B9-%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%81%AE%E3%82%A2%E3%82%AF%E3%83%86%E3%82%A3%E3%83%96%E5%8C%96)
* インターネット接続ができない場合<br>
[オフライン環境のRD ライセンス サーバーのアクティベーション並びに CAL のインストールを行う方法 （別端末のWebブラウザを利用）](https://qiita.com/valpasucucci43/items/b010e7cc64e4e526ff29#1%E3%82%AA%E3%83%95%E3%83%A9%E3%82%A4%E3%83%B3%E7%92%B0%E5%A2%83%E3%81%A7%E3%83%A9%E3%82%A4%E3%82%BB%E3%83%B3%E3%82%B9-%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%81%AE%E3%82%A2%E3%82%AF%E3%83%86%E3%82%A3%E3%83%96%E5%8C%96)

## 手順 3 リモート デスクトップ接続を許可するユーザーを追加(オプション)

必要に応じてリモート デスクトップ接続を許可するユーザーを追加してください。
方法としては以下のいずれかで接続を許可するユーザーまたはグループを追加します。

* [ローカル ユーザーとグループ]の [Remote Desktop Users] に追加
* [ローカル セキュリティ ポリシー]または[ローカル グループ ポリシー]の[リモート デスクトップ サービスを使ったログオンを許可]に追加
* [システムのプロパティ]の[リモート]タブの[ユーザーの選択]で追加

など複数の方法がありますのでご都合のよいものを選択し、リモート デスクトップ接続を許可するユーザーを追加してください。

## 手順 4 ライセンス サーバーの指定

最後にライセンス サーバーの指定を行います。
※ ライセンス サーバーのアクティブ化を先に実施しておいてください。

1. Windows PowerShell を管理者として起動します。
2. 下記コマンドを実行します。

    ```
$obj = gwmi -namespace "Root/CIMV2/TerminalServices" Win32_TerminalServiceSetting
    ```
![WG_025.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1833876/83e01b52-f18f-a2e1-474f-a71522c004be.png)

3. つづけて下記コマンドを実行します。

    ```
$obj.ChangeMode("<value>")
    ```
※ワークグループ環境では[接続デバイス数]の CAL しか使用できないため必然的に "<value>" は 2となります。
![WG_027.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1833876/31abb949-4483-bbe2-21d5-5c80dd562e15.png)

4. つづけて下記コマンドを実行します。

    ```
$obj.SetSpecifiedLicenseServerList("<licenseservername>")
    ```
![WG_029.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1833876/99ab324e-6256-aeff-0c9b-0d494f8483b3.png)

5. 最後に下記コマンドを実行しライセンス サーバーが適切に指定されているかを確認します。

    ```
$obj.GetSpecifiedLicenseServerList()
    ```
![WG_031.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1833876/0892311b-03fd-2228-c720-af2beb0463be.png)

下記のように SpecifiedLSList にライセンス サーバー名が表示されれば問題ありません。
![WG_032.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1833876/356c5bb1-0649-c91b-fb6f-63a52ddffe45.png)

## 手順 5 構築完了の確認

上記の手順を実施いただければ、ワークグループ環境でもRDS 環境の構築ができますので
クライアントから接続をしていただき、問題ないことを確認してください。

なおサーバーの管理のためだけにリモート デスクトップ接続をしたいだけなら、わざわざこんな面倒くさいことをせずに、システムのプロパティでリモート デスクトップを有効にするだけで問題ないです。

# GUI でなくコマンドで RDS 環境を構築する方法

前述の公開情報とは別に Windows  PowerShell で構築する方法が BLOG にまとめられております。

[Windows Server 2012 リモート デスクトップ環境の構成について](https://social.technet.microsoft.com/Forums/ja-JP/7bd0284c-929b-4a7c-a510-fe4fe2da5834/windows-server-2012-12522125141254012488?forum=Wcsupportja)

2か所ばかり注意点がありますが、 Windows Server 2019 でも上記 BLOG の手順を実施すればコマンドでワークグループ環境における RDS 環境の構築が可能です。

その注意点は

1. [リモート デスクトップ セッション ホストのインストール] の手順3 [デスクトップ エクスペリエンス] をインストールは不要なのでスキップする。
2. [リモート デスクトップ ライセンスのインストール、ライセンス サーバーの設定]の手順4では末尾の数字を2としてライセンスのモードで[接続デバイス数]を指定する。
の2点です。

1点目はもともとデスクトップ エクスペリエンス はインストールされた状態になっているので不要です。

2点目は[ワークグループ環境で使用できるのは接続デバイス数 CAL のみ] で記載した通りで、ワークグループ環境では [接続ユーザー数] モードが使用できないからです。

# おすすめの構築方法は？

[GUI でなくコマンドで RDS 環境を構築する方法](https://qiita.com/valpasucucci43/items/b4d859f19057fe27883d#gui-%E3%81%A7%E3%81%AA%E3%81%8F%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%81%A7-rds-%E7%92%B0%E5%A2%83%E3%82%92%E6%A7%8B%E7%AF%89%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95)で構築する方法をお勧めします。

正直いままでワークグループ環境で RDS　環境を構築するにはコマンドしかないと思っていました。
今回記事にするにあたり公開情報をしらべたら GUI で実施する方法を発見したため検証し記事にまとめましたがコマンドで実行したほうが時間がかからないです。