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.
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.
Jawaban:
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:

systeminfoitu dilokalkan. Jadi "Boot Time"hanya berlaku untuk versi bahasa Inggris Windows.
systeminfo | find /i "Systemstartzeit"untuk jerman
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):

(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.
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.
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.
20121217175810.414696+120Saya pikir saya perlu kalkulator bagus untuk menghitung waktu
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/…
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)
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
set BOOTTIMEkerjanya.
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
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.
Anda dapat menggunakan PowerShell untuk ini.
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
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
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
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.
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.