จะทราบได้อย่างไรว่า Windows Seven รีบูตเครื่องบ่อยแค่ไหน?


18

ฉันควรค้นหาข้อมูลในระบบหรือรีจิสตรีกี่ครั้งที่รีบูต Windows? ฉันต้องการสร้างแอปพลิเคชันที่ใช้ข้อมูลนี้ (กี่ครั้งที่ Windows รีบูตตั้งแต่กระบวนการ OOBE *) เพื่อใช้งานคุณสมบัติเฉพาะ

ฉันแน่ใจว่า Microsoft อาจนำไปใช้ในบางแห่ง ฉันกำลังคิดคีย์รีจิสทรีหรืออะไรทำนองนี้

* OOBE - Out Of Box Experience นี่เป็นกระบวนการที่เกิดขึ้นเมื่อคุณบูท Windows ของคุณเป็นครั้งแรกและตั้งค่าชื่อผู้ใช้รหัสผ่านและชื่อคอมพิวเตอร์


จากการตรวจสอบบันทึกเหตุการณ์อย่างรอบคอบคุณสามารถเข้าใจสิ่งนี้ได้ แต่ฉันไม่คิดว่ามันจะถูกบันทึกโดยเฉพาะบางแห่ง ... หวังว่าฉันผิด!
Shinrai

คำตอบ:


17

การเริ่มต้นและการปิดแต่ละครั้งจะถูกบันทึกไว้ในบันทึกเหตุการณ์ เปิดตัวแสดงเหตุการณ์และไปที่ส่วนบันทึกระบบ หากคุณกรองข้อมูลเหล่านี้ (ใช้Filter Current Logปุ่มด้านขวา) โดยหมายเลขเหตุการณ์ที่ 12 และ 13 คุณควรจะได้รับแจ้งเหตุการณ์เมื่อระบบปิดและเริ่มต้น

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

คุณสามารถขอใบสมัครเพื่อนับจำนวนกิจกรรมด้วยรหัสเหตุการณ์ 12 ซึ่งควรให้สิ่งที่คุณต้องการ


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

@rmart ฉันไม่ทราบว่าผู้ใช้โดยเฉลี่ยจะล้างบันทึกเหตุการณ์ แต่พวกเขาเป็นทั้งจุดยุติธรรม ฉันคิดว่าการใช้ข้อมูล SMART ตามที่กล่าวไว้ข้างต้นอาจเป็นวิธีที่ดีกว่า
Connor W

12

ฉันพบคำตอบ

ค้นหามากกว่า:

"HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters\BootId" 

ค่าเป็นทศนิยมที่คุณจะเห็นคือจำนวนครั้งที่ระบบของคุณรีบูตแล้ว


576 ครั้งเป็นคำถามและคำตอบที่น่าสนใจมาก +1 จากฉัน
Joe Taylor

7

นี่เป็นอีกวิธีหนึ่ง: สมาร์ท

ฮาร์ดไดรฟ์ส่วนใหญ่ในทุกวันนี้เก็บข้อมูล SMART มีข้อมูลสองส่วนที่คุณอาจสนใจ: 04 Start / Stop Count 12 Power Cycle Count

ตรวจสอบบทความวิกิพีเดียเกี่ยวกับสมาร์ทและเอกสารของ smartmontools

smartmontools เป็นโครงการโอเพนซอร์ซที่สามารถสืบค้นข้อมูลนี้ใน CLI หรือมีโปรแกรมอื่น ๆ ที่สามารถรับข้อมูลนี้ด้วย GUI ต่าง ๆ : รายการ Wikipedia ของเครื่องมือ SMART


ฉันคิดว่านี่น่าจะเป็นวิธีที่เชื่อถือได้มากกว่าการใช้ Event Viewer แต่มันก็มีข้อควรระวังเช่นกัน ยกเว้นว่าไดรฟ์อยู่ในคอมพิวเตอร์เครื่องเดียวกันตั้งแต่วันแรกโดยไม่ต้องเปลี่ยนหรือใช้ที่อื่นคุณจะไม่ได้รับผลลัพธ์ที่แม่นยำ นอกจากนี้ฉันคิดว่าไดรฟ์รุ่นเก่าไม่รองรับ S..MART อย่างสมบูรณ์ดังนั้นคุณอาจพบไดรฟ์บางตัวที่บันทึกข้อมูลวงจรพลังงานและอื่น ๆ ที่ไม่รองรับ
Connor W

@Connor W: ฉันเดาว่าฮาร์ดไดรฟ์ที่ไม่บันทึกข้อมูล SMART นั้นค่อนข้างไม่น่าจะอยู่ในเครื่องที่ทรงพลังพอที่จะใช้งาน Windows 7 ได้ แต่ใช่คุณคิดถูกแล้วว่ามันไม่สามารถ พึ่งพา เช่นเดียวกับผู้ดูกิจกรรม ....
camster342

นอกจากนี้ถ้าผู้ใช้ใช้โหมดสแตนด์บายหรือฮาร์ดไดรฟ์ปิดเนื่องจากไม่มีการใช้งาน?
sinni800

@Sinni: นั่นคือความแตกต่างระหว่างรหัส 04 และรหัส 12 คืออะไร 04 คือสปินอัพของฮาร์ดไดรฟ์ทั้งหมดซึ่งรวมถึงโหมดสแตนด์บายและโหมดประหยัดพลังงาน 12 เป็นที่ที่ฮาร์ดไดรฟ์เสียพลังงานอย่างสมบูรณ์จากการปิดเครื่อง PC หรือเข้าสู่โหมดไฮเบอร์เนต
camster342

2

ตรวจสอบ Reliability Manager ใน Windows 7


3
สิ่งนี้ไม่ได้บอกคุณจริงๆเมื่อคอมพิวเตอร์บูทเครื่องหรือปิดเครื่อง
Connor W

1

ฉันได้เขียนสคริปต์สั้น ๆ สองตัวซึ่งสามารถนับจำนวนครั้งที่คอมพิวเตอร์เปิดเครื่อง

น่าเสียดายที่ไม่มีบันทึกเหตุการณ์สำหรับการรีสตาร์ทเป็นพิเศษเฉพาะเมื่อ Windows เริ่มต้นและปิดเครื่อง

สคริปต์เหล่านี้ค้นหาบันทึกเหตุการณ์event 12ซึ่งบันทึกไว้เมื่อ Windows เริ่มทำงาน จากนั้นจะบอกคุณว่ามีการนับกี่ครั้ง

VBS Script: นับจำนวนครั้งที่เปิดเครื่องคอมพิวเตอร์

count = 0
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colLoggedEvents = objWMIService.ExecQuery _
("Select * from Win32_NTLogEvent Where Logfile = 'System'" _
& " and EventCode = '12'")
For Each objEvent in colLoggedEvents
count = count + 1
Next
wscript.echo "Number of times operating system has started:   " & count

VBS Script: นับจำนวนครั้งที่เปิดเครื่องคอมพิวเตอร์จากระยะไกล:

count = 0
strComputer=InputBox ("Enter the network name for the remote computer")
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colLoggedEvents = objWMIService.ExecQuery _
("Select * from Win32_NTLogEvent Where Logfile = 'System'" _
& " and EventCode = '12'")
For Each objEvent in colLoggedEvents
count = count + 1
Next
wscript.echo "Number of times operating system has started:   " & count 

Source VBS Script - จำนวนครั้งที่เปิดเครื่องคอมพิวเตอร์


หากนี่คือเว็บไซต์ของคุณที่คุณกำลังเชื่อมโยงไปถึง (ลิงก์ที่คุณเพิ่งอัพเดต) โปรดทราบว่าคุณต้องเปิดเผยการเป็นพันธมิตรของคุณด้วย ดูsuperuser.com/help/behavior
slhck

@slhck - ใช่ฉันกำลังอ้างอิงบล็อกส่วนตัวของฉัน ฉันไม่รู้กฎเหล่านั้น มีบรรทัดมาตรฐานที่ฉันควรใช้เพื่อให้ชัดเจนว่าฉันอ้างอิงเนื้อหาที่อยู่ในบล็อกส่วนตัวของฉันหรือไม่ ฉันโพสต์คำตอบทั้งหมดเมื่อนานมาแล้วเมื่อฉันมีเวลาฉันกำลังเปลี่ยนชื่อโดเมนและต้องการอัปเดตลิงก์ก่อนที่โดเมนจะหมดอายุ ฉันใช้บล็อกส่วนตัวของฉันเพื่อบันทึกสิ่งที่ฉันต้องจำและแบ่งปันความรู้ดังนั้นการโพสต์ข้ามระหว่าง superuser
ovann86

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