ฉันจะรู้ได้อย่างไรว่า Windows ถูกรีสตาร์ทครั้งล่าสุดเมื่อใด


105

ฉันจะรู้ได้อย่างไรว่าคอมพิวเตอร์ของฉันที่ใช้ Windows 7 รีสตาร์ทครั้งล่าสุดเมื่อใด

ฉันชอบโซลูชันที่ไม่เกี่ยวข้องกับการค้นหาบันทึกเหตุการณ์ แต่มีบางอย่างที่เหมือนwmicหรืออาจเป็นcmdคำสั่ง

คำตอบ:


164

systeminfoคำสั่งเกือบจะเป็นสิ่งที่คุณต้องการ ในภาษาอังกฤษ Windows 7 คุณสามารถทำได้:

systeminfo | find /i "Boot Time"

หรือด้วยความช่วยเหลือของWMIC :

wmic os get lastbootuptime

ความแตกต่างที่สำคัญระหว่าง Windows 7 และ Windows XP ที่ใน Windows 7 Microsoft สามารถแสดงเฉพาะเวลาบูตครั้งสุดท้ายเท่านั้น


นอกจากนี้ในตัวจัดการงาน:

ป้อนคำอธิบายรูปภาพที่นี่


นอกจากนี้ยังมีรายการสะสมใด ๆ ของการตั้งค่าล่าสุดs ?
Royi Namir

2
@RoyiNamir: มีรายการgooglingบางอันของ reboots (ดูคล้ายกันมาก):Get-EventLog -LogName System | where { ($_.InstanceId -bAnd 0xFFFF) -eq 6006 }
m0nhawk

มันคือ PowerShell ..... ?
Royi Namir

3
ระวังที่systeminfoมีการแปล ดังนั้น"Boot Time"จะเป็นจริงสำหรับ Windows รุ่นภาษาอังกฤษเท่านั้น
Markus Mitterauer

1
systeminfo | find /i "Systemstartzeit"สำหรับภาษาเยอรมัน
schoetbi

24

อีกวิธีหนึ่งในการทำเช่นนี้คือการใช้บรรทัดคำสั่งต่อไปนี้ซึ่งทำงานได้ทั้งใน Windows XP และ Windows 7:

net statistics workstation

มันมีข้อดีของการเป็นเร็วกว่าsysteminfoทางเลือกในขณะที่การจัดรูปแบบวันที่ (ซึ่งwmicไม่) นอกจากนี้คุณยังจะได้รับข้อมูลอื่น ๆ ไม่กี่คนที่สามารถเป็นประโยชน์ถ้าคุณเป็นจริงโดยใช้คำสั่งนี้สำหรับการดีบักคอมพิวเตอร์ (ตั้งแต่ที่คุณขอมาโดยเฉพาะสำหรับcmdผมสมมติว่าคุณจะไม่ทำเช่นนี้ programatically)

คุณสามารถหาข้อมูลเพิ่มเติมเกี่ยวกับnet statisticsคำสั่งได้ที่นี่: http://technet.microsoft.com/en-us/library/bb490714.aspx

นี่คือตัวอย่างของผลลัพธ์ (การใช้ Windows 7 Pro SP1 x64 แบบภาษาฝรั่งเศสภาษาผู้ใช้ไม่สำคัญสำหรับบรรทัดคำสั่ง):

ตัวอย่าง

(ชื่อคอมพิวเตอร์เบลออย่างจงใจ)


รายละเอียดเพิ่มเติมเกี่ยวกับhttp://en.wikipedia.org/wiki/Uptimeเกี่ยวกับความแม่นยำในการพิจารณาสถานะการออนไลน์


หมายเหตุสำคัญ : วิธีการนี้จะกำหนดว่าเมื่อใดที่คอมพิวเตอร์ถูกบูทครั้งสุดท้ายไม่ใช่เวลาทำงาน ตัวเลขทั้งสองจะแตกต่างกันหากคุณใช้โหมดสลีป / ไฮเบอร์เนต


ความคิดใด ๆ ที่ว่าทำไมมันถึงไม่อ่านเหมือนกับการใช้ systeminfo หรือ wmic ... มันอาจจะเล็กน้อย แต่มันต่างกับระบบของฉันมากกว่า 2 นาที
Anthony Shaw

มันแตกต่างกันประมาณ aobut 40 วินาทีในคอมพิวเตอร์ของฉันด้วย ฉันไม่มีความคิดใด ๆ เลยว่าทำไมมันไม่เหมือนกันทั้งหมดฉันคิดว่าบริการนี้จะดีกว่านี้นิดหน่อย ข้อมูลบางอย่างที่น่าสนใจเกี่ยวกับen.wikipedia.org/wiki/Uptime
dnLL

2
มันแตกต่างจากเก้าเดือนในเหมือง :-) นี่เป็นคำตอบเดียวที่ถูกต้อง มันให้ datestamp ที่แท้จริงของการบู๊ตครั้งล่าสุด (หรือเมื่อใดก็ตามที่บริการที่เกี่ยวข้องเริ่มขึ้นหลังจากการบูทใกล้เคียงกับมัน) ในขณะที่wmicTask Manager และsysteminfoดูเหมือนว่าจะนับถอยหลังจากเวลาปัจจุบันด้วยจำนวนของเห็บพีซีที่ได้รับ วิ่ง. แต่ถ้าคุณทำให้คอมพิวเตอร์ของคุณเข้าสู่โหมดสลีป (หรือไฮเบอร์เนต) มากอย่างที่ฉันทำเวลาที่ใช้งานจริงทั้งหมดนั้นน้อยกว่าเวลาตั้งแต่การบู๊ตครั้งล่าสุด (เพียงสามสิบวันในกรณีของฉันในช่วงหลายเดือนที่ผ่านมา) การคำนวณนั้นสมบูรณ์
คาเมรอน

ขอบคุณ @cameron ฉันได้เพิ่มบันทึกไว้ท้ายคำตอบของฉัน คำถามดั้งเดิมเกี่ยวกับเมื่อคอมพิวเตอร์เริ่มต้นและไม่ใช่เวลาทำงานดังนั้นจึงเป็นรายละเอียดที่สำคัญ Wikipedia ค่อนข้างพูดถึงความแตกต่างในบทความเกี่ยวกับสถานะการออนไลน์ที่ฉันเชื่อมโยง
dnLL

นั่นไม่ใช่เวลา "บูต" ครั้งล่าสุด - ถึงเวลาที่บริการเซิร์ฟเวอร์หรือเวิร์กสเตชันเริ่มต้นขึ้นอยู่กับว่าคุณใช้แบบสอบถามแบบใด เนื่องจากสิ่งเหล่านี้ไม่เคยหยุดในระหว่างช่วงเวลาปกติของ Windows จึงเป็นการประมาณเวลาบูตที่สะดวก
oldmud0

18

มีLastBootUpTimeคุณสมบัติของWin32_OperatingSystemชั้นเรียน คุณสามารถใช้ WMIC ด้วยคำสั่งนี้:

wmic os get lastbootuptime

หรือถ้าคุณใช้ Powershell คุณสามารถแปลงเวลาเป็นสิ่งที่สามารถอ่านได้มากกว่ารูปแบบ WMI datetime ที่น่ารำคาญ:

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

โปรดทราบว่าใน PowerShell รุ่นที่ใหม่กว่าคุณสามารถใช้ Get-CimInstance ซึ่งจะคืนค่าเป็น datetime โดยอัตโนมัติ:

Get-CimInstance -Class Win32_OperatingSystem | Select-Object LastBootUpTime

สิ่งที่น่ารำคาญเพียงอย่างเดียวคือบางครั้ง Get-CimInstance จะเปลี่ยนชื่อของเขตข้อมูลระบบจากวัตถุ WMI เช่น __SERVER ที่นี่ คุณต้องใช้อย่างใดอย่างหนึ่งCSNameหรือPSComputerNameซึ่งดูเหมือนจะทำงานให้ฉัน


20121217175810.414696+120ฉันคิดว่าฉันต้องใช้เครื่องคิดเลขที่ดีเพื่อคำนวณเวลา
Royi Namir

7
@Royi Yeah, WMI timestamps นั้นโง่ มันCIM_DATETIMEคือรูปแบบที่มาตรฐานกำหนด มันyyyymmddHHMMSS.mmmmmmsUUUใช้เวลา 24 ชั่วโมง ที่นี่เวลารีบูตครั้งล่าสุดของคุณคือ 17 ธันวาคม 2012 เวลา 17:58 น. msdn.microsoft.com/en-us/library/windows/desktop/?hl=th
Bacon Bits

1
โบนัสที่มีประโยชน์ในการใช้วิธี get-wmiobject คือมันทำให้ไม่สำคัญที่จะได้รับเวลาบูตของคอมพิวเตอร์ระยะไกลด้วย เพียงเพิ่ม "-computer <computername>" ลงในคำสั่ง (ก่อน
ไพพ์

8

สำหรับผู้ใช้ Windows 10 ที่นั่น ....

คุณสมบัติของระบบ Windows 10 - ประสิทธิภาพขึ้นเวลา


1
สิ่งนี้แสดงให้คุณเห็นว่าสถานะการทำงาน (เช่นระยะเวลาที่ระบบกำลังทำงาน) ไม่ใช่เวลาที่ระบบเริ่มทำงานตามที่ OP ถาม
Dawid Ferenczy Rogožan

1
จริง แต่นี่ยังมีประโยชน์
tbc0

วันนี้โน๊ตบุ๊ค Windows 10 ของฉันกำลังแสดงสถานะการทำงานผิดพลาด เมื่อคืนนี้ฉันปิดมันลงขับเคลื่อนโดยใช้เวลาน้อยกว่าหนึ่งชั่วโมงและ Task Manager บอกว่ามันใช้งานได้ 5: 19: 40: 10
tbc0

Windows 10 ไม่ได้ปิดตัวลงจริงเมื่อปิดเครื่องฉันลืมว่าทำไม อย่างไรก็ตามหากคุณต้องการให้ตัวตั้งเวลาทำงานรีเซ็ตคุณต้องรีสตาร์ท
Daniel Hayes

3

โปรดทราบว่าเป็นแหลมออกโดยอเล็กซ์/sleepstudyคำสั่งไม่ถูกเพิ่มจนกว่าของ Windows 8.1 / systempowerreportอาจทำงานแทน

โปรดทราบว่าคำตอบอื่น ๆ เหล่านี้ไม่ได้ผลสำหรับฉันเช่นการค้นหาบันทึกเหตุการณ์ตัวอย่างมักจะขาดบางรายการ คำตอบของ @ Florisz ก็ถูกต้องในเรื่องนั้นเช่นกัน นี่คือทางออกของฉัน:

ใน cmd shell ผู้ดูแลให้รันคำสั่งต่อไปนี้:

powercfg /sleepstudy /output sleepstudy.html

จากนั้นเปิดไฟล์sleepstudy.htmlในเบราว์เซอร์ คุณจะได้รับการต้อนรับด้วยสถิติการจัดระเบียบที่น่าอัศจรรย์เกี่ยวกับการปิด / รีบูต / สแตนด์บาย / ไฮเบอร์เนตจากสามวันที่ผ่านมา (ดังนั้นให้รันเป็นระยะหากคุณต้องการ)

ตัวอย่างของผลลัพธ์: (AFAIR Showdown (Hybrid)หมายถึงการเริ่มต้นอย่างรวดเร็ว)

ป้อนคำอธิบายรูปภาพที่นี่

แหล่งที่มา / เอกสาร | ที่เกี่ยวข้องอีกด้วย


1
นี่คือสิ่งที่ฉันกำลังมองหาใน Windows 10! ฉันไม่รีบูตปกติฉันจะปิดเครื่อง LastBootTime อ้างถึงการรีบูตบน Windows 10
tbc0

2

บน Windows 7 ฉันชอบ

net statistics workstation

WMIC ไม่ได้คำนึงถึงเวลาพักเครื่องและฉันปล่อยให้เวิร์กสเตชันของฉันถูกล็อคขณะหลับในระหว่างสัปดาห์พร้อมที่จะปลุกในวันถัดไป


2

อีกวิธีในไฟล์แบตช์เพื่อรับเวลาบูตด้วย 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

BOOTTIME: 2017-03-08 07:37


1
คำตอบนี้จะดีกว่าถ้ามีคำอธิบายวิธีการset BOOTTIMEทำงาน
CVn

2

วิธีรับใน 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

ใน Windows ทุกรุ่นคุณสามารถตรวจสอบเวลาประทับของไฟล์ swap ได้

dir /a:hc:\pagefile.sys


1
ฉันไม่คิดอย่างนั้น อย่างน้อยใน Windows 10 เมื่อฉันตรวจสอบเวลาสวอปไฟล์จะใหม่กว่าเวลาบู๊ต
tbc0


1

คุณสามารถใช้ 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 แล้ว แต่มันก็ควรจะทำงานบน Windows 7 ได้เช่นกันตราบใดที่คุณมี PowerShell 3.0 เป็นอย่างน้อย โปรดทราบว่าคุณต้องเรียกใช้ในฐานะผู้ดูแลระบบ

คุณจะพบเอกสารฉบับเต็มสำหรับคำสั่งได้ที่นี่: docs.microsoft.com


ใช้งานไม่ได้กับฉันใน Windows 10 แม้จะเป็นผู้ดูแลระบบก็ตาม ดูsnag.gy/HcEn8j.jpg
tbc0

1

คำตอบสองข้อกล่าวถึงnet statistics workstationและฉันสังเกตว่าทั้งสอง:

net statistics server

และ

net statistics workstation

ควรให้ข้อมูลเกี่ยวกับการบูตครั้งสุดท้ายในStatistics since ...บรรทัด

แต่บางรุ่น OS (เช่น Svr2008 / 6.0) จะกลับมาสำหรับวันที่เมื่อใช้1/1/1980 12:00 ดังนั้นฉันจะเริ่มต้นกับserverworkstation

นอกจากนี้คุณยังสามารถย่อบางคำสั่งที่ต้องการnet stats workstationและได้ผลลัพธ์เดียวกัน สุดท้ายถ้าคุณกระโดดจากระบบหนึ่งไปอีกระบบกล่อง CMD เริ่มต้นจะไม่ใหญ่พอที่จะแสดงผลลัพธ์ทั้งหมดจากคำสั่ง ดังนั้นฉันจะไพพ์เอาต์พุตเพื่อmoreหลีกเลี่ยงการเลื่อนขึ้นเพื่อดูเวลาบูต ดังนั้นคำสั่งเริ่มต้นของฉันคือ:

net stats workstation | more

คำสั่ง


1

ฉันต้องการเพิ่มว่าคำสั่งเหล่านี้ให้เวลากับคุณจริง ๆ เมื่อ 'รีสตาร์ท' หรือ 'รีบูต' เสร็จสิ้น และไม่เมื่อปิดและเริ่มต้นจะทำ หลังจากปิดและเริ่มต้น 'lastbootuptime' จะสะท้อนเวลาที่ระบบนั้น 'เริ่มใหม่' จริงๆและไม่ใช่เวลาบูตจริง ดังนั้นการปิด / เริ่มให้ผลเช่นเดียวกับการกลับมาจาก suspend / hybernnate สำหรับการประทับเวลา LastBootUpTime


0

เหมือนกับคำตอบสูงสุด ...

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 อื่น ๆ และคุณสามารถเปลี่ยนรูปแบบได้อย่างง่ายดายเนื่องจากมันชัดเจนในโค้ด

ขอบคุณมาก

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.