Windows 8 รายงานว่าเวลาใช้งานไม่ถูกต้อง (อาจรวมถึงช่วงเวลาไฮบริดบูตรวม)


10

สถานะการออนไลน์ไม่ถูกต้อง

เวลาที่แสดงในภาพคือ 6 วัน 1 ชั่วโมง 34 นาที 22 วินาที ฉันเปิดแล็ปท็อปเครื่องนี้เมื่อประมาณ 7 นาทีที่แล้ว

ฉันคิดว่าจริง ๆ แล้วมันเหมือนว่า Windows 8 จะรายงานเวลาทั้งหมดในขณะที่อยู่ในโหมด Hybrid-Boot ฉันจะได้รับเวลาจริงได้อย่างไร นอกจากนี้ทำไม Windows จึงรายงานว่าเป็นเช่นนั้น?

มีวิธีใดบ้างที่จะทำให้เวลาจริงขึ้นมาในรูปแบบ GUI (สำหรับเพื่อน n00b ของฉัน)?


UPDATE:ฉันปิดการใช้งาน Hybrid-Boot และรีบูต ตอนนี้มันส่งผลให้ uptime ที่ถูกต้อง นอกจากนี้การปิดเครื่องอย่างสมบูรณ์ด้วยshutdown /s /t 0ยังใช้งานได้

คำอธิบายเพิ่มเติมอีกเล็กน้อยคำถามของฉันคือวิธีการรับ up-time จริง (เวลาจากเมื่อเราเปิดระบบ) แม้ว่าจะเปิดใช้งาน Hybrid-Boot แล้วหรือยัง อาจมี Windows อยู่ในสต็อกโดยไม่มีโปรแกรมภายนอก แต่ก็ไม่จำเป็น


คำอธิบายใด ๆ เกี่ยวกับเรื่องนี้?


1
คุณสามารถอธิบายสิ่งที่คุณหมายถึงโดย "เวลาจริง"? เมื่อ 7 นาทีที่แล้วคุณทำอะไรกันแน่?
David Schwartz

เวลาจริงหมายถึงเวลาตามจริงจากเมื่อฉันเปิดระบบ (นั่นคือสิ่งที่ฉันทำเมื่อ 7 นาทีก่อนเปิดแล็ปท็อป!)
Akshat Mittal

8
ข้อกำหนดดั้งเดิมสำหรับเวลาทำงานคือเวลาที่คอมพิวเตอร์เริ่มทำงานเนื่องจากเคอร์เนลเริ่มต้นเอง เนื่องจากการบูตไฮบริดเป็นเพียงการระงับชนิดพิเศษ (ก่อนหน้านี้มีการหยุดชั่วคราวเพื่อ RAM และไฮเบอร์เนต) จึงไม่นับว่าเป็นการ "ปิดระบบ" เนื่องจากมีการใช้อินสแตนซ์เดียวกันของเคอร์เนล Windows
allquixotic

@ allquixotic True นั่นเป็นสาเหตุที่ฉันคิดว่ามันน่าจะเป็น Hybrid-Boot up time
Akshat Mittal

ฉันเดาว่าคุณไม่มีคำถามจริงๆ ฉันต้องการถามวิธีการรับเวลาทำงานจริงแม้เมื่อเปิดใช้งาน Hybrid-Boot ฉันกำลังอัพเดตคำถาม
Akshat Mittal

คำตอบ:


5

คุณต้องการได้รับโซลูชันนอกเวลาเพื่อค้นหาเวลาทำงานของเครื่องตั้งแต่การปิดระบบไฮบริดครั้งสุดท้าย / การเริ่มต้นอย่างรวดเร็วเกิดขึ้นใช่มั้ย

คุณสามารถรับข้อมูลนี้ (ตามที่ระบุไว้โดย @allquixotic) จาก EventLog โดยใช้ PowerShell ดังนี้:

PS c:\> Write-Host $("{0:c}" -f ((Get-Date)- (Get-EventLog -LogName system -Source "Microsoft-Windows-Power-Troubleshooter" -Newest 1).TimeGenerated))

หากต้องการฝังคำสั่ง powershell ลงในเชลล์สคริปต์ของ Windows คุณสามารถทำได้ดังนี้:

c:\> powershell.exe -nologo -command Write-Host $('Time since last ''Fast Startup'': {0:c}' -f ((Get-Date)- (Get-EventLog -LogName system -Source \"Microsoft-Windows-Power-Troubleshooter\" -Newest 1).TimeGenerated))

Howerver เพื่อให้สิ่งนี้เป็นประโยชน์กับคุณคุณสามารถกำหนดให้เป็นตัวแปรสภาพแวดล้อมแบบถาวรเช่นนี้แทน:

c:\> setx HardwareUptime "powershell.exe -nologo -command Write-Host $('Uptime since last ''Fast Startup'': {0:c}' -f ((Get-Date)- (Get-EventLog -LogName system -Source 'Microsoft-Windows-Power-Troubleshooter' -Newest 1).TimeGenerated))"

ดังนั้นคุณสามารถทำให้มันทำงานได้โดยเปิดcmdหน้าต่างและทำสิ่งต่อไปนี้

c:\> %HardwareUpTime%

UPDATE:

ฉันเพิ่งพบในวันนี้ว่าการใช้รายการข้างต้นในบันทึกเหตุการณ์จะคำนึงถึง "Sleep" หรือโหมด suspend ดังนั้นการทำงาน%HardwareUpTime%จะบอกเวลาที่ผ่านไปนับตั้งแต่พีซีเริ่มทำงานจากโหมดสลีปหากคุณปล่อยไว้

ดังนั้นนี่คือ:

setx HardwareUptime "powershell.exe -nologo -command Write-Host $('Uptime since hardware boot: {0:c}' -f ((Get-Date)- (Get-EventLog -LogName system -InstanceId 27 -Newest 1).TimeGenerated)); Write-Host $('Uptime since system resumed: {0:c}' -f ((Get-Date)- (Get-EventLog -LogName system -Source 'Microsoft-Windows-Power-Troubleshooter' -Newest 1).TimeGenerated));"

ฉันได้แก้ไขคำสั่งเล็กน้อยเพื่อให้ชัดเจนยิ่งขึ้นและให้ข้อมูลทั้งสองชิ้นแก่คุณ:

  • เวลาที่ผ่านไปตั้งแต่ Windows บูต (ทั้งหลังจากการปิดระบบไฮบริดการปิดเต็มรูปแบบหรือการรีบูตหรือการไฮเบอร์เนตแบบง่าย)

  • เวลาที่ผ่านไปตั้งแต่ Windows เริ่มทำงานต่อ (หลังจากกลับมาจากโหมดสลีป)

หมายเหตุ:หากระบบไม่เข้าสู่โหมดสลีปทั้งสองครั้งจะเหมือนกัน


ดูเหมือนว่าฉันจะเป็นทางออกที่ดี
Akshat Mittal

4

นำมาจากที่นี่ :

ตรวจสอบบันทึกเหตุการณ์ของ Windows

  1. กดWindows Key+r

  2. ใส่ในกล่อง %windir%\system32\eventvwr.msc /s

  3. คลิก "สร้างมุมมองที่กำหนดเอง ... " ทางด้านขวา

  4. ตั้งค่าเช่นนี้: พลังงานแก้ปัญหา

  5. คลิกตกลง

  6. เมื่อได้รับแจ้งให้ตั้งชื่อให้ดูแบบกำหนดเอง (สิ่งนี้อาจเป็นสิ่งที่คุณต้องการ)

  7. มันจะแสดงรายการของเวลาดำเนินการต่อ


โอเคมันดีนะ มันค่อนข้างเป็นสิ่งที่ฉันต้องการ ถ้าฉันเป็น n00b ล่ะ มันไม่เหมาะ นอกจากนี้มันยังส่งผลให้เวลาดำเนินการต่อครั้งล่าสุดเป็นเวลาที่ฉันต้องลบมันออกจากเวลาปัจจุบันของฉัน มีวิธีการใดตรงเวลาขึ้นอาจจะอยู่ในบรรทัดคำสั่ง? ฉันกำลังลงคะแนน แต่ไม่ยอมรับ
Akshat Mittal

ไม่มีวิธีแก้ปัญหาแบบหดห่อสำหรับ AFAIK นี้ คุณต้องเขียนโปรแกรม บางทีฉันจะ ....
allquixotic

โอเคฉันจะลองดูทีหลัง
Akshat Mittal

1

คุณควรปิดการใช้งาน Hybrid-Boot และรีบูต ควรแสดงเวลาที่เหมาะสม นอกจากนี้การปิดเครื่องอย่างสมบูรณ์ด้วยshutdown /s /t 0ยังใช้งานได้


นี่คือสิ่งที่ฉันเขียนไว้ในอัปเดต
Akshat Mittal

@AkshatMittal ใช่มันเป็น แต่ฉันคิดว่าคุณต้องการที่จะยอมรับคำตอบ :)
Kruug

ไม่ -_- คำถามคือว่า "จะทำให้ได้รับเรียลไทม์ในรูปแบบ GUI ได้อย่างไร"
Akshat Mittal

ก่อนอื่นคุณต้องปิดการใช้งานของคุณHybrid-Bootเนื่องจากเวลาเริ่มต้นทำงานนับจากเวลาที่เคอร์เนลเริ่มต้น นั่นเป็นวิธีเดียว
Kruug

วิธีเดียวเท่านั้นใช่ไหม
Akshat Mittal

0

นอกจากนี้ยังเกิดขึ้นในรุ่นเก่า (XP, Vista, 7) hibernationเมื่อคุณใช้ เวลาจะถูกรีเซ็ตเฉพาะเมื่อคุณทำfull bootแต่การเริ่มต้นอย่างรวดเร็วของ Win8 จะไม่เป็นการบูตเต็มรูปแบบอีกต่อไป เป็นการรวมกันของการบันทึกผู้ใช้ปิด + ไฮเบอร์เนต

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