Hi.
We are slowly transfering from 6.5U3 to 7.0U3.
vCenter is running 7.0.3Ua and we have currently 2 VMware hosts with ESXi 7.0.3 in a new cluster.
When trying to create a VM with GuestID relating to Win2019 or Win2022 on the new 7.0.3 Vmware hosts, it fails telling me that :
The guest operating system 'windows2019srv_64Guest' is not supported on the host.
Using PowerCli version 12.3 at the moment.
I can successfully manually create a Win2022 or Win2019 VMguest on the same host.
So what am I doing worng?
Hei.
Forgot to update this.
VMware has acknowleded a problem with PowerCLI.
This will be fixed in a future version.
The workaround was to adjust "Edit Default VM Compatibility" to "ESXi 7.0 U2 and later". on the Datacenter og directly on the clustrers.
It was currently set to "ESXi 6.5 and later".
With PowerCLI 12.5 or 12.6 there seems to be no problem
Blog: lucd.info Twitter: @LucD22 Co-author PowerCLI Reference
If you are using HW version 17 or below (which reading above, you are not), you need to use genericMicrosoft Windows Server 2016 or later (64-bit), see KB: https://kb.vmware.com/s/article/59222 Otherwise, try using windows9Server64Guest instead of the above.
Tried on another server where I had new PowerCLI.
Still no luck.
Did you try: "windows9Server64Guest" ?
Yepp. Tried it before.
It only creates a VMguest with Guest OS Microsoft Windows Server 2016, but I need Win2019 and Win2022.
and "windows2019srv_64Guest"?
The same error:
The guest operating system 'windows2019srv_64Guest' is not supported on the host.
Is the host you are trying to deploy in on a cluster with old version hosts mixed in?
Only 2 ESXi7 hosts in that cluster
I think that vCenter somehow limits the deployments until the estate is all version 7, but I might be wrong. Sounds like a "feature" 😞 Sorry I am not more help!
Ciao
Check via powercli, using either host, if the ID you are trying to use is present. The commands to be given are the following:
$viObjVmHost = Get-VMHost -Name "<EsxiHostName>"
$viewObjEnvBrowser = Get-View -Id (Get-View -Id $viObjVmHost.ExtensionData.Parent).EnvironmentBrowser
$vmxVer = ($viewObjEnvBrowser.QueryConfigOptionDescriptor() | Where-Object {$_.DefaultConfigOption}).Key
$osDesc = $viewObjEnvBrowser.QueryConfigOption($vmxVer,$viObjVmHost.ExtensionData.MoRef).GuestOSDescriptor
$osDesc | Select-Object Id
In my case on a 6.7 host the Guest ID you are trying to use is not present, while on a 7.3 host it is present.
He is deploying to a 7 host though 😞
You have absolutely right. It's missing from the hosts.
PS D:\> $viObjVmHost = Get-VMHost -Name $vmhost
$viewObjEnvBrowser = Get-View -Id (Get-View -Id $viObjVmHost.ExtensionData.Parent).EnvironmentBrowser
$vmxVer = ($viewObjEnvBrowser.QueryConfigOptionDescriptor() | Where-Object {$_.DefaultConfigOption}).Key
$osDesc = $viewObjEnvBrowser.QueryConfigOption($vmxVer,$viObjVmHost.ExtensionData.MoRef).GuestOSDescriptor
$osDesc | Select-Object Id
Id
--
windows9Server64Guest
windows8Server64Guest
windows7Server64Guest
winLonghorn64Guest
winLonghornGuest
winNetEnterprise64Guest
winNetEnterpriseGuest
winNetDatacenter64Guest
winNetDatacenterGuest
winNetStandard64Guest
winNetStandardGuest
winNetWebGuest
winNetBusinessGuest
windows9_64Guest
windows9Guest
windows8_64Guest
windows8Guest
windows7_64Guest
windows7Guest
winVista64Guest
winVistaGuest
winXPPro64Guest
winXPProGuest
win2000AdvServGuest
win2000ServGuest
win2000ProGuest
winNTGuest
win98Guest
win95Guest
win31Guest
dosGuest
vmwarePhoton64Guest
rhel7_64Guest
rhel6_64Guest
rhel6Guest
rhel5_64Guest
rhel5Guest
rhel4_64Guest
rhel4Guest
rhel3_64Guest
rhel3Guest
rhel2Guest
sles12_64Guest
sles11_64Guest
sles11Guest
sles10_64Guest
sles10Guest
sles64Guest
slesGuest
centos7_64Guest
centos6_64Guest
centos6Guest
centos64Guest
centosGuest
debian10_64Guest
debian10Guest
debian9_64Guest
debian9Guest
debian8_64Guest
debian8Guest
debian7_64Guest
debian7Guest
debian6_64Guest
debian6Guest
debian5_64Guest
debian5Guest
debian4_64Guest
debian4Guest
opensuse64Guest
opensuseGuest
asianux7_64Guest
asianux4_64Guest
asianux4Guest
asianux3_64Guest
asianux3Guest
fedora64Guest
fedoraGuest
oesGuest
oracleLinux7_64Guest
oracleLinux6_64Guest
oracleLinux6Guest
oracleLinux64Guest
oracleLinuxGuest
ubuntu64Guest
ubuntuGuest
coreos64Guest
other3xLinux64Guest
other3xLinuxGuest
other26xLinux64Guest
other26xLinuxGuest
other24xLinux64Guest
other24xLinuxGuest
otherLinux64Guest
otherLinuxGuest
darwin16_64Guest
darwin15_64Guest
darwin14_64Guest
darwin13_64Guest
darwin12_64Guest
darwin11_64Guest
darwin11Guest
darwin10_64Guest
darwin10Guest
darwin64Guest
darwinGuest
freebsd64Guest
freebsdGuest
os2Guest
netware6Guest
netware5Guest
solaris11_64Guest
solaris10_64Guest
solaris10Guest
solaris9Guest
solaris8Guest
openServer6Guest
openServer5Guest
unixWare7Guest
eComStation2Guest
eComStationGuest
otherGuest64
otherGuest
vmkernel65Guest
vmkernel6Guest
vmkernel5Guest
vmkernelGuest
Why are these missing?
Which ESXi 7.0.3 build do you actually have?
Blog: lucd.info Twitter: @LucD22 Co-author PowerCLI Reference
Btw, not all you ESXi nodes under your vCenter need to have the Windows 2019 guestid available.
I have some ESXi nodes under my vCenter that do not (yet) support Windows 2019, but I can still create VMs on the ESXi nodes that do.
There is no vCenter "feature" I'm afraid.
Check if 2019 is available on some of your ESXi nodes.
Adapted, not just copied, from the same code a previous reply included.
Get-View -ViewType HostSystem -PipelineVariable esx |
ForEach-Object -Process {
$viewObjEnvBrowser = Get-View -Id (Get-View -Id $esx.Parent).EnvironmentBrowser
$vmxver = ($viewObjEnvBrowser.QueryConfigOptionDescriptor() | Where-Object { $_.DefaultConfigOption }).Key
$viewObjEnvBrowser.QueryConfigOption($vmxVer, $esx.MoRef).GuestOSDescriptor |
where{$_.FullName -match "2019"} |
Select @{N='VMHost';E={$esx.Name}},FullName,Id
}
And no, I don't need points, kudos, your sympathy, ... 😁
Blog: lucd.info Twitter: @LucD22 Co-author PowerCLI Reference
That is the same ESXi build I have on some ESXi nodes where I can use the Windows 2019 guestid.
Blog: lucd.info Twitter: @LucD22 Co-author PowerCLI Reference
And what do you get when you lists the available guestID's?
Did you already try leaving out the HardwareVersion parameter while using PowerCLI 12.6?
Blog: lucd.info Twitter: @LucD22 Co-author PowerCLI Reference