Windowsのイベントログで起動に要した時間を記録しているようですので、PowerShellで参照するスクリプトを作ってみました。
実行するにあたって
PowerShellを「管理者として実行」で起動すること。
スクリプト
#
# Windowsの起動にかかった時間を表示するスクリプト
#
$time_created = (Get-WinEvent -Logname Microsoft-Windows-Diagnostics-Performance/Operational | ? {
$_.Id -eq 100
} | Measure-Object -Property TimeCreated -Maximum).Maximum
$rec = Get-WinEvent -Logname Microsoft-Windows-Diagnostics-Performance/Operational | ? {
($_.Id -eq 100) -and ($_.TimeCreated -eq $time_created)
}
$msg = ""
if ($rec.Message -match "ブート所要時間\s+:\s+(\d+)\s") {
$sec = ([int]($Matches[1])) / 1000
$msg = "直近のブート時刻は${time_created}で所要時間は${sec}秒でした。"
}
$res = Get-WinEvent -Logname Microsoft-Windows-Diagnostics-Performance/Operational | ? {
$_.Id -eq 100
} | Select-Object $_ -Last 5 | % {
if ($_.Message -match "ブート所要時間\s+:\s+(\d+)\s") {
([int]($Matches[1]))
} else {
$null
}
} | Measure-Object -Maximum -Minimum -Average
$cnt = $res.Count
$avg = $res.Average / 1000
$max = $res.Maximum / 1000
$min = $res.Minimum / 1000
$msg += "`r`nブート所要時間をサンプル数${cnt}件調査した所"
$msg += "`r`n最速:${min}秒"
$msg += "`r`n最遅:${max}秒"
$msg += "`r`n平均:${avg}秒"
$msg += "`r`nという結果になりました。"
echo $msg
結果
直近のブート時刻は04/21/2019 02:12:42で所要時間は32.889秒でした。
ブート所要時間をサンプル数5件調査した所
最速:32.889秒
最遅:82.422秒
平均:48.276秒
という結果になりました。
コメント