【发布时间】:2016-01-24 06:57:54
【问题描述】:
我无法让 Powershell Foreach 循环输出 [DateTime] 对象,以便在重新启动后将其与另一个对象进行比较。
下面的示例脚本,我希望创建一个哈希表来存储计算机名 + 上次重新启动时间,然后添加当前重新启动时间,以便可以比较重新启动时间。
$servers = GC D:\Scripts\list1.txt
foreach($server in $servers){
Try{
$operatingSystem = Get-WmiObject Win32_OperatingSystem -ComputerName $server
$current = [Management.ManagementDateTimeConverter]::ToDateTime($operatingSystem.LastBootUpTime)
"$server last rebooted $current"
}#end try
Catch{
$err = $_.Exception.GetType().FullName
Write-Warning "$err on $($server)"}#end catch
}#End foreach
-编辑,上面的脚本将下面的内容输出为字符串。我正在尝试获取TypeName: System.DateTime 对象的集合。
Server1 last rebooted 10/24/2015 11:39:34
Server2 last rebooted 10/22/2015 01:34:33
所以我又摸索了一下,得到了这一行,基本上脚本变成了“重新启动计算机,直到一切正常。”
IF($current -gt ((Get-Date).AddHours(-6)))
{"Server reboot is current for $server"}ELSE{"Please check $server"}
【问题讨论】:
-
虽然我确信我们可以通过测试来解决这个问题,但如果您向我们展示出了什么问题以及您希望看到的内容会容易得多。
-
啊,很好,添加了示例。截止日期比镜子中的更近!
-
如果要输出日期时间对象,请不要将其包装在字符串中。
-
当然,那我会有没有服务器可参考的日期和时间。我尝试使用哈希表或 PSCustomObject 进行锻炼的原因。
标签: powershell datetime foreach