Windows Server 2016/2012 R2でIISをリモート管理する方法|設定手順とエラー対策を徹底解説
はじめに:IISのリモート管理とは
Windows Server 2016 / 2012 / R2 のIIS(Internet Information Services)は、従来のバージョンと同様にリモートから管理できます。複数のIISサーバーを1つのコンソールから一元的に操作できるため非常に便利ですし、Core / Nano モードで稼働するWebサーバーの管理は、事実上この方法しかありません。
ただし、デフォルト状態ではリモート管理機能は無効になっています。そのため、別のサーバー上のIISマネージャーで「サーバーへの接続(Connect to a Server)」メニューからIISサーバーを追加しようとしても、次のようなエラーが表示されます。
指定されたコンピューターに接続できませんでした
詳細:リモートサーバーに接続できません
IIS管理サービス(Management Service)のインストール
原因は、標準のIISインストールではリモート管理を担う「IIS Management Service(Web-Mgmt-Service)」がインストールされない点にあります。次のPowerShellコマンドで、この機能が未導入であることを確認できます。
Get-WindowsFeature *web-mgmt*
結果を見ると「Web-Mgmt-Service」がインストールされていないことがわかります。ローカル管理者権限で次のコマンドを実行してインストールしてください。
Add-WindowsFeature Web-Mgmt-Service
または、以下のコマンドレットでも同じです。
Install-WindowsFeature Web-Mgmt-Service
なお、サーバーマネージャーのGUIから「役割と機能の追加」→「Webサーバー(IIS)」→「管理ツール」→「管理サービス」を選択してインストールすることも可能です。
インストール後、IISサービスを再起動します。iisreset –noforce
続いて、IISの設定でリモート接続を許可します。IISマネージャーを開き、サーバーノードの「管理」セクションにある「管理サービス」を開きます。
「リモート接続を有効にする」にチェックを入れてください。ここではIPアドレスによるアクセス制限も設定できます。「指定されていないクライアントのアクセス:拒否」とし、接続を許可するIPアドレスやサブネットを明示的に指定すると、より安全な運用が可能です。リモート接続にはSSL証明書が使用されますが、サーバーの証明書ストアにインポート済みの証明書があれば、それを利用することもできます(PowerShellで自己署名SSL証明書を作成・利用することも可能です)。設定を保存しましょう。
注: リモートIIS管理にはデフォルトでTCPポート8172が使用されます。設定を保存すると、Windowsファイアウォールにこのポートの規則が自動的に作成されます。
注: Coreモードで動作するリモートIISサーバーの場合は、レジストリキー HKLM\Software\Microsoft\WebManagement\Server の値 EnableRemoteManagement を 1 に設定することで、同等の設定を行えます。
Reg Add HKLM\Software\Microsoft\WebManagement\Server /V EnableRemoteManagement /T REG_DWORD /D 1
この場合は、ファイアウォール規則を手動で作成する必要があります。
netsh advfirewall firewall add rule name="Allow IIS Web Management" dir=in action=allow service="WMSVC"
あとはWeb管理サービス(WMSVC)を起動するだけです。
net start wmsvc
さらに、システム起動時に自動的にサービスが開始されるよう構成しておきましょう。
set-service wmsvc -StartupType Automatic
または、次のコマンドでも設定できます。
sc config WMSVC start= auto
以上で準備完了です。リモートのIIS WebサーバーをIISマネージャーコンソールに追加すれば、ローカルのWebサーバーとまったく同じ感覚で、サーバーやその上の複数サイトを管理できるようになります。
非管理者ユーザーにIISサイトのリモート管理を許可する方法
デフォルトでは、管理者権限を持つユーザーのみがIISサーバーをリモート管理できます。一般ユーザーにもリモート管理を許可したい場合は、IISサイトごとに個別に権限を付与する必要があります。対象のサイトを選択し、「IIS マネージャーのアクセス許可」を探してください。
操作パネルの「ユーザーの許可」をクリックし、アクセスを許可するユーザーアカウントを選択してOKを押します。
また、IISサーバー上のサイトに対するユーザー権限の詳細は、サーバーレベルの「機能の委任」セクションで構成します。
各管理機能について、「読み取り専用」「読み取り/書き込み」「委任しない」の3段階からアクセスレベルを選択できます。運用方針に応じて最小権限を与えるのがおすすめです。
Windows 10からIISサーバーをリモート管理する方法
Windows 10(Windows 7 / 8.1 も同様)のクライアントPCからIISサーバーをリモート管理したい場合は、「Windowsの機能の有効化または無効化」→「インターネット インフォメーション サービス」→「Web 管理ツール」→「IIS 管理コンソール」から、IIS管理コンソールをインストールします。
PowerShellコマンドでもインストール可能です。
Enable-WindowsOptionalFeature -Online -FeatureName "IIS-ManagementConsole"
しかし、Windows 10でIISマネージャーを起動しても、メニューに「サーバーへの接続」という項目が表示されません。
Windows 10からIISへリモート接続するには、「IIS Manager for Remote Administration(リモート管理用IISマネージャー)」をダウンロードしてインストールする必要があります。
ヒント: インストーラーにはx64用(inetmgr_amd64_en-US.msi)とx86用(inetmgr_x86_en-US.msi)の2種類があるので、OSのビット数に合ったものを選んでください。
インストール後は、IISマネージャーを再起動してサイトへ接続します。接続時にクライアントとサーバーでコンソールのバージョンが異なる場合は、「コンソールの更新が必要」という通知が表示されます(必要なファイルはサーバーから自動的にダウンロードされます)。
これで、自分のデスクトップからIISサーバーに正常に接続し、快適にリモート管理できるようになります。
IISリモート管理とTLS 1.1 / TLS 1.2のサポート
IISで安全性の低いSSLv3やTLS 1.0を無効化し、TLS 1.1 / TLS 1.2のみを有効にしている環境では、リモート接続時に次のエラーが発生することがあります。
基になる接続が閉じられました: 送信時に予期しないエラーが発生しました。
この問題を解決するには、クライアント側のレジストリを変更し、接続時にTLS 1.2プロトコルを強制的に使用するようにします。設定内容はWindowsのバージョンによって異なるため、以下を参考にしてください。
Windows 10 および Windows Server 2016 の場合
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319]
"SchUseStrongCrypto"=dword:00000001
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319]
"SchUseStrongCrypto"=dword:00000001
Windows Server 2012 / R2 および Windows 8 / 8.1 の場合
.NET Framework 4.5.2 以降がインストールされていることが前提条件となります(インストール済みの.NET Frameworkのバージョンは事前に確認しておきましょう)。そのうえで、前項と同じレジストリ値を設定します。
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319]
"SchUseStrongCrypto"=dword:00000001
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319]
"SchUseStrongCrypto"=dword:00000001
Windows Server 2008 R2 / Windows 7 の場合
.NET Framework 3.5.1 でTLS 1.2をサポートするために、まず更新プログラム KB3154518 をインストールしておく必要があります。その後、以下のレジストリ値を設定します。
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v2.0.50727]
"SystemDefaultTlsVersions"=dword:00000001
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v2.0.50727]
"SystemDefaultTlsVersions"=dword:00000001
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client]
"DisabledByDefault"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server]
"DisabledByDefault"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client]
"DisabledByDefault"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server]
"DisabledByDefault"=dword:00000000
以上の設定により、古いOS環境でもTLS 1.1 / TLS 1.2でのIISリモート管理が可能になります。セキュリティポリシーとの兼ね合いも考慮しながら、適切に構成してください。
-
Windows Server Backupを使ってActive Directoryサーバー(2016/2012)をバックアップ・スケジュールする方法
本記事では、Windows Server Backupアプリケーションを使用して、Active Directoryが稼働するWindows Server 2016またはServer 2012をバックアップする方法をご紹介します。この記事を読み終える頃には、Windows Server 2016/2012上でサーバーの完全バックアップを実行・スケジュール設定できるようになり、万一トラブルが発生した際にもサーバーを復元できるようになります。 ご存じのとおり、Windows Server 2008、2012/2012R2、2016では「システムの復元」機能は利用できません(サポートされていません)。
-
Windows Server 2016/2012でバックアップを削除する方法|wbadminコマンドの使い方を徹底解説
Windows Serverバックアップユーティリティを使用して、Active DirectoryやスタンドアロンのWindows Server 2016または2012のバックアップを行っていると、バックアップコピーが複数蓄積されることで、バックアップ先ディスクの容量が不足することがあります。このような問題でお困りの方は、ぜひ本記事をご覧ください。 Windows Serverバックアップツールを使用すると、管理者はオペレーティングシステム、インストール済みアプリケーション、Active Directoryに関するすべての情報(システム状態バックアップ)を含むサーバーデータ全体のフルバックアッ