【问题标题】:VMWare vSphere Powercli Get-Stat does not work on some hostVMWare vSphere Powercli Get-Stat 在某些主机上不起作用
【发布时间】:2015-06-23 14:58:37
【问题描述】:

我正在尝试对我的 VMWare 主机进行一些容量规划,并希望提取每个主机的 cpu/内存统计信息。

我可以运行这样的命令:

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

【问题讨论】:

  • Get-VMHost -Name "192.168.1.14" | Get-Stat -Memory | ? { $_.metricid -like "mem.usage.average" } 是否输出该统计数据?

标签: powershell powercli esx


【解决方案1】:

我认为您遇到的问题是 Date 对象被传递给 cmdlet Get-Stat。从错误看来,它似乎将日期视为对象?根据documentation 支持-Start-Finish 的输入是“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 来轻松获取字符串。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多