Get Serial numbers for Hosts from PowerCLI
Get-Vmhost vmhostname | Get-View | select @{Name="Serial Number"; Expression={($_.Hardware.SystemInfo.OtherIdentifyingInfo | where {$_.IdentifierType.Key -eq “ServiceTag”}).IdentifierValue}}
$foo =Get-Vmhost vmhostname | Get-View
$foo.Hardware.SystemInfo.OtherIdentifyingInfo | where {$_.IdentifierType.Key -eq “ServiceTag” } | select IdentifierValue
$hostname = Get-View -ViewType HostSystem -property name,Hardware.SystemInfo
foreach ($hname in $hostname)
{
$hn = $hname.name
$Man = $hname.Hardware.SystemInfo.Vendor
$Mod = $hname.Hardware.SystemInfo.Model
$serviceTag = $($hname.Hardware.SystemInfo.OtherIdentifyingInfo | where {$_.IdentifierType.Key -eq “ServiceTag” }).IdentifierValue
$hname | Add-Member -MemberType NoteProperty -Name VMHost -Value $hn
$hname | Add-Member -MemberType NoteProperty -Name OEM -Value $Man
$hname | Add-Member -MemberType NoteProperty -Name Model -Value $Mod
$hname | Add-Member -MemberType NoteProperty -Name ServiceTag -Value $serviceTag
}
$hostname | select VMHost, OEM, Model, ServiceTag
Serial numbers not showing in powercli but display in vCenter Console.
VM Guest Serial numbers Conveniently somebody already created this :)
function Get-VMSerial
{
param([VMware.VimAutomation.ViCore.Impl.V1.Inventory.VirtualMachineImpl]$VirtualMachine)
$s = ($VirtualMachine.ExtensionData.Config.Uuid).Replace("-", "")
$Uuid = "VMware-"
for ($i = 0; $i -lt $s.Length; $i += 2)
{
$Uuid += ("{0:x2}" -f [byte]("0x" + $s.Substring($i, 2)))
if ($Uuid.Length -eq 30) { $Uuid += "-" } else { $Uuid += " " }
}
Write-Output $Uuid.TrimEnd()
}
$VM = Get-VM MyVirtualMachine
Get-VMSerial -VirtualMachine $VM
|