Hyper-V VMM サービスが失敗し、dynamicportrange が変更された場合にイベント ID 14050 がログに記録される

この記事では、Hyper-V VMM サービスが失敗し、動的ポート範囲設定が変更された場合にイベント ID 14050 がログに記録される問題を解決するソリューションを提供します。

適用対象:  Windows Server 2012R2
元の KB 番号:  2761899

現象

Hyper-V がインストールされているコンピューターがWindows Server 2012コンピューターがインストールされていることを前提とします。 System Center Virtual Machine Manager 2012 Service Pack 1 (SP1) を使用するか、Hyper-V マネージャーを使用してリモートで Hyper-V ホストを管理しようとすると、試行は失敗します。 さらに、次のようなイベント ログにイベントが記録される場合があります。

ログ名: Microsoft-Windows-Hyper-V-VMMS-Admin
ソース: Microsoft-Windows-Hyper-V-VMMS
日付: <Date><Time>
イベント ID: 14050
レベル: エラー
説明: サービス プリンシパル名の登録に失敗しました。
イベント Xml: ...
<Parameter0>Hyper-V レプリカサービス</Parameter0>

原因

この問題は、TCP 動的ポート範囲が既定の範囲を外している場合に発生する可能性があります。 Hyper-V の仮想Vmms.exe (Vmms.exe) では、Windows サービスの強化が使用され、動的ポート範囲に制限されます。

TCP 動的ポート範囲を確認するには、管理者特権でコマンド プロンプトで次のコマンドを実行します。

C:\>netsh int ipv4 show dynamicportrange tcp Protocol tcp Dynamic Port Range --------------------------------- Start Port : 49152 Number of Ports : 16384

この問題は、NTDS ポートがドメイン コントローラー上の特定のポートに制限されている場合にも発生する可能性があります。 この選択された NTDS ポートが既定の範囲内ではない場合は、すべての Hyper-V ホストの "解決" セクションでスクリプトを実行して、このポートを追加する必要があります。

詳細については、次の記事番号をクリックして、Microsoft サポート技術情報の記事に移動します。

224196 Active Directory レプリケーション トラフィックとクライアント RPC トラフィックを特定のポートに制限する

解決方法

この問題を解決するには、影響を受ける各 Hyper-V ホストで次のスクリプトを 1 回実行します。 このスクリプトは、カスタム ポート範囲を追加して、Vmms.exe 9000 ~ 9999 の追加のポート範囲で通信できます。 スクリプトは必要に応じて変更できます。

カスタム ポート範囲を追加するスクリプトを構成するには、次の手順を実行します。

  1. テキスト エディター (テキスト エディターなど) をメモ帳。

  2. 次のコードをコピーし、テキスト ファイルにコードを貼り付けます。

    
    'This VBScript adds a port range from 9000 to 9999 for outgoing traffic  
    'run as cscript addportrange.vbs on the hyper-v host
    
    option explicit
    
    'IP protocols
    const NET_FW_IP_PROTOCOL_TCP = 6
    const NET_FW_IP_PROTOCOL_UDP = 17
    
    'Action
    const NET_FW_ACTION_BLOCK = 0
    const NET_FW_ACTION_ALLOW = 1
    
    'Direction
    const NET_FW_RULE_DIR_IN = 1
    const NET_FW_RULE_DIR_OUT = 2
    
    'Create the FwPolicy2 object.
    Dim fwPolicy2
    Set fwPolicy2 = CreateObject("HNetCfg.FwPolicy2")'Get the Service Restriction object for the local firewall policy.
    Dim ServiceRestriction
    Set ServiceRestriction = fwPolicy2.ServiceRestriction
    
    'If the service requires sending/receiving certain type of traffic, then add "allow" WSH rules as follows
    'Get the collection of Windows Service Hardening networking rules
    
    Dim wshRules
    Set wshRules = ServiceRestriction.Rules
    
    'Add outbound WSH allow rules
    Dim NewOutboundRule
    Set NewOutboundRule = CreateObject("HNetCfg.FWRule")
    NewOutboundRule.Name = "Allow outbound traffic from service to TCP 9000 to 9999"
    NewOutboundRule.ApplicationName = "%systemDrive%\WINDOWS\system32\vmms.exe"
    NewOutboundRule.ServiceName = "vmms"
    NewOutboundRule.Protocol = NET_FW_IP_PROTOCOL_TCP
    NewOutboundRule.RemotePorts = "9000-9999"
    NewOutboundRule.Action = NET_FW_ACTION_ALLOW
    NewOutboundRule.Direction = NET_FW_RULE_DIR_OUT
    NewOutboundRule.Enabled = true
    wshRules.Add NewOutboundRule
    
    'end of script
    
  3. ファイルを "Addportrange.vbs" (二重引用符を含む) として保存します。 これにより、.vbs 拡張子を持つファイルが正しく作成されます。 ファイル アイコンは、ファイル アイコンメモ帳スクリプト アイコンに変更されます。

  4. スクリプトを cscript として実行します。

関連情報

970923 SCVMM 2008 および SCVMM 2012 で管理ホストを追加できない、エラー 2927 (0x8033809d)

929851 TCP/IP の既定の動的ポート範囲は、Windows Vista および Windows Server 2008 で変更されました