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

 最近在写一个用于自动化修改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等混杂。

 

所用脚本:

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

   
   
   
   
  1. $vm=Get-Cluster –Name Test -Farm01| Get-VM | Select-Object @{Name="VM Display Name"; Expression={$_.name}},@{Name="OS"; Expression={$_.guest.osfullname}} 
  2.  
  3. $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服务。

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

昨天的运行结果:

今天的运行结果:

 

 

你可能感兴趣的:(vmware,powershell,esxi,esx,PowerCLI)