vmware - 事件日期超过 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 天的结果
解决方案
有几个潜在的原因。首先,您似乎实际上并没有将时间限制为 30 天或更长时间。您将所有事件作为一个整体进行处理。第二,vCenter 日志以一定的时间间隔滚动,将它们变成Get-VIEvent
cmdlet 将无法再读取的 zip 文件。这就是日志解析器发挥作用的地方,例如 Log Insight 或 Splunk/SolarWinds/Nagios。
推荐阅读
- r - 使用 dplyr 进行动态过滤
- django - 在django中一个接一个提交两个表单的问题
- return - 机器人框架得到结果
- odoo-13 - 如何在 Odoo 中处理每个销售订单中的采购订单?
- android - 保存当前 ImageView 状态以关闭和重新打开应用程序
- twitter-bootstrap - 在 bs timepicker 上应用自定义 CSS
- javascript - 在写入数据之前,Google 脚本循环检查重复项
- swiftui - SwiftUI 通过另一个视图实例设置状态变量
- java - 如何使用spring数据从firestore中的子集合中获取文档
- api - 从 Microsoft Teams 获取所有消息