Server Coreの締めくくりとして、リモート管理について取り上げよう。

Server Coreでは(ごく一部の例外を除き)操作をコマンドで行わなければならず、MMC(Microsoft Management Console)ベースの管理ツールはない。そのため、ローカルログオンした状態で管理作業を行うのは面倒だ。そういう意味では、日常的に管理作業が必要な用途のサーバよりも、設定変更などの頻度が低い用途のサーバのほうがServer Coreに向いていると言える。

しかし、そう贅沢を言ってばかりもいられない。そこで検討したいのが、他のコンピュータで動作するMMC管理ツールを使って、Server CoreインストールしたWindows Server 2008をリモート管理する方法というわけだ。

ちなみに、Server CoreインストールしたWindows Server 2008でもリモートデスクトップ接続を有効にできるが、この方法ではリモート接続してもコマンド操作が必要になる点に変わりはない。

リモート管理にはファイアウォールの設定変更が必要

Server Coreインストールでも御多分に漏れず、初期状態ではWindowsファイアウォールによってリモート接続をブロックする設定になっている。そのため、そのままではリモート管理は行えない。

そのため、まずはWindowsファイアウォールの設定を変更して着信許可を行う必要がある。その際の選択肢は2種類ある。

1つは、後々の手間を考えて、[セキュリティが強化されたWindowsファイアウォール]管理ツールのリモート管理を可能にする方法だ。これにより、[セキュリティが強化されたWindowsファイアウォール]管理ツールを使ってリモートでファイアウォールの設定を変更できるようになる。もう1つは、そこまでやらずに、リモート管理用のプロトコルだけ着信を許可する方法だ。

安全性を考えれば、当然ながら後者のほうが望ましいだろう。

MMCコンソールがリモート管理に使用するプロトコルは3種類あり、[セキュリティが強化されたWindowsファイアウォール]管理ツールでは[リモート管理]というグループにまとめてある。ということは、そのグループについて着信を許可すれば、MMC管理ツールによるリモート管理が可能になるわけだ。

使用するのはnetshコマンドで、以下の構文によって「<グループ名>」で指定したグループに対する着信を有効化、あるいは無効化できる。

例外設定のグループを個別に有効化する
→netsh advfirewall firewall set rule group="<グループ名>" new enable=yes

例外設定のグループを個別に無効化する
→netsh advfirewall firewall set rule group="<グループ名>" new enable=no

そのため、[リモート管理]グループを有効化する際の構文は、「netsh advfirewall firewall set rule group="リモート管理" new enable=yes」となる。末尾の「enable=yes」を「enable=no」に変更すれば無効化だ。

Windowsファイアウォール管理ツールのリモート管理を可能にする

一方、[セキュリティが強化されたWindowsファイアウォール]管理ツールそのものをリモート管理するための着信許可と所要の環境構築は、以下の手順で実現できる。

(1)コマンドプロンプトで「netsh advfirewall set currentprofile settings remotemanagement enable」と入力して、[セキュリティが強化されたWindowsファイアウォール]管理ツールからの着信を許可する(この着信許可を無効化する時は、「netsh advfirewall set currentprofile settings remotemanagement disable」と入力すればよい)。

(2)リモート管理元となるコンピュータでMMC.EXEを単独で起動してから、[セキュリティが強化されたWindowsファイアウォール]管理ツールのMMCスナップインを追加して、コンソールファイルを保存する。

(3)そのMMCスナップインでリモート接続を指示して、接続先のコンピュータにはServer Coreで動作しているサーバを指定する。

(4)[受信の規則]で、[リモート サービス管理(NP受信)][リモート サービス管理(RPC)][リモート サービス管理(RPC-EPMAP)]の、3種類の規則を有効化する。

ともあれ、これらの操作によって、他のコンピュータで動作するMMC管理ツールからServer CoreインストールしたWindows Server 2008のリモート管理が可能になり、コマンド操作から解放されるというわけだ。

ただし、Server CoreインストールしたWindows Server 2008の側でファイアウォールの設定変更による着信許可を行うだけでなく、さらにセッションを確立しなければならない場合がある。その場合、以下の操作で対処する。

(1) MMC管理ツールが動作するコンピュータで、コマンドプロンプトを使って「net use * \<サーバ名>\c$ /u:<ユーザー名>」と入力する。「<サーバ名>」はServer Coreが動作するサーバを、「<ユーザー名>」はServer Coreが動作するサーバに対して管理者権限を持つユーザーのログオン名を、それぞれ指定する。

(2)パスワードの入力を求められたら、先に指定したユーザー名に対応するパスワードを入力する。これでセッションが確立して、MMC管理コンソールによるリモート管理が可能になるはずだ。

Windowsファイアウォール関連のコマンド操作

話のついでに、Windowsファイアウォールに関連するコマンド操作の例を列挙しておこう。

Windowsファイアウォールの状態を確認
→netsh advfirewall show allprofiles state

Windows ファイアウォールの規則一覧を確認
→netsh advfirewall firewall show rule all | more

すべてのプロファイルで、Windowsファイアウォールを有効化
→netsh advfirewall set allprofiles state on

ドメインネットワークに限ってWindowsファイアウォールを無効化
→netsh advfirewall set domainprofile state off

リモート デスクトップ接続の許可

結局のところ、コマンド操作を必要とすることに変わりはないのだが、離れた場所から操作できる利点はあるため、Server CoreインストールしたWindows Server 2008でリモートデスクトップ接続を許可する方法について、簡単にまとめておこう。

リモートデスクトップ接続を有効化するコマンド
→cscript %windir%\system32\SCRegEdit.wsf /ar 0

リモートデスクトップ接続を無効化するコマンド
→cscript %windir%\system32\SCRegEdit.wsf /ar 1

ネットワークレベル認証を無効化して、RDP(Remote Desktop Protocol) 5.x対応のリモートデスクトップクライアントから接続できるようにするためのコマンド
→cscript %windir%\system32\SCRegEdit.wsf /cs 0

この設定が反映できたかどうかを確認するためのコマンド(RDP 5.x対応クライアント向け)
→cscript %windir%\system32\SCRegEdit.wsf /ar /v

この設定が反映できたかどうかを確認するためのコマンド(RDP 6.x対応クライアント向け)
→cscript %windir%\system32\SCRegEdit.wsf /cs /v