Not all vSphere-based VMs are the same! This is especially true with the introduction of vSphere IaaS (formally known as vSphere Supervisor or vSphere with Tanzu or Project Pacific) which includes a modern way of provisioning a traditional/classic VM but also a new VM-based form factor known as vSphere Pod VMs.

There was a recent question internally about how you could you distinguish between traditional/classic VMs built from vSphere UI or API versus the vSphere Pod VMs using PowerCLI and specifically using the default Get-VM cmdlet?
As you can see from the screenshot above, there are a few types of VMs that vSphere can provision and manage from the traditional/classic VMs we all know and love for the past two decades to specialized "Service/Agent" VMs that are managed by various VMware or 3rd party solutions to the new vSphere IaaS VMs and vSphere Pod VMs (which I refer to as Supervisor VM and Supervisor Pod VM).
While the Get-VM cmdlet does not distinguish between the various types, there are various properties that can be used within the vSphere API to help us distinguish between the different types of VMs. I will not bore you with the details, but you see the code snippet I wrote below on how to identify between the different VMs types, which can helpful for automation and/or reporting purposes.
$vms = Get-Vm
$results = @()
foreach ($vm in $vms) {
if($vm.GuestId -eq "crxPod1Guest" -or $vm.GuestId -eq "crxSys1Guest") {
$vmType = "Supervisor Pod VM"
} elseif($vm.ExtensionData.Config.ManagedBy -ne $null) {
switch($vm.ExtensionData.Config.ManagedBy.ExtensionKey) {
"com.vmware.vim.eam" {$vmType = "EAM Managed VM"}
"com.vmware.vcenter.wcp" {$vmType = "Supervisor VM"}
"default" {$vmType = "Other 2nd/3rd Party Managed Classic VM"}
}
} else {
$vmType = "Classic VM"
}
$tmp = [pscustomobject] @{
Name = $vm.Name
Type = $vmType
}
$results+=$tmp
}
$results | FT | Sort-Object -Property Types
Here is an example output from the script for the exact same environment as the vSphere UI screenshot but now you have a way to distinguish between the various types of VMs managed by vSphere.

Thanks for the comment!