VMWare vSphere Powercli Get-Stat не работает на некоторых хостах

Я пытаюсь выполнить некоторое планирование емкости на моем хосте VMWare и хотел бы извлечь статистику процессора/памяти для каждого хоста.

Я могу запустить такую ​​​​команду:

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

person Yannick Bergeron    schedule 23.06.2015    source источник
comment
Выводит ли Get-VMHost -Name "192.168.1.14" | Get-Stat -Memory | ? { $_.metricid -like "mem.usage.average" } эту статистику?   -  person Etan Reisner    schedule 23.06.2015


Ответы (1)


Я думаю, что проблема, с которой вы столкнулись, заключается в том, что объект Date передается командлету Get-Stat. Из ошибки кажется, что дата обрабатывается как объект? Согласно документации, поддерживающей входные данные для -Start а -Finish — «дд/мм/гггг».

Попробуйте это вместо

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, мы можем просто использовать -Format из Get-Date, чтобы получить строку без осложнений.

person Matt    schedule 23.06.2015