22 01 2014
Injecter la configuration réseau dans une VM sous Hyper-V 2012/R2
Voici un petit script qui permet d’injecter la configuration réseau IP d’une machine virtuelle sans avoir à s’y connecter.
Si vous ne le saviez pas, il existe des gourou du Powershell. Ravikanth Chaganti, MVP Powershell en fait partis. Il a partagé, il y a quelques temps déjà un petit script permettant d’injecter la configuration réseau depuis le serveur Hyper-V.
Vous trouverez le script en question à l’adresse suivante: Set (or inject) guest network configuration from Hyper-V host (Windows Server 2012)
Utilisé dans un script, vous pouvez configurer une carte réseau d’une VM pour utiliser le DHCP en utilisant la commande suivante:
1 |
Get-VMNetworkAdapter -VMName MaMachineVirtuelle | Set-VMNetworkConfiguration -DHCP |
Pour configurer une IP statique, il faudra utiliser la commande suivante:
1 |
Get-VMNetworkAdapter -VMName MaMachineVirtuelle | Set-VMNetworkConfiguration -IPAddress 192.168.1.2 00 -Subnet 255.255.255.0 -DNSServer 192.168.1.100 -DefaultGateway 192.168.1.2 |
Personnellement, j’ai légèrement modifié le début du script pour pouvoir l’utiliser depuis n’importe quel serveur de management qui a les RSAT Hyper-V Tools:
Ajoutez les lignes suivantes dans Param ( ) au début du script:
1 2 3 4 5 6 7 |
[Parameter(Mandatory=$false, Position=0, ParameterSetName='DHCP')] [Parameter(Mandatory=$false, Position=4, ParameterSetName='Static')] [String]$ComputerName = "localhost" |
Puis remplacez les lignes suivantes:
1 2 3 4 5 |
$VM = Get-WmiObject -Namespace 'root\virtualization\v2' -Class 'Msvm_ComputerSystem' | Where-Object { $_.ElementName -eq $NetworkAdapter.VMName } # par $VM = Get-WmiObject -Namespace 'root\virtualization\v2' -ComputerName $computername -Class 'Msvm_ComputerSystem' | Where-Object { $_.ElementName -eq $NetworkAdapter.VMName } |
et
1 2 3 4 5 |
$Service = Get-WmiObject -Class "Msvm_VirtualSystemManagementService" -Namespace "root\virtualization\v2" # Par $Service = Get-WmiObject -ComputerName $computername -Class "Msvm_VirtualSystemManagementService" -Namespace "root\virtualization\v2" |
Ainsi, en ajoutant le nom de l’hôte Hyper-V sur lequel tourne la VM, vous pouvez configurer l’adresse IP de cette VM à distance.
1 |
Get-VMNetworkAdapter -VMName MaMachineVirtuelle | Set-VMNetworkConfiguration -ComputerName "HyperV1" -IPAddress 192.168.1.2 00 -Subnet 255.255.255.0 -DNSServer 192.168.1.100 -DefaultGateway 192.168.1.2 |
Note: Ce script fonctionne lorsque les integration tools pour Hyper-V 2012, Hyper-V 2012 R2 ou les Linux Integration Services 3.5 sont installés sur la machine virtuelle.
Créer un Template Linux sous Virtual Machine Manager Bug: VMM crash, « Unable to connect to the VMM Database »