我无法获取Powershell Foreach
循环来输出[DateTime]
对象,因此我可以在重新启动后将其与其他对象进行比较。
下面的示例脚本,我想创建一个哈希表来存储Computername +上次重启时间,然后添加当前的重启时间,以便可以比较重启时间。
$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
-Edit,上面的脚本将以下字符串输出。我正在尝试获取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"}
答案 0 :(得分:1)
我之所以尝试使用哈希表或PSCustomObject。
不能两者兼得!
let now = NSDate() // gettime
let calendar = NSCalendar.autoupdatingCurrentCalendar()
// If you want to know the hour in a particular time zone, set it here.
// For example, to get the time in Japan:
// calendar.timeZone = NSTimeZone(name: "Asia/Tokyo")!
// By default, the calendar uses the system time zone setting.
let hour = calendar.component(NSCalendarUnit.Hour, fromDate: now)
if hour == 23 {
print("It is the appointed hour.")
}
更改循环结构,因为如果需要,输出更容易通过管道传输。为每个循环传递构建一个哈希表,该传递在try / catch块之后转换为一个对象。未经测试但应该工作。