リモートデスクトップライセンス関連のPowerShellコマンド一覧

こんにちは、リモートデスクトップのシステムエンジニア歴10年 ばにゃです。

GetGracePeriodDays().DaysLeft

本記事では、リモートデスクトップ環境で利用可能なリモートデスクトップライセンス関連のPowerShellコマンドについて、自身の備忘録も兼ねて解説します。

本記事で解説するPowerShellコマンドは、基本的には PowerShell を管理者権限で起動してから実行してください。一部管理者権限不要でも実行できるものがありますが、本記事ではそこまで言及しません。

この記事で解説するコマンドでは以下を実施することが可能です。

目次

前提となる環境

本記事では、以下のような環境を例として記載します。この環境で私自身が実機動作確認済みの手順となります。

環境
  • Windows Server 2019
  • Windows Server 2016
  • Windows Server 2012 R2
  • Windows Server 2012

リモートデスクトップライセンス関連のコマンド一覧

リモートデスクトップライセンスモードの変更

リモートデスクトップサーバーのライセンスモードを変更する場合に使用します。ChangeMode()で指定する数字を 2 にすると接続デバイス数モード、4 にすると接続ユーザー数モードになります。

接続デバイス数モードに変更する場合

(gwmi -Class Win32_TerminalServiceSetting -Namespace root\cimv2\TerminalServices).ChangeMode(2)

接続ユーザー数モードに変更する場合

(gwmi -Class Win32_TerminalServiceSetting -Namespace root\cimv2\TerminalServices).ChangeMode(4)

リモートデスクトップライセンスモードによる動作の違いについては以下の記事にまとめています。詳細を確認したい場合は参考にしてみてください。

リモートデスクトップライセンスモードの確認

リモートデスクトップサーバーのライセンスモードを確認する場合に使用します。

(gwmi -Class Win32_TerminalServiceSetting -Namespace root\cimv2\TerminalServices).LicensingType

出力結果の意味は以下の通りです。

結果意味
2接続デバイス数モード
4接続ユーザー数モード
5未設定

リモートデスクトップライセンスサーバーの指定

リモートデスクトップサーバーが参照するリモートデスクトップライセンスサーバーを指定する場合に使用します。既に指定済みの場合は、SetSpecifiedLicenseServerList(“IPアドレス”)で指定したライセンスサーバーに上書きされます。

(gwmi -Class Win32_TerminalServiceSetting -Namespace root\cimv2\TerminalServices).SetSpecifiedLicenseServerList("IPアドレス")

例えばIPアドレスが 192.168.10.10 のライセンスサーバーを指定する場合は以下のように実行します。

(gwmi -Class Win32_TerminalServiceSetting -Namespace root\cimv2\TerminalServices).SetSpecifiedLicenseServerList("192.168.0.1")

リモートデスクトップライセンスサーバーの追加

2台目以降のリモートデスクトップライセンスサーバーを指定する場合に使用します。AddLSToSpecifiedLicenseServerList(“IPアドレス”)で指定したライセンスサーバーが追加されます。

(gwmi -Class Win32_TerminalServiceSetting -Namespace root\cimv2\TerminalServices).AddLSToSpecifiedLicenseServerList("IPアドレス")

例えばIPアドレスが 192.168.10.11 のライセンスサーバーを追加する場合は以下のように実行します。 

(gwmi -Class Win32_TerminalServiceSetting -Namespace root\cimv2\TerminalServices).AddLSToSpecifiedLicenseServerList("192.168.10.11")

リモートデスクトップライセンスサーバーの削除

指定済みライセンスサーバーの一覧からライセンスサーバーを削除する場合に使用します。RemoveLSFromSpecifiedLicenseServerList(“IPアドレス”)で指定したライセンスサーバーが削除されます。

(gwmi -Class Win32_TerminalServiceSetting -Namespace root\cimv2\TerminalServices).RemoveLSFromSpecifiedLicenseServerList("IPアドレス")

例えばIPアドレスが 192.168.10.11 のライセンスサーバーを削除する場合は以下のように実行します。 

(gwmi -Class Win32_TerminalServiceSetting -Namespace root\cimv2\TerminalServices).RemoveLSFromSpecifiedLicenseServerList("192.168.10.11")

リモートデスクトップライセンスサーバーの確認

指定されているリモートデスクトップライセンスサーバーを確認する場合に使用します。

(gwmi -Class Win32_TerminalServiceSetting -Namespace root\cimv2\TerminalServices).GetSpecifiedLicenseServerList().SpecifiedLSList

リモートデスクトップライセンス猶予期間の残日数確認

リモートデスクトップライセンス猶予期間の残日数を確認する場合に使用します。

(gwmi -Class Win32_TerminalServiceSetting -Namespace root\cimv2\TerminalServices).GetGracePeriodDays().DaysLeft

参考までに、各OSのリモートデスクトップライセンス猶予期間を以下に記載しておきます。

OS猶予期間
Windows Server 2019120日
Windows Server 2016120日
Windows Server 2012 R2120日
Windows Server 2012120日
Windows Server 2008120日
Windows Server 2003 R2120日
Windows Server 2003120日
Windows 2000 Server90日

リモートデスクトップライセンスサーバーとの接続状態確認

リモートデスクトップサーバーとリモートデスクトップライセンスサーバーの接続状態を確認する場合に使用します。GetTStoLSConnectivityStatus(“IPアドレス”)で指定したライセンスサーバーとの接続状態を確認します。

(gwmi -Class Win32_TerminalServiceSetting -Namespace root\cimv2\TerminalServices).GetTStoLSConnectivityStatus("IPアドレス").TStoLSConnectivityStatus

例えばIPアドレス 192.168.10.10 のリモートデスクトップライセンスサーバーとの接続状態を確認する場合は以下のように実行します。

(gwmi -Class Win32_TerminalServiceSetting -Namespace root\cimv2\TerminalServices).GetTStoLSConnectivityStatus("192.168.10.10").TStoLSConnectivityStatus

出力結果が 11 となっている場合、ライセンスサーバーとの接続状態は問題ありません。

私自身はすべての出力結果を確認したことがあるわけではありませんが、Microsoftの情報によるとその他に以下のような出力結果があるようです。

スクロールできます
結果意味
0接続状態を判断することができません。
1Remote Desktop Servicesは、Windows Server 2008 R2ライセンスサーバーに
接続することができます。
2Remote Desktop Servicesは、Windows Server 2008ライセンスサーバーに
接続することができます。
3Remote Desktop Servicesはライセンスサーバーに接続できますが、
サーバーの1つがベータ版のオペレーティングシステムを実行しています。
4Remote Desktop Servicesはライセンスサーバーに接続できますが、ライセンスサーバーと
Remote Desktop Servicesのホストサーバーの間に互換性がないという問題があります。
5ライセンスサーバーでセキュリティグループポリシーが有効になっていますが、
Remote Desktop Servicesがグループポリシーの一部になっていません。
6Remote Desktop Servicesは、ライセンスサーバーに接続できません。
7ライセンスサーバーへの接続は可能ですが、接続の有効性が判断できません。
8Remote Desktop Servicesはライセンスサーバーに接続できますが、
そのユーザーアカウントはライセンスサーバーの管理者権限を持っていません。
9Remote Desktop Servicesは、Windows Server 2008 R2 Virtual Desktop Infrastructure
(VDI)サーバーに接続することができます。
※この値は Windows Server 2012 より前のバージョンではサポートされていません。
10この機能はサポートされていません。
※この値は Windows Server 2012 よりも前のバージョンではサポートされていません。
11ライセンスサーバーは有効です。
※この値は Windows Server 2012 よりも前のバージョンではサポートされていません。

リモートデスクトップサーバーに接続できない場合の対処方法は以下の記事にまとめています。詳細を確認したい場合は参考にしてみてください。

コマンドの実行に失敗する場合

コマンドの実行に失敗する場合、PowerShellを管理者権限で起動してからコマンドを実行してください。

管理者権限で起動していない場合、以下のように「~の呼び出し中に例外が発生しました」のエラーが表示される、もしくはエラーは表示されないが実行結果に何も表示されない、といった状態になることがあります。

呼び出し中に例外が発生しました

“~” の呼び出し中に例外が発生しました: “”
発生場所 行:1 文字:1
+ (gwmi -Class Win32_TerminalServiceSetting -Namespace root\cimv2\Termi …
+
+ CategoryInfo : NotSpecified: (:) []. MethodInvocationException
+ FullyQualifiedErrorId : WMIMethodException

参考情報

Microsoft ドキュメント

本記事で解説したPowerShellコマンドについては、以下 Microsoft の情報も参考にしてみてください。

関連記事

リモートデスクトップ関連の記事については以下も参考にしてください。

関連書籍

リモートデスクトップの基本的な知識や、リモートデスクトップ / RemoteAppプログラム / リモートデスクトップゲートウェイ / リモートデスクトップライセンスサーバー の 構築手順 について、わかりやすく説明されている書籍です。

本記事では基本的にリモートデスクトップサーバーの構築手順については記載していないので、そのあたりの詳しい情報が必要な場合におすすめの書籍です。

にほんブログ村 IT技術ブログへ
にほんブログ村

よかったらシェアしてね!

この記事を書いた人

ばにゃ ばにゃ システムエンジニア

国内大手SIer勤務、SE10年以上やっています。これまでの経験を元にIT技術情報やIT資格試験、たまに投資/資産形成やSE界隈の話について記事にしていきます。

コメント

コメントする

CAPTCHA


目次
目次
閉じる