Windows Server は既定で、管理用にリモートデスクトップの同時セッションを 2 つまで許可しています。管理者と同僚 1 人で使うには十分ですが、チームで一日中サーバー上で作業するには足りません。この記事では、ユーザーを追加してリモートデスクトップのアクセス権を付与する方法、2 セッション制限の仕組み、アイドル状態や切断されたセッションを自動的にサインアウトさせる方法、そしてリモート デスクトップ セッション ホストの役割と RDS ライセンスを使って、正規の方法でより多くのユーザーに対応する方法を解説します。
Administrator を共有せず、一人ひとりに個別のアカウントを用意しましょう。誰が何をしたかを把握でき、アクセス権も個別に削除できます。管理者として PowerShell を開きます。
# Create a local user (you will be asked for the password)
$pw = Read-Host -AsSecureString "Password for alice"
New-LocalUser -Name "alice" -Password $pw -FullName "Alice" -PasswordNeverExpires
# Allow Remote Desktop without full admin rights
Add-LocalGroupMember -Group "Remote Desktop Users" -Member "alice"
# Only if this person really needs administrator rights
# Add-LocalGroupMember -Group "Administrators" -Member "alice"
Get-LocalGroupMember -Group "Remote Desktop Users"
Remote Desktop Users グループのメンバーはリモートでサインインでき、Administrators グループのメンバーは常にサインインできます。強力なパスワードとアカウント ロックアウトのポリシーを使用してください(Windows VPS のセキュリティ強化を参照)。
リモート デスクトップ セッション ホストの役割がない場合、Windows Server が同時に受け付けるアクティブなリモートデスクトップセッションは最大 2 つです(これとは別にコンソールセッションがあります)。3 人目が接続すると、既存のどのユーザーを切断するかを確認するメッセージが表示されます。リモートデスクトップのウィンドウを閉じただけのユーザーは切断(Disconnected)状態のセッションとしてサインインしたまま残り、このセッションも制限数にカウントされ、メモリも使い続けます。
# See who is signed in and the session IDs
quser
query session
# Sign out a session (replace 3 with the ID from quser)
logoff 3
ローカル グループ ポリシー エディター(gpedit.msc)を開き、コンピューターの構成 → 管理用テンプレート → Windows コンポーネント → リモート デスクトップ サービス → リモート デスクトップ セッション ホスト(Computer Configuration → Administrative Templates → Windows Components → Remote Desktop Services → Remote Desktop Session Host)に移動します。
gpupdate /force
3 人以上が同時に使う場合は、リモート デスクトップ セッション ホストの役割とリモート デスクトップ ライセンスサーバーをインストールし、Microsoft または販売代理店から RDS クライアント アクセス ライセンス(RDS CAL)を購入します。CAL はユーザーごと(Per User)または接続するデバイスごと(Per Device)のいずれかです。
# Install the Session Host and Licensing roles, then restart
Install-WindowsFeature RDS-RD-Server, RDS-Licensing -IncludeManagementTools
Restart-Computer
再起動後、Windows は 120 日間のライセンス猶予期間に入り、その間は CAL がなくてもユーザーが接続できます。猶予期間が終わる前に次の作業を行ってください。
licmgr.exe)を開き、サーバーを右クリックしてサーバーのアクティブ化(Activate Server)を選び、続いてライセンスのインストール(Install Licenses)で RDS CAL を追加します。gpedit.msc のリモート デスクトップ セッション ホスト → ライセンス(Remote Desktop Session Host → Licensing)で、指定のリモート デスクトップ ライセンス サーバーを使用する(Use the specified Remote Desktop license servers)を有効にし(サーバー自身の名前を入力)、リモート デスクトップ ライセンス モードの設定(Set the Remote Desktop licensing mode)も有効にします(購入した CAL に合わせて Per User または Per Device を選択)。gpupdate /force を実行し、RD ライセンス診断機能(RD Licensing Diagnoser)(lsdiag.msc)で結果を確認します。ライセンスサーバーを構成しないまま猶予期間が切れると、ユーザーには利用できるリモート デスクトップ ライセンス サーバーがないというエラー(no Remote Desktop license servers available)が表示され、mstsc /admin を使う管理者しか接続できなくなります。
アクティブなデスクトップセッションはそれぞれメモリと CPU を消費し、ユーザーがブラウザーやオフィスアプリケーションを使うとさらに増えます。目安として、軽い作業のユーザーは 1 人あたり 1~2 GB、タブを多数開いてブラウザーを使うユーザーは 1 人あたり 2~4 GB のメモリを、サーバー自体のサービスに必要な分に上乗せして見積もってください。タスクマネージャーのユーザー(Users)タブでサーバーの状態を確認しましょう。
すでに 2 つのセッションがアクティブまたは切断状態になっています。logoff でいずれかをサインアウトし(ステップ2)、mstsc /admin で管理用のコンソールセッションに接続してください。再発を防ぐには、ステップ3の時間制限を設定します。
リモート デスクトップ サービス ユーザーに対してリモート デスクトップ サービス セッションを 1 つに制限する(Restrict Remote Desktop Services users to a single session)を無効にすれば可能ですが、それでもおすすめしません。設定、ファイル、ログが混在してしまいます。1 人につき 1 つのアカウントを作成してください。
これはセッション制限ではなく、接続性の問題です。リモートデスクトップ接続のトラブルシューティングを参照してください。
上記の手順で解決しない場合は、サポートチケットを送信して IMIDC の 24 時間 365 日対応テクニカルサポートへご連絡ください。サーバー IP、Windows Server のバージョン、必要なユーザー数、正確なエラーメッセージを添えていただくと、より迅速に調査できます。