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

Powershell Virtual Machine Manager-按运行时间搜索虚拟机,powershell,virtual-machine,hyper-v,Powershell,Virtual Machine,Hyper V,我正在使用Virtual Machine Manager 2008 R2,不知道你们中是否有人知道如何通过运行时间搜索虚拟机 我想找到那些运行时间最长的机器,这样我就可以检查并重新启动任何已经运行了6个月以上的机器 也许使用powershell可以实现这一点?GUI中的任何东西都会更好 更新:刚刚找到了一种更好、更短的方法: Get-VM | Where-Object { (Get-VMPerformance -VM $_.Name).UpTime.Days -gt 180 } | Select

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

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


也许使用powershell可以实现这一点?GUI中的任何东西都会更好

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

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

谢谢,但是我以前从未运行过WMI脚本。我是否使用wmic来运行此操作?还是将其链接到.vbs文件中?我正在从Windows7机器远程管理这些虚拟机,如果有帮助的话?谢谢。在VMM中,单击PowerShell按钮(在主菜单下),等待PowerShell打开,然后将脚本粘贴到其中并按Enter键执行它。