2015-06-23 34 views
0

我正在尝试在我的VMWare主机上执行一些容量规划,并想提取每个主机的CPU /内存统计信息。VMWare vSphere Powercli Get-Stat在某些主机上不起作用

我能够运行一个命令,像这样:

PowerCLI C:\> Get-VMHost -Name "192.168.1.14" |Get-Stat -Stat mem.usage.average -Start (Get-Date).AddDays(-1) -Finish (Get-Date) 

,并显示统计信息。

但后来我选择另一台主机,如192.168.1.15和它不工作,与此错误结尾:

Get-Stat : 2015-06-23 10:56:45 Get-Stat  Object reference not set to an instance of an object. 
At line:1 char:42 
+ Get-VMHost -Name "192.168.1.15" |Get-Stat <<<< -Stat mem.usage.average -Start (Get-Date).AddDays(-1) -Finish (Get-Date) 
    + CategoryInfo   : NotSpecified: (:) [Get-Stat], VimException 
    + FullyQualifiedErrorId : Core_BaseCmdlet_UnknownError,VMware.VimAutomation.ViCore.Cmdlets.Commands.GetViStats 

命令Get-VMHost -Name "192.168.1.15"作品。

任何想法?

PowerCli 5.0.1 
VMWare ESX 5.0 Update 3 
vCenter 5.0.0 Build 1300600 
+0

Get-VMHost -Name“192.168.1.14”| Get-Stat -Memory | ? {$ _。metricid-like“mem.usage.average”}'输出统计信息? –

回答

0

我认为你遇到的问题是Date对象被传递给cmdlet Get-Stat。从错误看来,它将日期视为一个对象?根据支持-Start-Finish的输入的documentation为“dd/mm/yyyy”。

试试这个

Get-Stat -Stat mem.usage.average -Start ((Get-Date).AddDays(-1)).ToString("dd/MM/yyyy") -Finish (Get-Date -Format "dd/mm/yyyy") 

对于-Start我们需要做的日期计算才转换为字符串。 .ToString("dd/MM/yyyy")是这样做的一种方法。由于您今天使用的是-Finish,我们可以使用Get-Date中的-Format来获得没有并发症的字符串。

相关问题