我有一个Powershell命令,出于自动化目的,我们在监视系统中尝试将其写成一行。
基本上,我们正在检查多个Hyper-V虚拟机,以确保它们正确复制。我们这样做的方法是检查上一个复制日期/时间,并将其与当前日期/时间进行比较。这是我检查一台机器的单线纸。
(new-timespan -start(get-vm termserv002| Measure-VMReplication | select -expand lastreplicationtime)).totalminutes
这很完美。但是,我们要选中此Hyper-V框中的所有VM。我可以通过运行以下命令来执行此操作,而无需运行新时间-
get-vm | where {$_.replicationstate -ne "Disabled"} | Measure-VMReplication | select vmname, lastreplicationtime
这为我提供了包装盒上的每个VM及其上次复制时间。
最终,我想要输出的是从当前日期/时间开始的以分钟为单位的VMName和LastReplicationTime。如果我能做到这一点,本垒打!
有什么建议么?无论我如何尝试将两者融合在一起,我似乎都无法正确理解语法(或者不可能)。
我无法测试,但可以尝试一下:
get-vm | where {$_.replicationstate -ne "Disabled"} | Measure-VMReplication |
select vmname, @{n="LastReplicationTime";e={ (new-timespan -start ($_.lastreplicationtime) -end (get-date)).TotalMinutes }}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句