Bagaimana saya bisa mengetahui kapan Windows terakhir restart?

105

Bagaimana saya bisa tahu kapan komputer saya yang menjalankan Windows 7 dihidupkan ulang terakhir kali?

Saya lebih suka solusi yang tidak melibatkan pencarian log peristiwa, tetapi sesuatu seperti wmicatau mungkin cmdperintah.

Royi Namir
sumber

Jawaban:

164

systeminfoperintah hampir benar apa yang Anda butuhkan. Pada Bahasa Inggris Windows 7 Anda juga dapat melakukan:

systeminfo | find /i "Boot Time"

Atau dengan bantuan WMIC :

wmic os get lastbootuptime

Perbedaan utama antara Windows 7 dan Windows XP yang di Windows 7 Microsoft hanya dapat menunjukkan waktu boot up terakhir.


Juga di Task Manager:

masukkan deskripsi gambar di sini

m0nhawk
sumber
Juga, apakah ada daftar akumulatif ulang lalu s ?
Royi Namir
2
@RoyiNamir: Dengan beberapa daftar reboot Googling (terlihat sangat mirip):Get-EventLog -LogName System | where { ($_.InstanceId -bAnd 0xFFFF) -eq 6006 }
m0nhawk
Apakah PowerShell .....?
Royi Namir
3
Sadarilah bahwa systeminfoitu dilokalkan. Jadi "Boot Time"hanya berlaku untuk versi bahasa Inggris Windows.
Markus Mitterauer
1
systeminfo | find /i "Systemstartzeit"untuk jerman
schoetbi
24

Salah satu cara lain untuk melakukan ini adalah dengan menggunakan baris perintah berikut yang berfungsi baik di Windows XP dan Windows 7:

net statistics workstation

Ini memiliki keuntungan lebih cepat daripada systeminfoalternatif saat memformat tanggal (yang wmictidak). Anda juga mendapatkan beberapa informasi lain yang dapat berguna jika Anda benar-benar menggunakan perintah ini untuk men-debug komputer (karena Anda secara spesifik meminta cmd, saya berasumsi Anda tidak melakukan ini secara terprogram).

Anda dapat menemukan informasi lebih lanjut tentang net statisticsperintah di sini: http://technet.microsoft.com/en-us/library/bb490714.aspx

Berikut ini adalah contoh hasilnya (menggunakan salinan Perancis Windows 7 Pro SP1 x64, bahasa pengguna tidak terlalu penting untuk baris perintah):

contoh

(nama komputer sengaja dikaburkan)


Lebih detail tentang http://en.wikipedia.org/wiki/Uptime tentang ketepatan saat menentukan waktu aktif sistem.


Catatan penting : metode ini menentukan kapan komputer terakhir kali di-boot, bukan uptime-nya. 2 angka akan berbeda jika Anda menggunakan sleep / hibernate.

dnLL
sumber
tahu mengapa ini tidak membaca sama dengan menggunakan systeminfo atau wmic ... itu mungkin diabaikan, tetapi berbeda pada sistem saya lebih dari 2 menit
Anthony Shaw
Itu berbeda untuk aobut 40 detik di komputer saya juga. Saya tidak tahu mengapa itu tidak persis sama, saya kira layanan hanya melakukan booting sedikit kemudian. Beberapa info menarik di en.wikipedia.org/wiki/Uptime
dnLL
2
Ini berbeda dengan lebih dari sembilan bulan pada saya :-) Ini adalah satu-satunya jawaban yang benar. Ini memberikan datestamp aktual dari boot terakhir (atau ketika layanan terkait apa pun dimulai setelah boot, sangat dekat dengan itu), sedangkan wmic, Task Manager, dan systeminfosemua tampaknya menghitung mundur dari waktu saat ini dengan jumlah kutu PC telah berlari. Tetapi jika Anda sering mematikan komputer (atau hibernasi), seperti yang saya lakukan, total waktu menjalankan sebenarnya jauh lebih sedikit daripada waktu sejak boot terakhir (hanya tiga puluh hari dalam kasus saya selama beberapa bulan terakhir), membuang perhitungan itu sepenuhnya.
Cameron
Terima kasih @cameron, saya menambahkan catatan di akhir jawaban saya. Pertanyaan aslinya adalah benar-benar tentang kapan komputer mulai dan tidak uptime, jadi itu adalah detail penting. Wikipedia agak menyebutkan perbedaan dalam artikel uptime yang saya tautkan.
dnLL
Itu bukan waktu "boot" terakhir - ini adalah waktu dimulainya layanan Server atau Workstation, tergantung mana yang Anda cari statistiknya. Karena ini tidak pernah berhenti selama sesi Windows biasa, ini merupakan perkiraan waktu boot terakhir yang nyaman.
oldmud0
18

Itu LastBootUpTimemilik Win32_OperatingSystemkelas. Anda dapat menggunakan WMIC dengan perintah ini:

wmic os get lastbootuptime

Atau jika Anda menggunakan Powershell, Anda dapat mengonversi waktu menjadi sesuatu yang lebih mudah dibaca daripada format waktu data WMI yang mengganggu:

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

Perhatikan bahwa di versi PowerShell nanti, Anda juga bisa menggunakan Get-CimInstance, yang secara otomatis akan mengembalikan nilai sebagai waktu:

Get-CimInstance -Class Win32_OperatingSystem | Select-Object LastBootUpTime

Satu-satunya hal yang menjengkelkan adalah bahwa Get-CimInstance kadang-kadang akan mengubah nama beberapa bidang sistem dari objek WMI, seperti __SERVER di sini. Anda harus menggunakan salah satu CSNameatau PSComputerName, yang sepertinya berfungsi untuk saya.

Bit Bacon
sumber
20121217175810.414696+120Saya pikir saya perlu kalkulator bagus untuk menghitung waktu
Royi Namir
7
@Royi Ya, cap waktu WMI bodoh. Ini adalah CIM_DATETIME, yang merupakan format yang diperlukan oleh standar. Ini yyyymmddHHMMSS.mmmmmmsUUU, menggunakan waktu 24 jam. Di sini, waktu reboot terakhir Anda adalah 17 Des 2012 pukul 17:58. msdn.microsoft.com/en-us/library/windows/desktop/…
Bacon Bits
1
Bonus praktis menggunakan metode get-wmiobject adalah membuatnya sepele untuk mendapatkan waktu boot komputer jarak jauh juga. Cukup tambahkan "-computer <computername>" ke perintah (sebelum pipa)
camster342
8

Untuk pengguna Windows 10 di luar sana ....

Properti Sistem Windows 10 - Performa Waktu

Jonathan Tepper
sumber
1
Ini menunjukkan Anda uptime (yaitu berapa lama sistem berjalan) bukan waktu ketika sistem telah dimulai seperti yang diminta OP.
Dawid Ferenczy Rogožan
1
Benar, tapi ini masih berguna.
tbc0
Hari ini notebook Windows 10 saya menunjukkan uptime palsu. Saya mematikannya tadi malam, menyalakannya kurang dari satu jam yang lalu, dan Task Manager mengatakan sudah untuk 5: 19: 40: 10.
tbc0
Windows 10 tidak benar-benar mati ketika dimatikan, saya lupa persis mengapa. Namun, jika Anda ingin timer uptime diatur ulang, Anda harus memulai ulang.
Daniel Hayes
3

Harap dicatat bahwa seperti yang ditunjukkan oleh Alex , /sleepstudyperintah tidak ditambahkan hingga Windows 8.1. / systempowerreport mungkin bekerja sebagai gantinya.

Perhatikan bahwa beberapa jawaban lain ini tidak pernah berfungsi untuk saya, seperti mencari event-log misalnya selalu hilang beberapa entri. Jawaban @ Florisz juga benar dalam hal itu. Ini solusinya:

Di administrator cmd shell, jalankan perintah berikut:

powercfg /sleepstudy /output sleepstudy.html

Kemudian buka file sleepstudy.htmldi browser. Anda akan disambut dengan statistik terorganisir luar biasa tentang shutdown / reboot / standby / hibernation dari tiga hari terakhir . (jadi, jalankan secara berkala jika Anda perlu)

Contoh output: (AFAIR, Showdown (Hybrid)berarti startup cepat)

masukkan deskripsi gambar di sini

Sumber / Dokumentasi | Juga terkait

konfeti
sumber
1
Ini yang saya cari di Windows 10! Saya tidak reboot, saya biasanya mematikan. LastBootTime hanya mengacu pada reboot pada Windows 10.
tbc0
2

Pada Windows 7 saya lebih suka

net statistics workstation

WMIC tidak memperhitungkan waktu tidur, dan saya membiarkan komputer saya terkunci di tempat tidur selama seminggu, siap untuk bangun keesokan harinya.

tbc0
sumber
2

cara lain dalam file batch untuk mendapatkan waktu boot dengan wmic tetapi dalam bentuk yang dapat dibaca manusia:

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%

keluaran:

DTS: 20170308073729.491206 + 060

BOOTTIME: 2017-03-08 07:37

Maks
sumber
1
Jawaban ini akan lebih baik jika menyertakan penjelasan tentang cara set BOOTTIMEkerjanya.
CVn
2

Untuk mendapatkannya di 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
        }
    }

Inilah hasilnya:

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

Pada hampir semua versi windows Anda dapat memeriksa cap waktu pada file swap.

dir /a:hc:\pagefile.sys

Membuang
sumber
1
Saya kira tidak. Setidaknya pada Windows 10, ketika saya memeriksa, waktu file swap lebih baru daripada waktu boot.
tbc0
1

Dari pertanyaan ServerFault yang serupa , cari / filter Log Acara Sistem Windows untuk ID Peristiwa 6009.

Di Windows 10: Event Viewer > Windows Logs > Systemdan kemudian Filter Current Log...Action.

palswim
sumber
1

Anda dapat menggunakan PowerShell untuk ini.

Mematikan


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

Ini akan memberi Anda daftar waktu shutdown yang dicatat.

Perintah alternatif, lebih baik dioptimalkan untuk koneksi jarak jauh:

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

Contoh output:

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

Memulai


Perintah berikut ini akan memberi Anda daftar waktu startup yang dicatat.

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

Perintah alternatif, lebih baik dioptimalkan untuk koneksi jarak jauh:

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

Contoh output:

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

Saya telah menguji ini pada PowerShell 5.1 dan Windows 10.0.15063. Tapi itu harus bekerja pada Windows 7 juga, selama Anda memiliki setidaknya PowerShell 3.0. Perhatikan bahwa Anda perlu menjalankannya sebagai admin.

Anda akan menemukan dokumentasi lengkap untuk perintah di sini: docs.microsoft.com

Samir
sumber
Tidak bekerja untuk saya di Windows 10. Bahkan sebagai admin. Lihat snag.gy/HcEn8j.jpg
tbc0
1

Beberapa jawaban menyebutkan net statistics workstationdan saya perhatikan bahwa keduanya:

net statistics server

dan

net statistics workstation

harus memberikan data tentang boot terakhir di Statistics since ...telepon.

Namun, beberapa versi OS (seperti Svr2008 / 6.0) akan kembali 1/1/1980 12:00untuk tanggal saat menggunakan server. Jadi saya akan default ke workstation.

Anda juga dapat menyingkat beberapa perintah seperti net stats workstationdan mendapatkan hasil yang sama. Akhirnya, jika Anda berpindah dari satu sistem ke sistem lainnya, kotak CMD default tidak cukup besar untuk menampilkan semua hasil dari perintah. Jadi saya akan menyalurkan output ke moreuntuk menghindari gulir ke atas untuk melihat waktu boot. Karena itu, perintah default saya adalah:

net stats workstation | more

perintah

ictm
sumber
1

Saya ingin menambahkan, bahwa semua perintah ini benar-benar memberi Anda cap waktu ketika 'restart' atau 'reboot' dilakukan. Dan tidak ketika shutdown dan start dilakukan. Setelah shutdown dan memulai 'lastbootuptime' akan mencerminkan waktu sistem benar-benar 'restart' dan bukan waktu boot aktual. Jadi shutdown / start memberikan hasil yang sama dengan kembali dari menunda / hybernnate untuk timestamp LastBootUpTime.

Florisz
sumber
0

Sama seperti jawaban Max ...

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%

... tapi di 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%

Implementasi wmi ini mungkin terlihat sedikit berantakan tetapi sangat cepat dibandingkan dengan implementasi powershell atau systeminfo lainnya dan Anda dapat dengan mudah mengubah format karena eksplisit dalam kode.

Max terima kasih.

Loïc
sumber