Cannot connect to the Virtual Machine - Comment connaitre l'activité des interfaces graphiques d'Hyper-V

Bonjour,

Un de mes clients rencontrait un problème de connexion à ses machines virtuelles via la console VMConnect, et voilà le message qu'il obtenait.

Les journaux d'événements ne montrant pas grand chose, il me fallait trouver une façon de voir d'un peu plus près quels composants étaient en jeux, et ce qu'ils faisaient.

C'est en fouillant sur Internet que j'ai trouvé une façon d'aller plus loin, à ceci près qu'il n'y avait jamais d'explication fournie, et que les valeurs des paramêtres variaient d'un blog à l'autre. Voici donc un petit résumé de comment s’y prendre "en vrai".

Commencer par créer un fichier "VMClientTrace.config" dans le répertoire " %AppData%\Microsoft\Windows\Hyper-V\Client\1.0\ " contenant ces sections en fonction de ce que l'on souhaite tracer:

  • La console Hyper-V : BrowserTraceLevel
  • La console VMConnect : VMConnectTraceLevel
  • La console d'inspection des VHDs : InspectVhdTraceLevel

Pour chaque composant tracé, le fichier correspondant sera créé dans le répertoire parent de %temp%

Si vous entrez %temp% dans l'explorer, vous risquez de tomber sur quelque chose du genre :

  • C:\Users\ <Utilisateur> \AppData\Local\Temp\ <Numero> \

Les logs seront enregistrés dans

  • C:\Users\ <Utilisateur> \AppData\Local\Temp\

Un log sera créé pour chaque opération, et qui sera bloqué tan que l'interface ne sera pas fermée :

  • Pour la console Hyper-V : VMBrowser_Trace_20151030113101.log
  • Pour chaque VMConnect lancé : VMConnect_Trace_20151030113131.log
  • Pour chaque Inspect de VHD : VHDInspect_Trace_20151030114827.log

 Pour désactiver le tracing : Passer les valeurs à 0, ou renommer le fichier VMClientTrace.config, ou le supprimer

 Pour Windows 2008 r2 :

Les valeurs sont progressives : 0 pour rien, 1 pour exceptions, 2 pour WMI, 3 pour UserActions, 4 pour les events, 5 pour tout et 6 pour Verbose

 <?xml version="1.0" encoding="utf-8"?>

<configuration>

<Microsoft.Virtualization.Client.TraceConfigurationOptions>

<setting name="TraceTagFormat" type="System.Int32">

<value>3</value>

</setting>

<setting name="BrowserTraceLevel" type="System.Int32">

<value>6</value>

</setting>

<setting name="VMConnectTraceLevel" type="System.Int32">

<value>6</value>

</setting>

<setting name="InspectVhdTraceLevel" type="System.Int32">

<value>6</value>

</setting>

</Microsoft.Virtualization.Client.TraceConfigurationOptions>

</configuration>

 

Pour Windows 2012 r2 :

Les valeurs sont une somme de plusieurs flags. Il est souvent recommandé de fournir 71 mais il est possible de fournir la valeur 79 si on est courageux, voire 511 si on est téméraire

  • 71 correspond à: Error ( 1 ) + Warning ( 2 ) + UserActions ( 4 ) + Verbose ( 64 )
  • 79 correspond à: Error ( 1 ) + Warning ( 2 ) + UserActions ( 4 ) + Information ( 8 ) + Verbose ( 64 )
  • 511 correspond à tous ces critères additionnés du flag Verbose et des flags correspondants à WMI

Par exemple: 

<?xml version="1.0" encoding="utf-8"?>

<configuration>

<Microsoft.Virtualization.Client.TraceConfigurationOptions>

<setting name="TraceTagFormat" type="System.Int32">

<value>3</value>

</setting>

<setting name="BrowserTraceLevel" type="System.Int32">

<value>71</value>

</setting>

<setting name="VMConnectTraceLevel" type="System.Int32">

<value>71</value>

</setting>

<setting name="InspectVhdTraceLevel" type="System.Int32">

<value>71</value>:

</setting>

</Microsoft.Virtualization.Client.TraceConfigurationOptions>

</configuration>

 

Dans le cadre de ma problématique, ce tracing m'a apporté les éléments suivants pour une valeur à 71 sur le paramêtre VMConnectTraceLevel: (il s'agit d'un extrait filtré)

2015-10-19 10:37:58.413, INFO [1] VmConnect RdpViewerControl:ConnectCallback() Connecting with Server full name: <FQDN Du Server Hyper-V> to RDP port <Port>
2015-10-19 10:37:58.444, INFO [1] VmConnect RdpViewerControl:OnVirtualMachineResolutionChanged() Virtual machine desktop resolution changed. New resolution is: (200, 200)
2015-10-19 10:37:58.522, INFO [1] VmConnect RdpViewerControl:OnDisconnected() RdpViewerControl.OnDisconnected
2015-10-19 10:37:58.522, INFO [1] VmConnect RdpViewerControl:GetDisconnectErrorMsg() Unexpected error disconnect reason '3593'
2015-10-19 10:37:58.522, INFO [1] VmConnect RdpViewerControl:PrintDisconnectionErrorDebugMessage() The server disconnected the client. Server Disconnected text:
2015-10-19 10:37:58.522, INFO [1] VmConnect RdpViewerControl:PrintDisconnectionErrorDebugMessage() Disconnect reason code: E09
2015-10-19 10:37:58.522, INFO [1] VmConnect RdpViewerControl:PrintDisconnectionErrorDebugMessage() Extended disconnect reason code: exDiscReasonNoInfo
2015-10-19 10:37:58.522, INFO [1] VmConnect RdpViewerControl:PrintDisconnectionErrorDebugMessage() Disconnect error message: Cannot connect to the virtual machine. Try to connect again. If the problem persists, contact your system administrator.

Le code d'erreur 0xE09 (3593 en décimal) significant NEG_ERR_RESTRICTEDLOGONNOTSUPPORTED cela m'a permis d'orienter me recherches de façon plus precise.

 

 

Serge Gourraud
55 AA