您的位置:首页 > 运维架构 > Shell

PowerCLI5.0与vSphere Client下获取的虚拟机信息对比差异

2011-11-10 12:00 387 查看
最近在写一个用于自动化修改vmx参数的脚本,发现有些问题,特意做了一些研究,发现用PowerCLI5.0获取的虚拟机信息和在vSphere Client下获取的信息是有所区别的,这可能与VMware Tools的安装与否、是否过期有关。

先来看看环境:

vCenter Server 5.0

PowerCLI5.0

PowerShell 1.0 (Windows Server 2008 R2 自带版本)

ESX 4.1 服务器27个

虚拟机187个,包括Win7、XP、2003、2008、Linux等混杂。

所用脚本:

此脚本用来获得虚拟机的操作系统名称

$vm=Get-Cluster –Name Test -Farm01| Get-VM | Select-Object @{Name="VM Display Name"; Expression={$_.name}},@{Name="OS"; Expression={$_.guest.osfullname}}

$vm | Export-Csv c:\temp\test.csv


vSphere Client:





选中集群,到虚拟机列表页面,导出所有该集群下的虚拟机到HTML文件。

分别把以上的CSV和HTML文件导入一个EXCEL表格,经查看两者获得的虚拟机数量是一致的,由此证明PowerCLI和vSphere Client各自都是正常的。

经对比发现

CSV中有

19个虚拟机操作系统名称为空,但这19个虚拟机在vSphere Client中11个可看到操作系统名称,8个为Unknown。该19个虚拟机的VMware Tools均未安装。

由此可见,VMware Tools是否安装会影响到PowerCLI的执行情况。

但是有另外一个奇怪的问题还是搞不清楚。

在另外一个ESXi5.0的集群中,创建了6个虚拟机并在创建时手工指定了操作系统类型,让这些虚拟机处于开机状态但不安装任何操作系统,再次运行以上脚本。

我发现昨天脚本的输出显示没有抓到任何一台的操作系统类型,但是今天再次运行竟然有一台抓到了操作系统类型。昨天到今天唯一的区别是我重启了一次vCenter Server服务。

有人知道是怎么回事儿吗?

昨天的运行结果:





今天的运行结果:



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息