Windows PowerShell : créez des ordinateurs virtuels Hyper-V

Vous pouvez utiliser Hyper-V et Windows PowerShell 3.0 pour facilement créer, configurer et gérer vos machines virtuelles.

Neil Tucker

Une des meilleures nouvelles fonctionnalités dans Windows 8 et Windows Server 2012 est Hyper-V version 3.0. N'étant ne pas limité à Virtual PC (avec pas de support pour les systèmes d'exploitation 64-bit) va ouvrir de nouvelles perspectives, en particulier pour ceux qui travaillent sur le client Windows 8. Si vous devez travailler avec des machines virtuelles Hyper-V (VMs) sur une base régulière, être capable de les exécuter sur le même bureau où vous faites tout le reste est une raison importante pour mettre à niveau vers Windows 8. Vous bénéficierez également de la possibilité d'utiliser des images 64 bits sur un ordinateur de bureau client.

Vous pouvez maintenant utiliser un module natif de Windows PowerShell 3.0 pour configurer et gérer vos machines virtuelles. Cela est nouveau pour Hyper-V 3.0. Pour ce faire pour Hyper-V 2.0 sur Windows Server 2008, vous deviez télécharger le module Windows PowerShell à partir de CodePlex. Vous pouvez trouver des instructions détaillées sur cette opération dans une de mes dernières TechNet Magazine articles, «créer des Machines virtuelles Hyper-V avec Windows PowerShell, « qui vous montrera comment créer des machines virtuelles à l'aide du module Windows PowerShell 3.0 Hyper-V sur Windows 8 ou Windows Server 2012.

Dans l'élaboration d'un cours de Microsoft Learning sur ce sujet, j'ai créé un script Windows PowerShell conçu pour vous aider à créer des machines virtuelles. Je vais utiliser une version simplifiée de ce script pour montrer comment vous pouvez rapidement créer votre propre. Je vais regarder aussi des façons d'obtenir les meilleures performances de la VMs correctement à l'aide de certaines des options de configuration disponibles. Tout d'abord, vous devez installer le rôle Hyper-V sur le système.

Configurer Hyper-V

Suivez ces étapes pour installer le rôle Hyper-V sur Windows 8 ou Windows Server 2012. Le système doit utiliser un processeur 64 bits, support de virtualisation assistée par matériel et matérielle Data Execution Prevention (DEP). Vous devrez effectuer ces étapes à partir d'une console Windows PowerShell ouverte avec informations d'identification administrateur complet :

  1. Exécutez la commande Enable-WindowsOptionalFeature avére –FeatureName Microsoft Hyper-V (ou Dism /Online /Online /FeatureName:Microsoft-Hyper-V /All).
  2. Vérifiez qu'il n'y a pas d'erreurs.
  3. Arrêtez et redémarrez l'ordinateur.
  4. Vous reconnecter le système avec un compte administrateur.

Le module de Hyper-V Windows PowerShell est installé lorsque le rôle est configuré. Pour utiliser les applets de commande, ajoutez le module sur une console Windows PowerShell (Import-Module Hyper-V). Ensuite, vous devrez vérifier que les applets de commande sont disponibles (Get-Command – module Hyper-V). Avant d'utiliser les applets de commande, vérifiez que le service de « Gestion de la Machine virtuelle Hyper-V » fonctionne (Get-Service VMMS). Vous devez exécuter toutes les cmdlets Windows PowerShell de la technologie Hyper-V avec des privilèges d'administrateur.

Configurer vos ordinateurs virtuels

Le script dans Figure 1 crée et configure les deux machines virtuelles. À l'aide de variables rend plus facile à personnaliser et à uniformiser le processus. Pour installer automatiquement le système d'exploitation, créez un fichier autounattend.xml sur le disque l'image ISO du système d'exploitation utilisera. Si vous n'utilisez pas cette méthode d'installation, supprimez les cmdlets Set-VMDvdDrive et Set-FloppyDiskDrive. Vous pouvez ensuite utiliser New-VM pour créer chaque ordinateur virtuel. Ce script va également créer un DVD et un lecteur de disquette, même si elles ne sont pas désignés.

Figure 1 ce script vous aidera à créer et configurer les deux ordinateurs virtuels.

# This script configures the Hyper-V machines used for the 50331 Course. # PowerShell 3.0 and Windows Server 2012 or Windows 8 Pro are required to perform this setup. # The C:\ Drive should have at least 200GB of free space available. # All the files on the 50331 Student CD should be copied to C:\Labfiles before performing this setup. # Variables $CLI1 = "50331-CUSTOM-CLI" # Name of VM running Client Operating System $SRV1 = "50331-CUSTOM-SRV" # Name of VM running Server Operating System $CRAM = 2GB # RAM assigned to Client Operating System $SRAM = 1GB # RAM assigned to Server Operating System $CLI1VHD = 80GB # Size of Hard-Drive for Client Operating System $SRV1VHD = 40GB # Size of Hard-Drive for Server Operating System $VMLOC = "C:\HyperV" # Location of the VM and VHDX files $NetworkSwitch1 = "PrivateSwitch1" # Name of the Network Switch $W7ISO = "C:\Labfiles\Windows7.iso" # Windows 7 ISO $W7VFD = "C:\Labfiles\Windows7.vfd" # Windows 7 Virtual Floppy Disk with autounattend.xml file $WSISO = "C:\Labfiles\W2K8R2.iso" # Windows Server 2008 ISO $WSVFD = "C:\Labfiles\W2K8R2.vfd" # Windows Server 2008 Virtual Floppy Disk with autounattend.xml file # Create VM Folder and Network Switch MD $VMLOC -ErrorAction SilentlyContinue $TestSwitch = Get-VMSwitch -Name $NetworkSwitch1 -ErrorAction SilentlyContinue; if ($TestSwitch.Count -EQ 0){New-VMSwitch -Name $NetworkSwitch1 -SwitchType Private} # Create Virtual Machines New-VM -Name $CLI1 -Path $VMLOC -MemoryStartupBytes $CRAM -NewVHDPath $VMLOC\$CLI1.vhdx -NewVHDSizeBytes $CLI1VHD -SwitchName $NetworkSwitch1 New-VM -Name $SRV1 -Path $VMLOC -MemoryStartupBytes $SRAM -NewVHDPath $VMLOC\$SRV1.vhdx -NewVHDSizeBytes $SRV1VHD -SwitchName $NetworkSwitch1 # Configure Virtual Machines Set-VMDvdDrive -VMName $CLI1 -Path $W7ISO Set-VMDvdDrive -VMName $SRV1 -Path $WSISO Set-VMFloppyDiskDrive -VMName $CLI1 -Path $W7VFD Set-VMFloppyDiskDrive -VMName $SRV1 -Path $WSVFD Start-VM $SRV1 Start-VM $CLI1

En utilisant les paramètres de New-VM, vous pouvez donner chaque image un nom, emplacement, allocation de mémoire, disque dur et carte RLAN. Vous devez définir le commutateur de réseau virtuel (New-VMSwitch) avant de créer une connexion réseau sur l'ordinateur virtuel. L'environnement Hyper-V peut supporter plusieurs commutateurs de réseau virtuel portant le même nom, alors vérifiez que votre commutateur réseau choisi n'existe pas encore à l'aide de la variable de $TestSwitch avant de créer un nouveau.

Vous pouvez poursuivre la configuration mémoire et disque dur pour améliorer les performances de votre système. Set-VMMemory permet de configurer les paramètres de la mémoire dynamique (par exemple, vous pouvez affecter des paramètres de mémoire minimum, démarrage et maximum). Ceci est très utile sur les systèmes qui prennent en charge de plusieurs images.

Utilisez la cmdlet New-VHD pour créer un disque fixe ou dynamique, d'utiliser la base et les options de disques de différenciation, ou pour gérer les tailles de bloc et de secteur. Les disques dynamiques sont la valeur par défaut. Vous pouvez les créer rapidement, mais les lecteurs fixes de fournissent de meilleures performances.

Peu importe quelles options vous permet de configurer le disque dur, vous devriez profiter du nouveau format VHDX. Vous n'ayez pas un disque dur de 64 to (le format de disque dur virtuel ou VHD, est limité à 2 to), mais les nouvelles fonctionnalités de journalisation signifient moins d'erreurs s'il y a une panne de système ou de puissance.

Documentation Microsoft indique que VHDX lecteurs peuvent s'exécuter plus rapidement que les disques durs virtuels. (J'ai confirmé cela lors de tests, que je suis tombé sur deux ordinateurs). Vous pouvez également convertir des disques durs virtuels existants à VHDX ou vice versa, à l'aide de Convert-VHD ou le Gestionnaire Hyper-V.

Comme vous pouvez le voir, à l'aide de ce script pour créer des machines virtuelles avec Windows PowerShell est relativement facile et nécessite seulement quelques applets de commande. Pour toute personne qui travaille avec des images sur un serveur ou de la plate-forme du client, cela ouvre de nouvelles possibilités lorsque vous gérez un essais virtuels, sécurité ou environnement de déploiement.

Neil R. Tucker

Neil R. Tucker MCT avec des années d'expérience enseigne classes Windows PowerShell, SQL Server et système d'exploitation Windows. Il est l'auteur du cours Microsoft Learning 50331, rédigés pour les techniciens de Support de Windows 7 Desktop. Il peut être contacté par le biais de son site Web à neiltucker.com.

Contenus associés