需要Powershell语法帮助

时间:2014-06-24 13:35:58

标签: powershell

我有一个Powershell命令,出于自动化目的,在我们的监控系统中,我试图写一行。

基本上,我们会检查多个Hyper-V虚拟机,以确保它们正确复制。我们这样做的方法是检查上次复制日期/时间并将其与当前日期/时间进行比较。这是我检查一台机器的单线程。

(new-timespan -start(get-vm termserv002| Measure-VMReplication | select -expand lastreplicationtime)).totalminutes

这完美无缺。但是,我们要检查此Hyper-V盒上的所有VM。我可以通过运行此命令 -

来运行new-timespan而不执行此操作
get-vm | where {$_.replicationstate -ne "Disabled"} | Measure-VMReplication | select vmname, lastreplicationtime

这为我提供了包装盒上的每个VM及其上次复制时间。

最终,我想要输出的是VMName和LastReplicationTime,以分钟为单位,从当前日期/时间开始。如果我可以在一条线上做到这一点,本垒打!

有什么建议吗?无论我如何尝试将两者融合在一起,我似乎无法正确理解语法(或者它不可能。)

1 个答案:

答案 0 :(得分:2)

我无法测试,但尝试一下:

get-vm | where {$_.replicationstate -ne "Disabled"} | Measure-VMReplication |
    select vmname, @{n="LastReplicationTime";e={ (new-timespan -start ($_.lastreplicationtime) -end (get-date)).TotalMinutes }}