【问题标题】:Powercli Find Powered Off VM and shutdown datePowercli 查找已关机的虚拟机和关机日期
【发布时间】:2018-10-08 13:51:55
【问题描述】:

我有一个通用脚本,可以显示单个主机上所有已关闭的虚拟机。我想以此为基础,让它告诉我它关闭的日期,以便我们知道它关闭了多长时间。下面是我正在使用的脚本,它显示我关闭了单个主机上的虚拟机:

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

我可以轻松添加多个以逗号分隔的主机,并为列出的这些主机关闭所有已关闭的虚拟机。

另外,如果有人知道我有一种方法可以绕过一次执行这台主机并让它检查我的 vCenter 中的所有主机,那将是很棒的

提前致谢:)

【问题讨论】:

  • 所有这些主机都是 vcenter 的一部分还是独立的?
  • connect-viserver 到您的 vCenter,get-vm 将返回所有注册到它的主机的虚拟机。
  • 它们都是单个 vcenter 的一部分
  • 我现在将脚本设置为从我的 vcenter 中拉出所有已关闭的服务器并将其导出到 csv,我只需要它显示何时关闭
  • get-vm | ?{$_.PowerState -eq "PoweredOff"} |导出-CSV C:\temp\off.csv

标签: powershell virtual-machine vmware powercli vcenter


【解决方案1】:

我认为他们断电时没有财产记录。您必须阅读每个 VM 的 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 
    }}

但这只有在日志回溯到足以记录关机/关机事件时才有效,如果它发生在日志清除时间之后,你可能会不走运。

注意。我不确定'shutdown|powered off' 是否会收到所有相关消息,它应该涵盖"Initiate guest OS shutdown""{VM} on {host} in {site} is powered off" 日志。

【讨论】:

  • 当然,从客人内部发起的关闭根本不会记录在虚拟机事件历史记录中。
猜你喜欢
  • 1970-01-01
  • 2015-05-02
  • 1970-01-01
  • 1970-01-01
  • 2019-02-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多