リモート管理による障害の診断

ニタシャ・ヴェルマ

概要

この記事は、RemoteMgr の使用中に見つかった問題の診断と修正に役立ちます。 これは、iis.net フォーラムでよく寄せられる質問に基づいています。

リモート サーバーに接続できませんか?

クライアントとサーバーが同じビルドを使用していることを確認します。 たとえば、Server Beta 3 remoteMgr は RC1 サーバー ビルドでは機能しません。

リモート管理の動作マトリックスに関するブログ投稿を参照してください。 アクセス制御リスト (ACL) に関連する問題が発生する可能性があります。

イベント ビューアー (eventvwr.msc) ログを確認します。 WMSVC にはサポート性に優れたストーリーがあります。 イベントは、詳細なエラー メッセージとスタック トレースと共にログに記録されます。 イベント ビューアーを見ると、問題の原因がわかります。

wmsvc バインドを更新した後、リモート サーバーに接続できませんか?

WMSVC が実行されるように構成されているポートを更新した後にこれが発生した場合は、サーバーのファイアウォールが有効になっているかどうかを確認します。 その場合は、WMSVC が実行されているポートの新しい例外規則を追加します (既定値: 8172)。 次に、サーバーにもう一度接続してみてください。

これで問題が解決しない場合は、cmdline から次のコマンドを実行します。

netsh http show sslcert

netsh http show sslcert

ポート 8172 (WMSVC が実行されているポート) に SSL 証明書バインドがあることを確認します。 また、証明書ハッシュが WMSVC のバインド先のハッシュと一致していることを確認します (管理サービス UI)。

サンプル出力:

c:\>netsh http show sslcert 
SSL Certificate bindings:
-------------------------
IP:port                 : 0.0.0.0:8172
Certificate Hash        : f06ae62a5275a818338f05ecc80707335be1e204
Application ID          : {00000000-0000-0000-0000-000000000000}
Certificate Store Name: MY
Verify Client Certificate Revocation    : Enabled
Verify Revocation Using Cached Client Certificate Only: Disabled
Usage Check    : Enabled
Revocation Freshness Time: 0
URL Retrieval Timeout   : 0
Ctl Identifier          : (null)
Ctl Store Name          : (null)
DS Mapper Usage    : Disabled
Negotiate Client Certificate    : Disabled

netsh http show urlacl

netsh http show urlacl

予約済み URL の一覧に URL https://*:8172/ (WMSVC が実行するように構成されているポート) が表示されていることを確認します。

サンプル出力:

c:\>netsh http show urlacl

URL Reservations:
-----------------
Reserved URL            : https://*:8172/
User: NT SERVICE\WMSvc
Listen: Yes
Delegate: No
SDDL: D:(A;;GX;;;S-1-5-80-257763619-1023834443-750927789-3464696139-1457670516)

前の段落の netsh コマンドを使用して、バインディングが正しく構成されていないかどうかを判断します。 問題は、WMSVC バインドを調整しようとしている管理者に対するアクセス許可がマシン キーにない可能性があります。 その場合は、次の操作を試してください。

  1. マシン キーの所有権を取得します。

    takeown /F %ProgramData%\Microsoft\Crypto\RSA\MachineKeys\bedbf0b4da5f8061b6444baedf4c00b1* /R
    
  2. 管理者グループに読み取りアクセス許可が付与されるように、マシン キーの ACL を構成します。

    icacls %ProgramData%\Microsoft\Crypto\RSA\MachineKeys\bedbf0b4da5f8061b6444baedf4c00b1* /grant Administrators:(R)
    
  3. WMSVC のポート 8172 を予約します。

    netsh http add urlacl url=https://*:8172/ User="NT SERVICE\wmsvc"
    
  4. 証明書をポートに関連付けます。

    netsh http add sslcert ipport=0.0.0.0:8172 certhash=<certHash> appid={d7d72267-fcf9-4424-9eec-7e1d8dcec9a9}
    

リモート サーバーに接続するたびに、クライアントにプロンプトを表示したくない場合は、

サーバーが WMSVC に信頼されたルート証明書を使用していることを確認します。 信頼されたルート証明書を作成し (まだお持ちでない場合)、管理サービス機能ページで、この証明書をサービスで使用するように割り当てます。 これにより、(証明書が信頼されていないため) サーバーを信頼するかどうかを確認するプロンプトがクライアントに表示されないようにします。

それ以外のすべてが失敗した場合:

IIS.NET フォーラムに問題を投稿し、手順と詳細を再現します。 例外と呼び出し履歴と共に eventvwr.msc ログを含めてください。

例外と呼び出し履歴を取得する方法の詳細を次に示します。

  1. windbg をwmsvc.exeにアタッチする

    windbg –pn wmsvc.exe
    
  2. sos.dllを読み込み、マネージド例外が発生した場合にブレークポイントを設定する

    .loadby sos mscorwks
    sxe clr
    
  3. 次に Go キーを押します

    g
    
  4. 中断したら、例外と呼び出し履歴を出力し、iis.net/forums に送信します。

    !pe
    !clrstack