サーバーは PC と違って 24 時間稼働するものですが、多くの企業では定期的に再起動していることと思います。
再起動する主な目的は、「メモリリークによるメモリ枯渇の予防」でしょうか。
あるいは、定期的に更新プログラムを適用しているために、その結果として再起動もしているケースも多いと思われます。
|
|
さて、「今稼働しているそのサーバーは、いつ起動したのか?」が気になった場合、" Systeminfo " コマンドを打てば簡単に判ります。
実行結果として多くの項目が表示されますが、その中の「システムの起動時間:」に年月日と時刻が表示されます。
あえて Powershell を使う場合は、以下のコマンドレットを実行します。
Get-WmiObject Win32_OperatingSystem | Select-Object -Property LastBootupTime
年月日からコンマ以下の秒まで、区切り無く表示されるので少々見づらいのですが。
では、「最後にシャットダウンした時刻」を正確に知りたい場合はどうしたらよいのでしょうか。
それが分かるコマンドは特に無いようなので、イベントログの「システム」から、PowerShell を使ってシャットダウン操作の直近のイベントを検索することにしました。
(イベントが古過ぎて、すでに上書きされている場合は分かりません。)
探すイベントは「ソース : User32 , イベントID : 1074」です。
PowerShell 1.0 でも使えるよう、Get-WinEvent ではなく Get-EventLog を使って書いてみました。
(Windows Vista SP2 と Windows Server 2016 TP3 で、管理者権限が無くとも実行できることを確認しています。)
Get-Eventlog -LogName System | Where-Object {$_.Source -eq "User32" -and $_.EventId -eq "1074"} | Select-Object -Property TimeWritten -First 1