首页 > 解决方案 > 事件日期超过 30 天的已关闭虚拟机列表

问题描述

我正在尝试编写一个脚本以使VM 关闭日期和时间超过 30 天(自 Vsphere 设置以来的所有时间),我开始知道它们只有在我解析最新的 vmware.log 关闭电源并检查时才可用其中的最后一个字符串日期。

我有一个包含在这个脚本下面的脚本,它只给了我过去 30 天的输出

```
$VMs = get-vm | Where powerstate -eq "poweredoff"


Get-VIEvent -Entity $VMs -MaxSamples ([int]::MaxValue) |

where {$_ -is [VMware.Vim.VmPoweredOffEvent]} |

Group-Object -Property {$_.Vm.Name} | %{

  $lastPO = $_.Group | Sort-Object -Property CreatedTime -Descending | Select -First 1

  $vm = Get-VIObjectByVIView -MORef $_.Group[0].VM.VM

  $cloumn = '' | select VMName,Powerstate,PowerOFF

```

在 vmware 日志文件的帮助下,我希望结果超过 30 天,目前我得到了 30 天的结果

标签: vmwarevspherepowercli

解决方案


有几个潜在的原因。首先,您似乎实际上并没有将时间限制为 30 天或更长时间。您将所有事件作为一个整体进行处理。第二,vCenter 日志以一定的时间间隔滚动,将它们变成Get-VIEventcmdlet 将无法再读取的 zip 文件。这就是日志解析器发挥作用的地方,例如 Log Insight 或 Splunk/SolarWinds/Nagios。


推荐阅读