Virtual Machine Manager - 按运行时间搜索虚拟机

时间:2012-01-23 14:12:17

标签: powershell virtual-machine hyper-v

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

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

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

1 个答案:

答案 0 :(得分:1)

更新:刚刚找到了更好,更短的方式:

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

您可以使用WMI从每个VM获取信息。这将使您运行超过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