虚拟机管理器 - 按运行时间搜索虚拟机

发布于 2024-12-28 14:47:34 字数 171 浏览 1 评论 0原文

我正在使用 Virtual Machine Manager 2008 R2,想知道你们是否知道我如何通过运行时间搜索虚拟机。

我想找到运行时间最长的机器,这样我就可以检查并重新启动任何已经运行超过 6 个月的机器。

也许使用 powershell 可以实现这一点? GUI 内的任何内容都会更好!

I'm using Virtual Machine Manager 2008 R2 and was wondering if any of you know how I might be able to search for virtual machines by running time.

I would like to find the machines that have been up and running the longest, so that I can go through and reboot any that have been up for over 6 months.

Perhaps using powershell this can be accomplished? Anything from within the GUI would be even better!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

浴红衣 2025-01-04 14:47:34

更新:刚刚找到了一种更好、更短的方法:

Get-VM | Where-Object { (Get-VMPerformance -VM $_.Name).UpTime.Days -gt 180 } | Select-Object Name

您可以使用 WMI 从每个虚拟机获取信息。这将为您提供运行超过 6 个月而无需重新启动的所有虚拟机:

$LastBootUpTime = (Get-Date).AddMonths(-6)

Get-VM | Where-Object { Test-Connection -ComputerName $_.Name -Count 1 -Quiet} | Foreach-Object{

    $os = Get-WmiObject Win32_OperatingSystem -ComputerName $_.Name

    if( $os.ConvertToDateTime($os.LastBootUpTime) -lt $LastBootUpTime) { $_ }

} | Select-Object Name

UPDATE: Just found a better, and shorter, way:

Get-VM | Where-Object { (Get-VMPerformance -VM $_.Name).UpTime.Days -gt 180 } | Select-Object Name

You can get the information from each VM with WMI. This will give you all VMs running more than 6 months without a reboot:

$LastBootUpTime = (Get-Date).AddMonths(-6)

Get-VM | Where-Object { Test-Connection -ComputerName $_.Name -Count 1 -Quiet} | Foreach-Object{

    $os = Get-WmiObject Win32_OperatingSystem -ComputerName $_.Name

    if( $os.ConvertToDateTime($os.LastBootUpTime) -lt $LastBootUpTime) { $_ }

} | Select-Object Name
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文