Le service VMM Hyper-V échoue et l’ID d’événement 14050 est journalisé lorsque dynamicportrange est modifié

Cet article fournit une solution aux problèmes où le service VMM Hyper-V échoue et où l’ID d’événement 14050 est enregistré lorsque le paramètre dynamicportrange est modifié.

S’applique à : Windows Server 2012 R2
Numéro de la base de connaissances d’origine : 2761899

Symptômes

Supposons que vous disposez d’un ordinateur exécutant Windows Server 2012 avec Hyper-V installé. Si vous essayez de gérer les hôtes Hyper-V à l’aide de System Center Virtual Machine Manager 2012 Service Pack 1 (SP1) ou à distance à l’aide du Gestionnaire Hyper-V, la tentative échoue. En outre, un événement peut être enregistré dans le journal des événements qui ressemble à ce qui suit :

Nom du journal : Microsoft-Windows-Hyper-V-VMMS-Administration
Source : Microsoft-Windows-Hyper-V-VMMS
Date : <date><et heure>
ID d’événement : 14050
Niveau : Erreur
Description : Échec de l’inscription du nom du principal du service.
Xml d’événement : ...
<Parameter0>Hyper-V Replica Service</Parameter0>

Cause

Ce problème peut se produire si la plage de ports dynamiques TCP est en dehors de la plage par défaut. Le service de gestion virtuelle (Vmms.exe) d’Hyper-V utilise le renforcement du service Windows et se limite à la plage de ports dynamiques.

Pour déterminer la plage de ports dynamiques TCP, exécutez la commande suivante à une invite de commandes avec élévation de privilèges :

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

Ce problème peut également se produire si le port NTDS a été limité à un port spécifique sur vos contrôleurs de domaine. Si ce port NTDS sélectionné ne figure pas dans les plages par défaut, vous devez ajouter ce port en exécutant le script dans la section « Résolution » sur chaque hôte Hyper-V.

Pour plus d’informations, cliquez sur le numéro d’article suivant pour accéder à l’article dans la Base de connaissances Microsoft :

224196 Restriction du trafic de réplication Active Directory et du trafic RPC client vers un port spécifique

Résolution

Pour résoudre ce problème, exécutez le script suivant une fois sur chaque hôte Hyper-V affecté. Ce script ajoute une plage de ports personnalisée pour permettre aux Vmms.exe de communiquer sur une plage de ports supplémentaire comprise entre 9000 et 9999. Le script peut être modifié si nécessaire.

Pour configurer un script afin d’ajouter la plage de ports personnalisée, procédez comme suit :

  1. Démarrez un éditeur de texte, par exemple le Bloc-notes.

  2. Copiez le code suivant, puis collez-le dans le fichier texte :

    
    '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. Enregistrez le fichier en tant que « Addportrange.vbs » (guillemets inclus). Cela crée correctement le fichier comme ayant l’extension .vbs. L’icône de fichier passe d’une icône bloc-notes à une icône de script.

  4. Exécutez le script en tant que cscript.

References

970923 Impossible d’ajouter un hôte managé dans SCVMM 2008 et SCVMM 2012, Erreur 2927 (0x8033809d)

929851 La plage de ports dynamiques par défaut pour TCP/IP a changé dans Windows Vista et Windows Server 2008