Powercli Find Powered Off VM и дата выключения - PullRequest
0 голосов
/ 27 апреля 2018

У меня есть общий сценарий, который покажет мне все отключенные виртуальные машины на отдельном хосте. Я хотел бы развить это и показать, на какую дату он был выключен, чтобы мы знали, как долго он был выключен. Ниже приведен скрипт, который я использую, который показывает, что я отключил виртуальные машины на единственном хосте:

get-vm -location host.domain.com | ? {$ _. PowerState -eq "PoweredOff"}

Я могу легко добавить несколько хостов, разделенных запятой, и отключить все виртуальные машины для перечисленных хостов.

Кроме того, если кто-нибудь знает, как я могу обойтись без использования этого одного хоста за раз и попросить его проверить все хосты в моем vcenter, что было бы замечательно

Заранее спасибо:)

1 Ответ

0 голосов
/ 28 апреля 2018

Я не думаю, что есть запись свойства, когда они были выключены. Вам придется читать журнал задач и событий VMware для каждой виртуальной машины, искать сообщения о выключении или отключении питания и выбирать самые последние сообщения.

Get-VM | 
    Where-Object -Property PowerState -eq 'PoweredOff' | 
    Select-Object -Property Name, @{Label='poweredOffTime'; Expression={
        $_ | Get-VIEvent -Types Info | 
            Where-Object -Property fullformattedmessage -Match 'shutdown|powered off' | 
            Sort-Object -Property CreatedTime | 
            Select-Object -Last 1 -ExpandProperty CreatedTime 
    }}

Но это будет работать только в том случае, если журналы возвращаются достаточно далеко для записи событий выключения / выключения, если это произошло после истечения времени очистки журнала, возможно, вам не повезло.

NB. Я не уверен, что 'shutdown|powered off' будет получать все связанные сообщения, оно должно охватывать "Initiate guest OS shutdown" и "{VM} on {host} in {site} is powered off" журналы.

...