Se connecter à un serveur Hyper-V à distance, depuis un poste client
J'ai lu et vu pas mal de bêtises ici et là sur ce sujet, donc il était temps de réagir.
L'objectif est simple : vous disposez d'un Serveur Windows 2022/2025 avec le rôle Hyper-V déployé dessus.
Et plutôt que de gérer vos VM directement depuis le serveur, vous souhaitez naturellement pouvoir le faire depuis votre poste client windows 11.
Cette procédure fonctionne également si le serveur Windows Hyper-V est en Core.
Pré-requis :
- Hyper-V est installé et prêt à l'emploi sur le serveur Windows
(Rappel pour Windows Core :
Install-WindowsFeature -Name Hyper-V -IncludeManagementTools -Restart
- Hyper-V, ou a minima la console d'administration hyper-v, est installée sur le Client.
(Rappel : Aller dans "Ajouter la fonctionnalité facultative, Plus de fonctionnalités Windows, Hyper-V, cocher "Outils d'administration Hyper-V") - Pour ce tuto, le serveur ET le client ne sont pas dans un domaine AD (c'est plus simple sinon, il suffit qu'un utilisateur AD soit membres des groupes "Administrateurs Hyper-V" et "Utilisateurs de gestion à distance" et c'est tout) mais sont néanmoins sur le même réseau (ou peuvent se joindre sans entrave du type pare-feu... sinon il y aura des règles à créer)
Bon à savoir : La technique suivante utilise http et non https. Il est en effet impossible sans AD, de faire comprendre à Hyper-V qu'il doit basculer sur https lorsque le listener http n'est pas/plus disponible.
La seule chose qu'il est possible de faire est de restreindre la surface d'attaque via le pare-feu. - Sur le client, vous aurez ajouté une correspondance entre l'IP du serveur et son hostname dans le fichier hosts pour plus de commodité.
Rappels :
- Pour installer Hyper-V sur un Client Windows 11 (si vous en avez besoin), aller dans "Activer ou désactiver des fonctionnalités Windows", cocher Hyper-V, cliquez sur OK et redémarrez votre machine. Evitez la présence de plusieurs hyperviseurs différents sur votre machine.
- Si vous faîtes un labo de test avec un serveur Hyper-V et un client pour tester cette procédure, n'oubliez pas d'activer la virtualisation imbriquée pour ces VM avec Hyper-V ! Autrement vous ne pourrez pas installer Hyper-V !
- Pour ajouter une correspondance IP - hostname sur un poste windows, vous devez ouvrir le bloc-note en mode Administrateur puis, fichier, ouvrir et naviguer jusqu'à C:\Windows\System32\Drivers\etc, là, à la place de "Fichiers texte (*.txt) dans le menu déroulant en bas à droite, sélectionnez "Tous les fichiers (*.*)", le fichier hosts apparaît.
Ouvez-le et ajoutez la correspondance tout en bas, du type : 192.168.149.13 SERVEUR. Enregistrez et fermez le fichier.
Nous allons d'ailleurs considérer pour cet exercice que le serveur Hyper-V s'appelle "SERVEUR".
Première étape : passage en réseau privé pour le serveur ET le client
(Cette étape n'est pas nécessaire dans le cas où le(s) serveur(s) Hyper-V et le client sont membres d'un domaine AD.)
Sur le serveur, puis sur le client, effectuez la même opération ci-dessous :
(Lancer PowerShell en mode Administrateur)
- Repérer l'index de votre interface réseau :
Get-NetConnectionProfile
(Pour l'exemple, nous allons prendre le 10)
- Passer en Private :
Set-NetConnectionProfile -InterfaceIndex 10 -NetworkCategory Private
Deuxième étape : Autoriser les connexions PowerShell distantes et définissez les rôles CredSSP
(Activer simplement Enable-PSremoting sur le(s) serveur(s) Hyper-V et lancer le service WinRM sur le client dans le cas les machines sont membres d'un domaine AD)
Sur le serveur :
Enable-PSRemoting
Enable-WSManCredSSP -Role Server
Sur le client : lancez WinRM et ajouter le serveur Hyper-V à la liste des machines de confiance
Start-Service WinRM
Set-Item WSMan:\localhost\Client\TrustedHosts -Value "SERVEUR"
# répondez [O] Oui
Enable-WSManCredSSP -Role Client -DelegateComputer "SERVEUR"
Troisième étape : Autoriser la délégation de nouvelles informations d'identification de serveur NTLM
(cette étape n'est pas non plus nécessaire dans le cas d'un AD)
Sur le client :
- Exécutez le fichier .reg suivant :
Configurer l'Autorisation de délégation NTLM pour VIRTUONLINE
ou
- Faîtes la configuration manuellement :
gpedit.msc
Allez dans :
- Configuration Ordinateur
---- Modèles d'administration
-------- Système
------------ Délégation d'informations d'identification
---------------- Autoriser la délégation de nouvelles informations d'identification avec l'authentification de serveur NTLM uniquement
-------------------- Activer, puis cliquer sur "Afficher" et entrez la valeur suivante dans la première ligne : wsman/SERVEUR
La configuration est terminée !
A présent, lancer le gestionnaire Hyper-V sur le client, "se connecter au serveur...", entrer "SERVEUR" puis "se connecter en tant qu'autre utilisateur..."
Attention, vous devez indiquer le nom d'un utilisateur créé SUR LE SERVEUR WINDOWS pour pouvoir vous connecter à la console Hyper-V. Cet utilisateur doit par ailleurs être membre des 2 groupes suivants :
- "Administrateurs Hyper-V"
- "Utilisateurs de gestion à distance"
et d'aucun autre groupe !!
Cela permet de ne donner accès QU'A hyper-V sur le serveur !
L'utilisateur ne peut ainsi pas se connecter à une session RDP par exemple.
Pour créer cet utilisateur sur un serveur en Core :
# Définir le nom d'utilisateur
$UserName = "MonUtilisateur"
# Demander le mot de passe de façon sécurisée
$Password = Read-Host -AsSecureString "Veuillez entrer le mot de passe pour l'utilisateur $UserName"
# Créer l'utilisateur local
New-LocalUser -Name $UserName -Password $Password -FullName "Mon Utilisateur" -Description "Utilisateur local pour administration Hyper-V"
# Repérer le nom des groupes locaux pour être sûr de leur dénomination :
Get-LocalGroup
# Ajouter l'utilisateur au groupe "Administrateurs Hyper-V"
Add-LocalGroupMember -Group "Administrateurs Hyper-V" -Member $UserName
# Ajouter l'utilisateur au groupe "Utilisateurs de gestion à distance"
Add-LocalGroupMember -Group "Utilisateurs de gestion à distance" -Member $UserName
Pour entrer le nom de l'utilisateur lors de la connection au serveur Hyper-V, on précise le nom NETBIOS du serveur devant le nom de l'utilisateur :
SERVEUR\utilisateur-du-serveur
Mot-de-passe
(Autrement ça ne fonctionne pas !)
(Remarque : j'ai observé plusieurs fois qu'il était nécessaire de faire une première connexion (depuis le client vers le serveur Hyper-V SERVEUR) en utilisant les identifiants de l'Administrateur du serveur SERVEUR avant de parvenir à se connecter avec l'utilisateur dédié créé sur le serveur SERVEUR. Commencez donc par essayer de vous connecter avec l'Administrateur du serveur.)
Encart concernant les gestionnaires de cluster de basculement avec AD
Petit encart concernant les gestionnaires de cluster de basculement avec AD.
Si vous souhaitez vous connecter à un gestionnaire de cluster de basculement Hyper-V (mettons que vous avez monté un tel cluster) afin de pouvoir gérer les VM, à ma connaissance, il n'est pas possible d'y parvenir en créant un utilisateur AD et en l'ajoutant aux groupes mentionnés plus haut. Cette technique ne fonctionne que dans le cas où il n'y a pas d'AD.
Il faut normalement ajouter une autorisation dans les propriétés du cluster de basculement pour l'utilisateur que l'on veut... sauf que ça ne fonctionne pas !
A creuser donc.
Néanmoins, il est tout à fait possible de se connecter au gestionnaire du cluster depuis un poste client grâce aux outils RSAT et au gestionnaire de cluster inclu.. en l'ouvrant en mode Administrateur !
↑ Haut de page