#SysAdmin #NetAdmin

PowerShell – Modifier configuration IP VM Windows depuis HYPERV

P

Sous HYPERV il est possible de modifier la configuration IP d’une VM Windows directement depuis PowerShell si l’on arrive plus à se connecter à celle-ci à la suite d’une erreur, exemple avec un RODC qui n’est pas dans le bon réseau.

  1. Enregistrer le code suivant dans un fichier .ps1 :
$vmName = Read-Host "Enter VM name"
$vmIP = Read-Host "Enter VM new IP"
$vmMask = Read-Host "Enter VM new mask"
$vmGateway = Read-Host "Enter VM new gateway"
$vmDNS = Read-Host "Enter VM new DNS"

$Msvm_VirtualSystemManagementService = Get-WmiObject -Namespace root\virtualization\v2 -Class Msvm_VirtualSystemManagementService 

$Msvm_ComputerSystem = Get-WmiObject -Namespace root\virtualization\v2 -Class Msvm_ComputerSystem -Filter "ElementName='$vmName'" 

$Msvm_VirtualSystemSettingData = ($Msvm_ComputerSystem.GetRelated("Msvm_VirtualSystemSettingData", "Msvm_SettingsDefineState", $null, $null, "SettingData", "ManagedElement", $false, $null) | % {$_})

$Msvm_SyntheticEthernetPortSettingData = $Msvm_VirtualSystemSettingData.GetRelated("Msvm_SyntheticEthernetPortSettingData")

$Msvm_GuestNetworkAdapterConfiguration = ($Msvm_SyntheticEthernetPortSettingData.GetRelated( "Msvm_GuestNetworkAdapterConfiguration", "Msvm_SettingDataComponent", $null, $null, "PartComponent", "GroupComponent", $false, $null) | % {$_})

$Msvm_GuestNetworkAdapterConfiguration.DHCPEnabled = $false
$Msvm_GuestNetworkAdapterConfiguration.IPAddresses = $vmIP
$Msvm_GuestNetworkAdapterConfiguration.Subnets = $vmMask
$Msvm_GuestNetworkAdapterConfiguration.DefaultGateways = $vmGateway
$Msvm_GuestNetworkAdapterConfiguration.DNSServers = $vmDNS

$Msvm_VirtualSystemManagementService.SetGuestNetworkAdapterConfiguration( $Msvm_ComputerSystem.Path, $Msvm_GuestNetworkAdapterConfiguration.GetText(1))
  1. Exécuter le fichier :
.\HYPERV-Change-VM-IP-Configuration.ps1

Il faudra renseigner le nom de la VM à traiter, et spécifier ensuite la nouvelle configuration IP (adresse, masque, passerelle, dns).

1 commentaire

par Nathan
#SysAdmin #NetAdmin