param( [Parameter(Mandatory)] [string]$VMName ) #$vmName = Read-Host "Specify the name of your virtual machine" $ns = "root\virtualization\v2" $vsvms = Get-WmiObject -Namespace $ns -Class Msvm_VirtualSystemManagementService $vmcs = Get-WmiObject -Namespace $ns -Class Msvm_ComputerSystem -Filter "ElementName='$vmName'" if (-not $vmcs) { Write-Host "Error: VM $vmname is missing." exit 1; } $vs_settingdata = ($vmcs.GetRelated("Msvm_VirtualSystemSettingData", "Msvm_SettingsDefineState", $null, $null, "SettingData", "ManagedElement", $false, $null) | %{$_}) $et_settingdata = $vs_settingdata.GetRelated("Msvm_SyntheticEthernetPortSettingData") $vm_netconf = ($et_settingdata.GetRelated("Msvm_GuestNetworkAdapterConfiguration", "Msvm_SettingDataComponent", $null, $null, "PartComponent", "GroupComponent", $false, $null) | % {$_}) $yesno = Read-Host "Enable DHCP? (y/n[n])" if ($yesno.toLower() -eq "y") { $vm_netconf.DHCPEnabled = $true $vm_netconf.DNSServers = @() } else { $vm_netconf.DHCPEnabled = $false $vm_netconf.IPAddresses = (Read-Host "Specify static ipv4 address") $vm_netconf.Subnets = (Read-Host "Specify subnetmask (exsample: 255.255.255.0)") $vm_netconf.DefaultGateways = (Read-Host "Specify default gateway") $vm_netconf.DNSServers = @((Read-Host "Specify preferred dns server")) -split '\s*,\s*' } $ret = $vsvms.SetGuestNetworkAdapterConfiguration($vmcs.Path, $vm_netconf.GetText(1)) if ($ret.ReturnValue -ne 0) { Write-Host "Error: something went wrong" } .\get-vmnicinfo.ps1 $vmName