web-dev-qa-db-ja.com

Windowsが最後に再起動されたのはどうすればわかりますか?

Windows 7を実行しているコンピューターが最後に再起動された日時を知る方法はありますか。

私は、イベントログを検索することを伴わない解決策を好むが、wmicまたはおそらくcmdコマンドのようなものを好む。

104
Royi Namir

systeminfoコマンドは、あなたが必要としているものとほぼ同じです。英語版のWindows 7では、次のこともできます。

systeminfo | find /i "Boot Time"

またはWMICの助けを借りて:

wmic os get lastbootuptime

Windows 7とWindows XPの主な違いは、Windows 7 Microsoftでは前回の起動時間のみを表示できることです。


タスクマネージャでも:

enter image description here

163
m0nhawk

これを行うもう1つの方法は、Windows XPとWindows 7の両方で機能する次のコマンドラインを使用することです。

net statistics workstation

日付をフォーマットしている間はsysteminfoよりも速いという利点があります(wmicはしていません)。あなたが実際にコンピュータのデバッグにこのコマンドを使っているなら、役に立つかもしれない他のいくつかの情報も得ます(あなたがcmdを特に求めているので、私はあなたがプログラム的にこれをしていないと仮定します)。

net statisticsコマンドの詳細については、こちらを参照してください。 http://technet.Microsoft.com/ja-jp/library/bb490714.aspx

結果の例を次に示します(Windows 7 Pro SP1 x64のフランス語版を使用している場合、ユーザー言語はコマンドラインにはあまり関係ありません)。

example

(コンピュータ名は意図的にぼやけています)


システムの稼働時間を決定する際の正確さについては、 http://en.wikipedia.org/wiki/Uptime を参照してください。


重要な注意:このメソッドは、コンピュータの起動時間ではなく、最後に起動した日時を決定します。あなたが睡眠/休止状態を使うならば、2つの数は異なります。

24
dnLL

Win32_OperatingSystemクラスのLastBootUpTimeプロパティがあります。このコマンドでWMICを使用できます。

wmic os get lastbootuptime

あるいは、Powershellを使用している場合は、時間を煩わしいWMIの日時形式より読みやすい形式に変換できます。

Get-WmiObject -class Win32_OperatingSystem | Select-Object  __SERVER,@{label='LastBootUpTime';expression={$_.ConvertToDateTime($_.LastBootUpTime)}}

PowerShellの今後のバージョンでは、Get-CimInstanceを使用することもできます。これは自動的に値を日時として返します。

Get-CimInstance -Class Win32_OperatingSystem | Select-Object LastBootUpTime

唯一の不愉快なことは、Get-CimInstanceがWMIオブジェクトの一部のシステムフィールドの名前を変更することがあることです。 CSNamePSComputerNameのどちらかを使わなければならないでしょう。

18
Bacon Bits

そこにWindows 10のユーザーのために....

System Properties Windows 10 - Performance Up time

8
Jonathan Tepper

Alex が指摘したように、/sleepstudyコマンドはWindows 8.1まで追加されていませんでした。 / systempowerreport が代わりに動作するかもしれません。

例えばイベントログを検索すると常にいくつかのエントリが欠けているように、これらの他の答えのうちのいくつかは私にはうまくいきませんでした。 @ Floriszの答えもその点で正しいです。これが私の解決策です:

管理者cmdシェルで、次のコマンドを実行します。

powercfg /sleepstudy /output sleepstudy.html

次にブラウザでsleepstudy.htmlファイルを開きます。最後の3日間から、シャットダウン/再起動/スタンバイ/休止状態に関する驚くほど整理された統計情報が表示されます。 (必要ならば定期的に実行してください)

出力例:(AFAIR、Showdown (Hybrid)は高速起動を意味します)

enter image description here

出典/ドキュメント | また関連しています

3
confetti

Windows 7では私が好む

net statistics workstation

WMICは睡眠時間を考慮に入れていません、そして私は私のワークステーションを平日の就寝中にロックしたままにしておき、翌日に起きる準備をします。

2
tbc0

wmicでブート時間を取得するためのバッチファイル内の、しかし人間が読める形式の、さらに別の方法です。

for /f %%a in ('WMIC OS GET lastbootuptime ^| find "."') DO set DTS=%%a
set BOOTTIME=%DTS:~0,4%-%DTS:~4,2%-%DTS:~6,2%  %DTS:~8,2%:%DTS:~10,2%
echo DTS      : %DTS%
echo BOOTTIME :%BOOTTIME%

出力:

DTS:20170308073729.491206 + 060

ブートタイム:2017-03-08 07:37

2
Max

PowerShellで入手するには:

Function Get-LastBoot {
        if ($Host.Version.Major -lt 3) {
            Get-WmiObject win32_operatingsystem | Select-Object CSname, @{n = 'LastBootUpTime'; e = {$_.ConverttoDateTime($_.lastbootuptime)}}
        }
        else {
            Get-CimInstance -ClassName win32_operatingsystem | Select-Object CSname, LastBootUpTime
        }
    }

これが結果です。

CSname  LastBootUpTime
------  --------------
LAPTOP1 2018-09-07 08:57:02
1
PollusB

2、3の回答でnet statistics workstationが言及されていますが、両方とも次のように述べています。

net statistics server

そして

net statistics workstation

最後の起動に関するデータをStatistics since ...行に入力してください。

ただし、serverを使用すると、一部のOSバージョン(Svr 2008/6.0など)は日付に1/1/1980 12:00を返します。だから私はデフォルトでworkstationにします。

net stats workstationのようなコマンドの一部を省略しても同じ結果が得られます。最後に、システムからシステムへジャンプした場合、デフォルトのCMDボックスは、コマンドからのすべての結果を表示するのに十分な大きさではありません。そのため、起動時間を確認するためにスクロールアップしないように、出力をmoreにパイプ処理します。したがって、私のデフォルトのコマンドは次のとおりです。

net stats workstation | more

command

1
ictm

ほぼすべてのバージョンのウィンドウで、スワップファイルのタイムスタンプを確認できます。

dir/a:h c:\ pagefile.sys

1
Chuck

「再起動」または「再起動」が行われたときに、これらすべてのコマンドが実際にあなたにタイムスタンプを与えることを付け加えたいと思います。シャットダウンや起動が完了したときではありません。シャットダウンして起動した後の 'lastbootuptime'は、システムが実際に '再起動'された時間であり、実際の起動時間ではありません。そのため、shutdown/startは、LastBootUpTimeタイムスタンプについてsuspend/hybernnateから戻ってきたのと同じ結果になります。

1
Florisz

同様のServerFaultの質問 から、WindowsシステムイベントログでイベントID 6009を検索/フィルタリングします。

Windows 10の場合:Event Viewer > Windows Logs > System、次にFilter Current Log...アクション。

1
palswim

これにはPowerShellを使用できます。

シャットダウン


Get-WinEvent -LogName Microsoft-Windows-Diagnostics-Performance/Operational | Where { $_.Id -eq 200 }

これはログに記録されたシャットダウン時間のリストをあなたに与えるでしょう。

リモート接続に最適化された代替コマンド。

Get-WinEvent -FilterHashtable @{LogName = "Microsoft-Windows-Diagnostics-Performance/Operational"; Id = 200; }

出力例

TimeCreated                     Id LevelDisplayName Message
-----------                     -- ---------------- -------
2017-01-28 18:25:46            200 Critical         Windows has shutdown
2016-11-01 19:55:21            200 Error            Windows has shutdown
2016-10-29 00:18:38            200 Critical         Windows has shutdown
2016-10-26 23:16:55            200 Warning          Windows has shutdown
2016-10-26 15:37:40            200 Warning          Windows has shutdown
2016-10-26 02:18:24            200 Warning          Windows has shutdown
2016-10-26 02:10:34            200 Warning          Windows has shutdown
2016-10-26 02:04:01            200 Warning          Windows has shutdown
2016-10-25 14:23:11            200 Warning          Windows has shutdown
2016-10-25 13:07:46            200 Error            Windows has shutdown
2016-10-25 00:18:12            200 Error            Windows has shutdown
2016-10-19 13:16:39            200 Critical         Windows has shutdown

起動


次のコマンドはログに記録された起動時間のリストを表示します。

Get-WinEvent -LogName Microsoft-Windows-Diagnostics-Performance/Operational | Where { $_.Id -eq 100}

リモート接続に最適化された代替コマンド。

Get-WinEvent -FilterHashtable @{LogName = "Microsoft-Windows-Diagnostics-Performance/Operational"; Id = 100; }

出力例

TimeCreated                     Id LevelDisplayName Message
-----------                     -- ---------------- -------
2017-10-07 21:35:38            100 Critical         Windows has started up
2017-01-28 18:25:48            100 Critical         Windows has started up
2016-12-11 17:45:07            100 Critical         Windows has started up
2016-11-16 13:26:52            100 Critical         Windows has started up
2016-11-01 19:55:21            100 Critical         Windows has started up
2016-10-29 00:18:39            100 Critical         Windows has started up
2016-10-26 23:16:55            100 Error            Windows has started up
2016-10-26 14:51:07            100 Error            Windows has started up
2016-10-26 02:24:01            100 Error            Windows has started up
2016-10-26 02:18:24            100 Critical         Windows has started up
2016-10-26 02:10:34            100 Error            Windows has started up
2016-10-26 02:04:01            100 Critical         Windows has started up
2016-10-25 14:23:12            100 Error            Windows has started up
2016-10-25 13:07:47            100 Error            Windows has started up
2016-10-25 12:56:23            100 Error            Windows has started up
2016-10-19 13:16:39            100 Critical         Windows has started up

私はこれをPowerShell 5.1とWindows 10.0.15063でテストしました。しかし、PowerShell 3.0以上であれば、Windows 7でも動作するはずです。 adminとして実行する必要があることに注意してください。

あなたはここでコマンドの完全なドキュメンテーションを見つけるでしょう: docs.Microsoft.com

1
Samir

最大回答と同じ...

for /f %%a in ('WMIC OS GET lastbootuptime ^| find "."') DO set DTS=%%a
set BOOTTIME=%DTS:~0,4%-%DTS:~4,2%-%DTS:~6,2%  %DTS:~8,2%:%DTS:~10,2%
echo DTS      : %DTS%
echo BOOTTIME :%BOOTTIME%

...しかしonelinerでは:

for /f %a in ('WMIC OS GET lastbootuptime ^| find "."') DO set DTS=%a && echo %DTS:~0,4%-%DTS:~4,2%-%DTS:~6,2% %DTS:~8,2%:%DTS:~10,2%

このwmiの実装は少し面倒に見えるかもしれませんが、他のpowershellやsysteminfoの実装と比べて非常に高速で、コード内で明示的になっているので簡単にフォーマットを変更できます。

ありがとうございます。

0
Loïc