เรียกใช้สคริปต์เมื่อ Windows ดำเนินการต่อจากสถานะ suspend / hibernate


14

มีวิธีให้ Windows (XP, Vista และ 7) เรียกใช้สคริปต์เมื่อเครื่องส่งคืนจากโหมดไฮเบอร์เนต / หยุดชั่วคราวหรือไม่? มันจะโอเคกับฉันถ้าสคริปต์รันหลังจากผู้ใช้ปลดล็อกเซสชันที่ถูกล็อคหลังจากที่เครื่องดำเนินการต่อ

ฉันมีบริการที่ต้องเตะเมื่อฉันดำเนินการต่อเครื่องเพื่อให้มันทำงานอย่างถูกต้องในประวัติย่อ

คำตอบ:


14

ใน windows 7 คุณสามารถทำสิ่งนี้กับงานที่กำหนดไว้ ตั้งค่าสคริปต์ชุดงานเพื่อดำเนินการที่คุณต้องการแล้วสร้างงานด้วยหนึ่งในทริกเกอร์ต่อไปนี้:

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

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

รับเอกสารที่มา 7 ฉบับ

รับ XP source doc

หวังว่านี่จะช่วยได้


2
โปรดทราบว่าตัวเลือกทริกเกอร์ "ในเวิร์กสเตชันล็อค / ปลดล็อก" จะแสดงเฉพาะสำหรับ "สร้างงาน ... " และไม่ใช่ "สร้างงานพื้นฐาน ... "
rymo

แหล่งที่มา "Power-Troubleshooter" ยังใช้งานได้กับ Win 8.1
สมุนไพร

1
Power-Troubleshooter ไม่ทำงานสำหรับฉันใน win 10 pro การปลดล็อคเวิร์กสเตชันใช้งานได้แล้ว
e-cloud

1
"เมื่อปลดล็อคเวิร์กสเตชัน" ใช้งานได้สำหรับฉัน
sms247

รหัสเหตุการณ์ 107 ใช้ได้สำหรับฉันใน win 10 pro
Alex78191

2

ใช้Win32_PowerManagementEventหรือไม่ ฉันเพิ่ง googled มันและพบสคริปต์ต่อไปนี้ (ไม่มีการรับประกัน;)

Set oShell = CreateObject("WScript.Shell")

Set colMonitoredEvents = GetObject("winmgmts:")._
ExecNotificationQuery("Select * from Win32_PowerManagementEvent")

Do
  Set objLatestEvent = colMonitoredEvents.NextEvent

  Select Case objLatestEvent.EventType

    Case 4
      oShell.Run "Calc.exe", 1, False
      MsgBox "Entering suspend, Calc started", _
      vbInformation + vbSystemModal, "Suspend"

    Case 7
      oShell.Run "Notepad.exe", 1, False
      MsgBox "Resuming from suspend, notepad started", _
      vbInformation + vbSystemModal, "Suspend"

    Case 11
      MsgBox "OEM Event happened, OEMEventCode = " _
      & strLatestEvent.OEMEventCode

    Case 18
      MsgBox "Resume Automatic happened"

  End Select
Loop

1

เพิ่มภารกิจตามกำหนดเวลาด้วยทริกเกอร์: เมื่อปลดล็อคเวิร์กสเตชัน มันใช้งานได้ฉันวิ่งมันหลังจากตื่นนอน ในกล่อง Windows 2008R2 ของฉันฉันจะต้องเริ่มบริการเสียงใหม่มิฉะนั้นบางครั้งก็ใช้ 100% ของ 1 cpu


-1

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


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