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 wmic
atau mungkin cmd
perintah.
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 wmic
atau mungkin cmd
perintah.
Jawaban:
systeminfo
perintah 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:
systeminfo
itu 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 systeminfo
alternatif saat memformat tanggal (yang wmic
tidak). 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 statistics
perintah 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 systeminfo
semua 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 LastBootUpTime
milik Win32_OperatingSystem
kelas. 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 CSName
atau PSComputerName
, yang sepertinya berfungsi untuk saya.
20121217175810.414696+120
Saya 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 , /sleepstudy
perintah 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.html
di 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 BOOTTIME
kerjanya.
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 > System
dan 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 workstation
dan 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:00
untuk tanggal saat menggunakan server
. Jadi saya akan default ke workstation
.
Anda juga dapat menyingkat beberapa perintah seperti net stats workstation
dan 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 more
untuk 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.