如何使用PowerCLI获取VMware ESXi主机的DELL服务标签?
获取VMware 6.7物理主机的DELL服务标签(PowerShell CLI方案)
针对你遇到的问题——常规PowerShell命令无法获取戴尔物理ESXi主机的服务标签,这里提供两个可行的PowerCLI解决方案:
方案1:通过VMware PowerCLI读取主机OEM信息
戴尔服务标签通常存储在ESXi主机的OEM字符串中,可直接通过Get-VMHost的硬件属性提取:
# 连接到vCenter或目标ESXi主机 Connect-VIServer -Server 你的vCenter或ESXi地址 -User 用户名 -Password 密码 # 获取指定主机的服务标签 $targetHost = Get-VMHost -Name vmhostesxi01 $dellServiceTag = ($targetHost.Hardware.SystemInfo.OemStrings | Where-Object { $_ -match 'Service Tag:' }).Split(':')[-1].Trim() # 输出结果 Write-Host "目标主机DELL服务标签: $dellServiceTag"
方案2:通过CIM查询直接读取硬件信息
如果方案1无法获取,可通过CIM接口调用戴尔硬件管理对象(需ESXi主机开启CIM服务):
# 创建CIM会话连接到ESXi主机 $cimCred = Get-Credential -Message "输入ESXi主机管理员账号" $cimSession = New-CimSession -ComputerName vmhostesxi01 -Credential $cimCred # 查询服务标签 $serviceTag = (Get-CimInstance -CimSession $cimSession -ClassName DCIM_SystemView -Namespace root/dcim).ServiceTag # 清理会话并输出 Remove-CimSession $cimSession Write-Host "目标主机DELL服务标签: $serviceTag"
批量生成每周报告脚本
如果需要批量获取多台主机并导出报告,可使用以下脚本:
# 连接vCenter Connect-VIServer -Server 你的vCenter地址 -User 用户名 -Password 密码 # 筛选已连接的物理主机 $allHosts = Get-VMHost | Where-Object { $_.ConnectionState -eq 'Connected' } # 循环获取服务标签并生成报告 $reportData = foreach ($host in $allHosts) { $serviceTag = ($host.Hardware.SystemInfo.OemStrings | Where-Object { $_ -match 'Service Tag:' }).Split(':')[-1].Trim() [PSCustomObject]@{ 主机名称 = $host.Name DELL服务标签 = if ($serviceTag) { $serviceTag } else { "未获取到" } 主机状态 = $host.ConnectionState } } # 导出为CSV报告 $reportData | Export-Csv -Path "每周ESXi主机服务标签报告_$(Get-Date -Format 'yyyyMMdd').csv" -Encoding UTF8 -NoTypeInformation # 断开vCenter连接 Disconnect-VIServer -Confirm:$false
注意事项
- 确保使用的PowerCLI版本兼容VMware 6.7(推荐PowerCLI 11.x版本)
- 方案1仅需VMHost的读取权限,方案2需要ESXi主机的管理员权限,且ESXi上的
sfcbd-watchdog服务需处于运行状态 - 若OEM字符串中无"Service Tag:"字段,可尝试匹配"Asset Tag:"或其他戴尔标识字段
内容的提问来源于stack exchange,提问作者work.acct0929
相关产品推荐
相关产品推荐

