PowerShell Direct ne fonctionne pas dans Hyper-V

PowerShell Direct ne fonctionne pas dans Hyper-V
Index
  • PowerShell Direct ne fonctionne pas dans Hyper-V
  • PowerShell Direct facilite l'exécution de commandes dans les machines virtuelles Hyper-V, mais des problèmes peuvent survenir. Voici comment résoudre les échecs de connexion à PowerShell Direct.

    PowerShell Direct permet d'exécuter des commandes à l'intérieur d'une VM Windows, directement depuis l'hôte Hyper-V. Parfois, la connexion par Enter-PSSession ou Invoke-Command échoue. Voici comment résoudre les problèmes si PowerShell Direct ne fonctionne pas dans Hyper-V.

    Le service PowerShell Direct de Hyper-V

    Avec PowerShell Direct, les commandes PowerShell s’exécutent facilement dans une machine virtuelle sans connexion réseau, adresse IP ou configuration WinRM. Grâce à l'infrastructure Hyper-V, la communication avec la VM se fait en toute simplicité. Utilisez Enter-PSSession -VMName ou Invoke-Command -VMName pour gérer votre système d'exploitation invité.

    PowerShell Direct ne fonctionne pas dans Hyper-V

    Voici des solutions si PowerShell Direct ne fonctionne pas :

    1. Vérifiez que l'hôte et la VM supportent PowerShell Direct
    2. Lancez PowerShell en mode administrateur
    3. Assurez-vous que la machine virtuelle est opérationnelle
    4. Vérifiez le nom de la VM et essayez l'ID de la VM
    5. Redémarrez le service PowerShell Direct dans la VM
    6. Utilisez Invoke-Command à la place d'Enter-PSSession

    Vérifiez les prérequis

    Assurez-vous d'abord que l'hôte Hyper-V et la VM répondent aux exigences. PowerShell Direct fonctionne avec Windows 11/10 ou ultérieur, ainsi qu'avec Windows Server 2016 ou plus récent. La VM doit être localement exécutée sur l'hôte. Si vous tentez de vous connecter à une version plus ancienne de Windows, un autre moyen comme VMConnect pourrait être nécessaire.

    PowerShell Direct nécessite aussi PowerShell 5.0 ou plus. Vérifiez la version avec :

    $PSVersionTable.PSVersion

    Si les versions ne correspondent pas, mettez à jour l'OS ou usez d'une autre méthode pour accéder à la VM.

    Lancez PowerShell en mode administrateur

    Une fenêtre PowerShell non exécutée avec des privilèges d’administrateur peut empêcher la connexion à la VM.

    Cliquez droit sur PowerShell dans le menu Démarrer et sélectionnez Exécuter en tant qu’administrateur.

    Ensuite, vérifiez si Hyper-V reconnaît la VM :

    Get-VM

    Si la VM figure dans la liste, reconnectez-vous :

    Enter-PSSession -VMName "VMName"

    Vous pouvez aussi spécifier les identifiants :

    Enter-PSSession -VMName "VMName" -Credential (Get-Credential)

    Notez que vous devez être un administrateur Hyper-V pour exécuter ces commandes.

    Vérifiez l'état de la machine virtuelle

    PowerShell Direct ne peut établir de connexion si la VM est éteinte ou en cours de démarrage.

    Pour vérifier cela, exécutez :

    Get-VM

    La colonne État doit indiquer En cours d'exécution pour que l'accès soit possible.

    Si la VM est éteinte, démarrez-la :

    Start-VM -Name "VMName"

    Attendez que le système d'exploitation termine le démarrage avant d'essayer à nouveau :

    Enter-PSSession -VMName "VMName" -Credential (Get-Credential)

    Si Windows est toujours en phase de démarrage, PowerShell Direct pourrait échouer, car il n'est pas encore opérationnel à l'intérieur de la VM.

    Vérifiez le nom de la VM et essayez l'ID de la VM

    Erreur : le paramètre VMName ne pointe pas vers une machine virtuelle. D'abord, assurez-vous d'avoir le bon nom de la VM avec la commande :

    Get-VM

    Ensuite, utilisez le nom tel qu'affiché :

    Enter-PSSession -VMName "Nom de la machine virtuelle"

    Si ça ne marche toujours pas, tentez l’ID GUID de la VM.

    Exécutez cette commande :

    Get-VM | Select-Object Name, VMId, State

    Utilisez l'ID affiché ensuite : Enter-PSSession -VMId “VM-GUID”

    Ça résout souvent des problèmes, notamment si le nom contient des espaces ou s'il ne se résout pas.

    Redémarrez le service PowerShell Direct à l'intérieur de la VM

    Erreur : une session distante pourrait avoir pris fin. Ce souci vient parfois du service PowerShell Direct dans la VM.

    Connectez-vous à la machine virtuelle via VMConnect. Ouvrez PowerShell en tant qu'administrateur et lancez :

    Restart-Service -Name vmicvmsession

    Après le redémarrage, retournez sur l’hôte Hyper-V et réessayez : Enter-PSSession -VMName "NomVM" -Credential (Get-Credential)

    Microsoft propose cette solution pour les cas où PowerShell Direct ne répond plus, surtout avec des problèmes de sessions de crédentiels persistants.

    Essayez Invoke-Command au lieu de Enter-PSSession

    Une session interactive PowerShell Direct qui flanche ? Testez avec Invoke-Command.

    Exemple : Invoke-Command -VMName "NomVM" -Credential (Get-Credential) -ScriptBlock { hostname }

    Si ça retourne le nom de la VM, PowerShell Direct fonctionne. Le souci est peut-être limité à la session interactive.

    Vous pouvez aussi exécuter une commande sans session interactive :

    Invoke-Command -VMName "NomVM" -Credential (Get-Credential) -ScriptBlock { Get-Process }

    PowerShell Direct permet les deux : Enter-PSSession pour l'interaction et Invoke-Command pour des commandes spécifiques.

    Comment activer Hyper-V avec PowerShell ?

    Activez Hyper-V avec PowerShell : ouvrez Windows PowerShell en tant qu'administrateur et exécutez :

    Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All

    Redémarrez ensuite votre ordinateur. Après le redémarrage, Hyper-V et ses outils devraient être là. Vérifiez l'installation avec :

    Get-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V

    Maintenant que tu as fini de lire PowerShell Direct ne fonctionne pas dans Hyper-V, nous t'invitons à explorer davantage la catégorie Tutoriels. Tu y trouveras d'autres articles intéressants qui élargiront tes connaissances et te tiendront informé. Ne cesse pas de lire et de découvrir plus!

    Go up