すでに、ライセンスサーバーを稼動させていたが、ターミナルサーバーと同じマシン内だったのでうまく動かない、と思っていた。
しかし、同じマシンで動かすこともできるようだ。
実はすでにライセンスサーバー自体のインストールや、アクティブ化はできている。
しかし、サーバで「ターミナルサービスライセンス」を選んでも、対象となるサーバが見つからない、というメッセージが表示されていた。
そこで、「http://www.microsoft.com/japan/windowsserver2003/techinfo/overview/termservlic.mspx」を読んでいると12ページに次の記述があった。
ライセンス サービスの発見
ターミナル サーバーは、ライセンス サーバーの場所を見つけるために、発見プロセスを使用します。このプロセスは、ターミナル サーバー サービスが起動されたときに開始されます。この発見プロセスは、現在ターミナル サーバーが置かれている環境に応じて変化します。
また、WMI スクリプトを使用して、ターミナル サーバーで 1 つまたは複数の優先するライセンス サーバーを指定することによって、この発見プロセスを置き換えることも可能です。
優先するライセンス サーバーの設定、優先するライセンス サーバーの削除、または優先するライセンス サーバーのクエリに使用できる 3 つのスクリプトについては、このドキュメントの「管理」の項を参照してください。
ふむふむ。どうも、この発見プロセスがうまくいってないために、接続できないのだな。WMI スクリプト云々の部分はとりあえず、おいといて続きを読む。
Active Directory ベースのドメインの場合、ターミナル サーバーはまず、LicenseServers レジストリ キーに指定されている任意のライセンス サーバーへの接続を試みます。失敗した場合は、LDAP (Lightweight Directory Access Protocol) クエリを実行して Active Directory 内の次に示すオブジェクトを探すことによって、任意のエンタープライズ ライセンス サーバーの検出を試みます。
うーん、レジストリキーに指定した覚えないから、うまくいかないのだろう。エンタープライズライセンスサーバーではないから、そのまま失敗しちゃってるわけだ。
すると、次に「重要」と書いた欄が唐突に出現する。
Windows Server 2003 では、非ドメイン コントローラがライセンス サーバーになることは可能ですが、ドメイン ライセンス サーバーは自動的に発見されないことに注意する必要があります。
たしかに、今回のサーバはドメインコントローラじゃない。すると自動的に発見されないんだ。やっぱり…。
ドメイン ライセンス サーバーとして設定された非ドメイン コントローラのライセンス サーバーとの通信が必要なすべてのターミナル サーバーに、優先するライセンス サーバーを設定する必要があります。
ふむふむ、つまり、今回対象となっている Windows Server 2003 のマシンに「優先するライセンスサーバー」を設定すればよいわけだ。今回は、共用するからサーバー自分自身ということになるけれど。どうやったらできるのか。
ということで続きを読むが、非ドメインコントローラーをライセンスサーバーにするための具体的な方法は説明されない。ぶっちゃけて言えば、前述の通り「レジストリキー」に指定があればいいわけだ。それはどうやってやるのかと言えば、そうか、その前に書いてあった WMIスクリプトでできるのかもしれない。もう一回「WMIスクリプト」の部分を読み返す。
また、WMI スクリプトを使用して、ターミナル サーバーで 1 つまたは複数の優先するライセンス サーバーを指定することによって、この発見プロセスを置き換えることも可能です。
優先するライセンス サーバーの設定、優先するライセンス サーバーの削除、または優先するライセンス サーバーのクエリに使用できる 3 つのスクリプトについては、このドキュメントの「管理」の項を参照してください。
そこで「管理」の項を見る。「優先するライセンス サーバーの WMI スクリプト」という項があった。
AddLicenseServer.vbs
'***************************************************************************
'
' 指定されライセンス サーバーをターミナル サーバーのレジストリに追加する WMI VBscript
'
'***************************************************************************
if Wscript.arguments.count<1 then
(以下略)
これを実行すればいいわけだ。
なぜ、この部分だけえらくローテクなコマンドラインを使わなくちゃならんのか疑問だが、私にとってはコマンドラインの方が使いやすい。該当部分をワード文書からコピーして、サーバでエディタを開いて貼り付ける。それを AddLicenseServer.vbs というファイル名で Cドライブのルート C:\ に保存する。
コマンドラインを起動して「cd c:\」でルートに移動。サーバー名を引数にしてコマンドラインで実行する。
AddLicenseServer.vbs サーバ名
これで、レジストリには登録されたようだ。
サーバーの画面で「管理ツール」から「ターミナルサービスライセンス」を選ぶと、以前は「ライセンスサーバーが見つかりません」といったメッセージが表示されていたのだが、今回はライセンスサーバーがすんなりと表示された。うまく行っているようだ。
とりあえず、ライセンスサーバーについては、これでひと段落したと考えよう。