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.
- 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))
- 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).
9b3rq5