Commandes PowerShell Hyper-V essentielles : ce qu’elles sont et comment les utiliser

La gestion des environnements Hyper-V peut s’avérer difficile. Vous avez donc besoin d’un outil de gestion puissant pour configurer et contrôler votre infrastructure virtuelle à partir d’une console centrale. En plus de l’interface utilisateur graphique, Hyper-V fournit une interface de ligne de commande utilisant PowerShell pour la gestion Hyper-V.

Dans cet article de blog, nous décrivons le fonctionnement de PowerShell, les commandes Hyper-V PowerShell qui peuvent améliorer les performances des machines virtuelles (VM) et la manière dont cet outil CLI peut considérablement simplifier le processus de gestion Hyper-V.

NAKIVO for Hyper-V Backup

NAKIVO for Hyper-V Backup

Agentless, application-aware backups for Hyper-V. Anti-ransomware protection, instant VM boot from backup, other virtual/physical platform support and more.

Qu’est-ce que PowerShell ?

PowerShell est un framework d’automatisation des tâches et de gestion de la configuration développé par Microsoft, qui comprend un shell en ligne de commande et un langage de script associé basé sur .NET Framework et .NET Core.

Les commandes PowerShell, également appelées cmdlets, peuvent être utilisées pour automatiser diverses tâches en organisant plusieurs cmdlets dans un seul script PowerShell. Microsoft a développé plus d’une centaine de commandes PowerShell de base qui peuvent être utilisées pour effectuer des tâches complexes ou basiques.

Que peut faire PowerShell ?

PowerShell peut aider les administrateurs Hyper-V à automatiser rapidement les tâches de gestion des systèmes d’exploitation (Linux, macOS et Windows) et des processus associés. Contrairement aux outils GUI, PowerShell vous permet de gérer l’ensemble du système à l’aide de la seule ligne de commande.

De plus, vous pouvez enregistrer les commandes Hyper-V PowerShell requises dans un fichier texte (avec l’extension .ps1 extension), puis exécuter le script pour effectuer certaines tâches. De plus, vous pouvez planifier l’exécution des scripts PowerShell à une heure définie à l’aide du Planificateur de tâches.

Comment ouvrir PowerShell

Il existe plusieurs façons d’exécuter PowerShell dans Hyper-V. Une façon simple d’accéder à PowerShell consiste à se connecter directement à un serveur Hyper-V et à le lancer à partir de là. Pour se connecter à distance à un hôte Hyper-V, il faut s’assurer que le Bureau à distance est activé. Une fois le Bureau à distance activé, on peut utiliser l’utilitaire Bureau à distance et se connecter à distance au serveur comme on le ferait avec n’importe quelle interface graphique Windows Server (GUI).

Ouvrir PowerShell from l’interface graphique

Pour ouvrir PowerShell dans un système d’exploitation basé sur une interface graphique, procédez comme suit :

  1. Vous devez cliquer sur Démarrer et taper PowerShell dans la barre de recherche.
  2. Cliquez avec le bouton droit sur l’icône PowerShell et sélectionnez Exécuter en tant qu’administrateur pour ouvrir PowerShell en mode élevé.

How to run PowerShell in Windows

Ouverture de PowerShell from la ligne de commande

Pour exécuter PowerShell si vous utilisez Windows Server Core ou Hyper-V Server, procédez comme suit :

  1. Tapez PowerShell dans l’invite de commande et appuyez sur Entrez.
  2. Une session Windows PowerShell devrait démarrer automatiquement dans la fenêtre d’invite de commande. Un préfixe PS est alors ajouté à l’invite de commande pour indiquer que vous avez démarré une session Windows PowerShell.
  3. Une fois dans PowerShell, vous pouvez utiliser les commandes PowerShell spécifiques à Hyper-V, que nous abordons plus loin dans cet article.

How to run PowerShell in Windows command prompt

Paramètres à distance

Pour vérifier les paramètres du bureau à distance dans Windows Server Core ou Hyper-V Server, vous pouvez lancer l’utilitaire sconfig s’il n’est pas déjà lancé, puis le configurer à l’aide de l’option 7. De plus, une fois connecté à distance à l’hôte Hyper-V, vous pouvez utiliser l’option 15 pour Quitter vers la ligne de commande.

Enabling Remote desktop to run PowerShell commands on a Hyper-V host

Une fois là, vous êtes dans un environnement cmd.exe environnement – pas PowerShell. Pour lancer un environnement PowerShell, tapez simplement powershell dans la ligne de commande.

Running PowerShell commands

Remote PowerShell

À l’aide de PowerShell, vous pouvez également interagir à distance avec Hyper-V. En d’autres termes, vous pouvez exécuter à distance des commandes PowerShell sur l’hôte Hyper-V sans établir de connexion Bureau à distance.

From le poste de travail d’administration sur lequel nous avons chargé les outils de gestion Hyper-V, nous pouvons exécuter nos commandes Hyper-V. Tout d’abord, nous devons installer les outils Hyper-V, y compris ces commandes (cmdlets).

Install-WindowsFeature RSAT-Hyper-V-Tools

Une fois les outils installés, nous pouvons exécuter les mêmes types de commandes à l’aide du paramètre -computername pointant vers notre hôte Hyper-V, comme dans la capture d’écran ci-dessous. Nous transmettons le nom de notre hôte à la commande get-vm PowerShell commandlet.

Running PowerShell Hyper-V commands remotely

12 commandes PowerShell Hyper-V essentielles

Il existe un certain nombre de commandes PowerShell Hyper-V efficaces qui peuvent faciliter et simplifier le processus de gestion de Hyper-V. Voyons comment vous pouvez utiliser différentes commandes Hyper-V PowerShell.

Get-Command

Commençons par une commande Hyper-V PowerShell utile pour les utilisateurs qui découvrent PowerShell et ne savent pas quelles cmdlets utiliser ni comment les utiliser. En exécutant la cmdlet Get-Command , vous pouvez voir la liste complète de toutes les cmdlets (commandes Windows PowerShell), fonctions et alias disponibles installés sur l’ordinateur.

The Get-VM PowerShell cmdlet

Toutefois, si vous souhaitez affiner votre recherche et obtenir la liste des commandes Hyper-V PowerShell qui correspondent à des critères spécifiques, vous pouvez utiliser la commande Get-Command *-VM cmdlet pour trouver la liste des commandes qui vous permettent de contrôler et de configurer les VMs.

Using the Get-Command PowerShell cmdlet

Par modification du paramètre VM en VHD, vous pouvez obtenir la liste complète des applets de commande utilisées pour gérer les disques durs virtuels. Vous pouvez ainsi essayer différents paramètres de recherche pour obtenir les résultats dont vous avez besoin.

Using the Get-Command cmdlet to display commands to work with VHD

Get-Help

Une fois que vous avez choisi la commande Hyper-V PowerShell que vous souhaitez utiliser, vous pouvez en savoir plus sur cette applet de commande. Pour cela, vous pouvez utiliser l’applet de commande Get-Help. Par exemple, pour en savoir plus sur l’applet de commande Get-VM, tapez ce qui suit :

Get-Help Get-VM

Using the Get-Help and Get-VM Hyper-V PowerShell commands

Get-VM

La commande PowerShell Get-VM vous permet d’afficher toutes les VMs disponibles sur un ou plusieurs hôtes Hyper-V. Pour afficher toutes les VMs sur l’hôte Hyper-V local, vous devez exécuter la commande Get-VM

PowerShell Get-VM details

Sur l’écran PowerShell, vous pouvez voir la liste des VMs disponibles, y compris leur nom, leur état, leur utilisation du processeur, la mémoire qui leur est attribuée, leur temps de fonctionnement, leur statut et leur version.

Start-VM

Cette cmdlet PowerShell particulière start VM vous aide à démarrer une machine virtuelle. Pour cela, exécutez la commande Hyper-V PowerShell suivante :

Start-VM -Name 'Windows Server 2016'

En conséquence, la machine virtuelle nommée Windows Server 2016 est démarrée sur votre hôte Hyper-V local. Vérifions si la machine virtuelle a bien démarré en exécutant la cmdlet Get-VM .

How to use the start VM PowerShell cmdlet

De plus, vous pouvez utiliser une version modifiée de la cmdlet Start-VM cmdlet PowerShell pour lancer les VMs uniquement si leur nom commence par Hyper-V:

Start-VM -Name Hyper-V*

PowerShell start VM

Comme vous pouvez le constater, la VM nommée Hyper-V Server Desktop a démarré avec succès. Cependant, une autre machine virtuelle (Hyper-V Server 2012) était déjà en cours d’exécution et PowerShell vous en informe.

Stop-VM

La cmdlet Stop-VM vous permet d’arrêter ou de désactiver une machine virtuelle. Pour cela, vous pouvez exécuter la cmdlet suivante :

Stop-VM -Name 'Windows Server 2016'

Using Stop-VM and Get-VM PowerShell commands

Comme vous pouvez le constater, la machine virtuelle sélectionnée a été arrêtée avec succès via le système d’exploitation invité.

Autre exemple : vous pouvez désactiver les VMs dont le nom commence par Hyper-V:

Stop-VM -Name Hyper-V* -TurnOff

Using the Stop-VM and Get-VM PowerShell Hyper-V commands

Si vous constatez que votre machine virtuelle ne répond pas, vous pouvez forcer son arrêt. Pour ce faire, exécutez la cmdlet PowerShell suivante :

Stop-VM -Name 'Windows Server 2016' -Force

Notez que l’arrêt forcé est similaire à la mise hors tension d’une machine physique, ce qui signifie qu’il peut entraîner la perte des données d’application non enregistrées. Dans ce cas, il est recommandé d’enregistrer la machine virtuelle afin d’éviter toute perte de données potentielle. À cette fin, vous devez exécuter la cmdlet Save-VM , qui équivaut à mettre en veille prolongée un ordinateur physique :

Save-VM -Name 'Windows Server 2016'

Si vous souhaitez enregistrer les VMs dont les noms commencent par Hyper-V, exécutez la commande Hyper-V PowerShell suivante :

Get-VM -Name Hyper-V* | Save-VM

Using the Save-VM and Get-VM PowerShell commands for Hyper-V

Checkpoint-VM

La cmdlet Checkpoint-VM vous aide à créer un point de contrôle Hyper-V VM (également appelé instantané Hyper-V). Exécutez la cmdlet suivante pour créer un point de contrôle nommé Update1 de la machine virtuelle spécifique (Windows Server 2016) :

Checkpoint-VM -Name 'Windows Server 2016' -SnapshotName Update1

Um zu überprüfen, dass die Maschine virtuelle erfolgreich erstellt wurde, verwenden Sie die Hyper-V PowerShell-Kommandozeile:

Get-VMSnapshot -VMName 'Windows Server 2016'

Using the Hyper-V PowerShell commands to create a VM snapshot (checkpoint)

D’autre part, wenn Sie bestimmte Instantaneen von Hyper-V entfernen möchten, können Sie die Kommandozeile verwenden: Remove-VMSnapshot cmdlet. Par exemple, si nous voulons supprimer tous les instantanés VM dont les noms commencent par Testing, nous devons exécuter le cmdlet suivant :

Get-VM 'Hyper-V Server 2012' | Remove-VMSnapshot -Name Testing*

Windows PowerShell commands to delete snapshots for a Hyper-V VM

La capture d’écran ci-dessus montre l’ensemble du processus de suppression des instantanés Hyper-V sélectionnés.

Test-VHD

Cette commande Hyper-V PowerShell permet d’überprüfen que le fichier du disque dur virtuel existe bien et peut être utilisé pour le déploiement Hyper-V. Cette applet de commande est la suivante :

Test-VHD -Path C:Testing.vhd

Si le chemin d’accès au disque dur virtuel est valide, le résultat suivant s’affiche à l’écran :

An example of using the Test-VHD command

Pour en savoir plus sur la gestion des disques durs virtuels à l’aide des cmdlets PowerShell, nous vous recommandons de lire notre article de blog sur les bases de l’utilisation des fichiers VHD et VHDX Hyper-V.

Measure-VM

Cette commande Hyper-V PowerShell vous permet de collecter des données sur l’utilisation des ressources pour une machine virtuelle spécifique. Par exemple, exécutez la cmdlet suivante pour obtenir des informations sur l’utilisation du processeur, l’utilisation de la mémoire vive, la capacité du disque et le trafic réseau pour la machine virtuelle nommée Windows Server 2016:

Measure-VM -VMName 'Windows Server 2016'

PowerShell get VM information

Notez que l’ cmdlet Measure-VM ne peut rapporter les données requises qu’après l’activation de la mesure des ressources sur une machine virtuelle. Pour activer la mesure des ressources, utilisez la commande Hyper-V PowerShell suivante :

Enable-VMResourceMetering -VMName 'Windows Server 2016'

Get-VMNetworkAdapter

Une autre cmdlet PowerShell utile est Get-VMNetworkAdapter, qui vous permet d’identifier les réseaux virtuels de la machine virtuelle sélectionnée. Par exemple, si vous souhaitez rechercher les adaptateurs de réseau virtuel de toutes les VMs ainsi que du système d’exploitation de gestion, vous devez exécuter la commande Hyper-V PowerShell suivante :

Get-VMNetworkAdapter –All

Si tout est correct, vous devriez voir les informations suivantes dans votre console PowerShell :

PowerShell get VM information about network adapters

À l’aide des commandes Hyper-V PowerShell, vous pouvez effectuer diverses tâches simples ou complexes avec vos adaptateurs réseau Hyper-V. Consultez notre guide sur les applets de commande qui peuvent vous aider à gérer et configurer les réseaux virtuels dans votre environnement Hyper-V.

Update-VMVersion

PowerShell dispose d’une applet de commande qui vous permet de mettre à jour la version de la machine virtuelle sélectionnée :

Update-VMVersion -Name 'TestVM'

Après avoir exécuté la commande Hyper-V PowerShell, la machine virtuelle nommée TestVM peut être mise à jour vers la version actuelle de la machine virtuelle.

How to update VM Version in PowerShell

Get-Process

Cette commande Hyper-V PowerShell vous permet de voir tous les processus en cours d’exécution sur votre ordinateur local. Après avoir exécuté la cmdlet Get-Process , vous pouvez obtenir les informations suivantes à l’écran :

Viewing running processes on a Hyper-V host

Ce tableau comprend des informations sur :

  • le nombre de descripteurs ouverts par le processus
  • la quantité de mémoire non paginée utilisée par le processus
  • quantité de mémoire paginable utilisée par le processus
  • taille de l’ensemble de travail du processus
  • quantité de mémoire virtuelle utilisée par le processus
  • la quantité de temps processeur allouée à tous les processeurs
  • l’ID du processus
  • le nom du processus

Pour affiner la recherche et trouver un processus spécifique, vous devez saisir le nom ou l’ID du processus. Par exemple, si vous souhaitez savoir comment Microsoft Word travaille actuellement, vous devez parcourir la liste de tous les processus en cours d’exécution et trouver la ligne contenant les informations sur Microsoft Word (c’est-à-dire WinWord), y compris son ID de processus. À l’aide de l’ID de processus, vous pouvez exécuter la cmdlet suivante pour obtenir les données nécessaires :

Get-Process -ID 8892

Viewing the ID of the running process on a Hyper-V host

De plus, les données relatives aux processus WinWord actuels peuvent être présentées sous un autre format, à savoir sous forme de liste de propriétés. Exécutez cette applet de commande pour obtenir un résultat plus détaillé :

Get-Process WINWORD | Format-List *

Viewing the details about the process on a Hyper-V host in PowerShell

Après avoir obtenu les données du processus, vous pouvez exécuter les applets de commande suivantes :

  • Stop-Process vous permet d’arrêter un ou plusieurs processus en cours d’exécution.
  • Wait-Process vous permet d’attendre qu’un ou plusieurs processus en cours d’exécution soient arrêtés avant d’activer toute autre entrée.
  • Start-Process vous permet de démarrer un ou plusieurs processus sur l’ordinateur local.
  • Debug-Process vous permet d’associer un débogueur à un ou plusieurs processus en cours d’exécution sur l’ordinateur local.

Par exemple, si vous souhaitez lancer le Notepad application from PowerShell, you must execute the following cmdlet:

Start-Process -FilePath "notepad.exe"

Another example is when you have opened PowerShell in « normal » mode, but you must execute PowerShell in elevated mode to access administrative rights. Dans ce cas, exécutez la commande Hyper-V PowerShell suivante :

Start-Process -FilePath "powershell" -Verb RunAs

How to run PowerShell commands in the elevated mode

D’autre part, si l’un des processus en cours d’exécution cesse de répondre, vous pouvez exécuter la cmdlet Stop-Process pour arrêter l’application défaillante :

Stop-Process -Name "notepad"

Dans ce cas, toutes les instances de l’application Bloc-notes sur l’ordinateur local sont arrêtées.

Chaque instance du Bloc-notes possède son propre ID de processus. Si vous souhaitez arrêter une instance Notepad particulière, vous devez utiliser le paramètre ID dans la cmdlet Stop-Process. Pour cela, vous devez d’abord exécuter la cmdlet Get-Process , rechercher les processus actifs requis et identifier l’ID du processus que vous souhaitez arrêter.

Stopping the needed process in PowerShell

Par exemple, vous pouvez arrêter le processus Notepad spécifique en identifiant son ID de processus et en exécutant la commande Hyper-V PowerShell suivante :

Stop-Process -ID 5052

En conséquence, seul le processus Notepad sélectionné est arrêté.

Ces commandes PowerShell vous permettent de détecter un processus qui consomme des ressources indésirables et réduit les performances Hyper-V afin de mettre fin à ce processus.

Where-Object

Cette commande Hyper-V PowerShell vous permet de filtrer les objets du pipeline et de trouver les données exactes dont vous avez besoin. Dans ce cas, vous devez créer un script PowerShell dans lequel vous spécifiez les objets qui peuvent être transmis le long du pipeline. À l’aide de divers critères de recherche, vous pouvez trouver n’importe quel objet sur l’ordinateur local.

Par exemple, si vous souhaitez localiser les processus qui ont cessé de s’exécuter, utilisez cette applet de commande :

Un autre exemple d’utilisation de la cmdlet Where-Object cmdlet est lorsque vous souhaitez trouver un cmdlet spécifique. La commande Hyper-V PowerShell suivante peut vous aider à trouver tous les cmdlets qui commencent par Warten:

Get-Command | Where-Object {$_.Name -like '*wait*'}

An example of using the Where-Object cmdlet in PowerShell

La cmdlet suivante Where-Object peut vous aider à trouver un processus particulier en vous basant uniquement sur son nom. Par l’exécution de la commande suivante, vous pouvez obtenir une liste de tous les processus dont le nom commence par sys:

Get-Process | Where-Object {$_.ProcessName -Match "^sys.*"}

How to find the process based only on its name

Comment créer une machine virtuelle Hyper-V à l’aide de PowerShell

L’une des puissantes fonctionnalités intégrées à Hyper-V est la possibilité d’utiliser PowerShell pour les opérations de gestion. Parmi les nombreuses choses que nous pouvons faire avec PowerShell dans Hyper-V, il y a la création de Virtuelle Maschinen. Examinons un ensemble de commandes PowerShell Hyper-V permettant de créer de nouvelles Virtuelle Maschinen.

Commandes PowerShell pour créer une nouvelle machine virtuelle

Pour créer une nouvelle machine virtuelle de génération 2 avec un disque dur VHDX de 60 Go flambant neuf et la connecter à un commutateur virtuel spécifique (dans ce cas, «ExternalSwitch»), exécutez les commandes PowerShell suivantes sur votre hôte Hyper-V.

  1. Création d’une machine virtuelle :

    new-vm -Name "WSTEST" -MemoryStartupBytes 2GB -Generation 2 -NewVHDPath "D:hyper-vvirtualhard disksWSTEST.vhdx" -NewVHDSizeBytes 60000000000 -Switchname "ExternalSwitch"

  2. Pour ajouter un lecteur DVD ainsi qu’une image ISO pour l’amorçage, nous pouvons exécuter des commandes supplémentaires :

    Add-vmscsicontroller -vmname WSTEST

    Add-vmdvddrive -vmnname WSTEST -controllernumber 1 -controllerlocation 0 -path D:ISOmy.iso

  3. Si nous voulons créer un disque de taille fixe et le connecter à notre machine virtuelle, nous pouvons exécuter la commande suivante pour créer un VHDX de taille fixe et le connecter à notre machine virtuelle :

    new-vhd -path "d:hyper-vvirtual hard disks.wstest.vhdx" -sizebytes 60GB -fixed

    add-vmharddiskdrive -vmname WSTEST -path "d:hyper-vvirtual hard diskswstest.vhdx"

Conclusion

PowerShell peut sembler intimidant au premier abord, mais une fois que vous aurez appris à l’utiliser, vous découvrirez rapidement comment utiliser les commandes Hyper-V PowerShell et rationaliser l’Administration dans votre environnement Hyper-V. N’oubliez pas que quel que soit l’outil que vous utilisez pour gérer vos VMs, vous devez créer des sauvegardes afin d’éviter toute perte de données et tout temps d’arrêt.

NAKIVO Backup & Replication est une solution de protection des données fiable et puissante qui vous aide à protéger vos environnements VMware, Hyper-V, Nutanix, AWS EC2, Linux, Windows et Microsoft 365.

Try NAKIVO Backup & Replication

Try NAKIVO Backup & Replication

Get a free trial to explore all the solution’s data protection capabilities. 15 days for free. Zero feature or capacity limitations. No credit card required.

Les gens qui ont consulté cet article ont également lu