วิธีกำหนดเวลาให้งานทำงานเมื่อปิดหน้าต่าง


86

คุณกำหนดเวลางานใน Windows XP ให้ทำงานได้อย่างไรเมื่อคุณปิด Windows เช่นนั้นฉันต้องการเรียกใช้โปรแกรมบรรทัดคำสั่งง่ายๆที่ฉันเขียนใน c # ทุกครั้งที่ฉันปิดหน้าต่าง ดูเหมือนจะไม่มีตัวเลือกในงานที่กำหนดเวลาไว้ให้ทำงานนี้เมื่อคอมพิวเตอร์ของฉันปิดตัวลง

คำตอบ:


92

ดำเนินการ gpedit.msc (นโยบายท้องถิ่น)

การกำหนดค่าคอมพิวเตอร์ -> การตั้งค่า Windows -> สคริปต์ -> ปิดเครื่อง -> คุณสมบัติ -> เพิ่ม


28
ถ้าคุณต้องการให้ batch script ทำงานที่ Logoff ฉันพบว่าการอ้างถึงไฟล์. bat โดยตรงใช้ไม่ได้ อย่างไรก็ตามหากฉันใช้C:\Windows\System32\cmd.exeเป็นชื่อสคริปต์และ/C C:\path\to\batch\script.batเป็นพารามิเตอร์ของสคริปต์ก็จะทำได้
Dan Stevens

6
คำเตือน: การเริ่มต้นนโยบายกลุ่มและการปิดระบบไม่ดำเนินการเมื่อใช้ fastboot (เปิดใช้งานโดยค่าเริ่มต้นใน windows 8 ขึ้นไป) ในกรณีนี้เฉพาะการรีสตาร์ทหรือบังคับปิดเครื่อง (จากพรอมต์คำสั่ง) ปิดคอมพิวเตอร์จริงๆ ในกรณีอื่น ๆ ทั้งหมด (การปิดเมนูเริ่ม) เคอร์เนลของคอมพิวเตอร์จะถูกจำศีลและได้รับการฟื้นฟูเมื่อบูตและการเริ่มต้นระบบ GPO และการปิดระบบจะถูกละเว้น
voji

@voji: นี่เป็นความจริงสำหรับ Windows Server ด้วยหรือไม่?
sampathsris

รีสตาร์ทได้อย่างไร?
dangalg

สิ่งเหล่านี้ดูเหมือนจะไม่ทำงานเลยบน Server Core 1909
gordy

41

นอกจากนี้ในการตอบแดนวิลเลียมส์ถ้าคุณต้องการที่จะเพิ่มเริ่มต้น / ปิดสคริปต์คุณจะต้องมองหาการตั้งค่า windows ภายใต้การกำหนดค่าคอมพิวเตอร์ หากคุณต้องการที่จะเพิ่มเข้าสู่ระบบ / ออกจากระบบสคริปต์คุณจะต้องมองหาการตั้งค่า windows ภายใต้การกำหนดค่าผู้ใช้

ดังนั้นเพื่อย้ำสิ่งที่แดนพูดพร้อมกับข้อมูลนี้

สำหรับการเริ่มต้น / ปิดเครื่อง:

  1. เรียกใช้ gpedit.msc (Local Policies)
  2. การกำหนดค่าคอมพิวเตอร์ -> การตั้งค่า Windows -> สคริปต์ -> การเริ่มต้นหรือปิดระบบ -> คุณสมบัติ -> เพิ่ม

สำหรับ Logon / Logoff:

  1. เรียกใช้ gpedit.msc (Local Policies)
  2. การกำหนดค่าผู้ใช้ -> การตั้งค่า Windows -> สคริปต์ -> เข้าสู่ระบบหรือออกจากระบบ -> คุณสมบัติ -> เพิ่ม

ที่มา: http://technet.microsoft.com/en-us/library/cc739591(WS.10).aspx


2
นี่คือคำตอบที่ดีกว่า เมื่อคุณเปิด GPEditor จะแสดงสองโหนดตามที่คุณอธิบาย เนื่องจากทั้งสองโหนดมีตัวเลือกการตั้งค่า Windows คำตอบที่ยอมรับจึงไม่ชัดเจนกว่าคำตอบของคุณ ขอบคุณสำหรับทิป. เป็นประโยชน์มาก
Seth Spearman

34

สำหรับผู้ที่ต้องการใช้ Task Scheduler เป็นไปได้ที่จะกำหนดเวลาให้งานรันหลังจากเริ่มการรีสตาร์ท / ปิดระบบโดยการตั้งค่าให้งานรันหลังจากเหตุการณ์ 1074 ในบันทึกระบบใน Event Viewer ได้รับการบันทึก อย่างไรก็ตามมันจะดีสำหรับงานสั้น ๆ เท่านั้นซึ่งจะทำงานได้ตราบเท่าที่ระบบกำลังรีสตาร์ท / ปิดเครื่องซึ่งโดยปกติจะใช้เวลาเพียงไม่กี่วินาที

  • จาก Task Scheduler:

    เริ่มต้นงาน: ใน
    บันทึกเหตุการณ์:
    ที่มาของระบบ: USER32
    EventID: 1074

  • จากพรอมต์คำสั่ง:

    schtasks / create / tn "ชื่องาน" / tr "ไฟล์งาน" / sc onevent / ระบบ ec / mo * [system / eventid = 1074]

ความคิดเห็น: ตัวเลือก / ec พร้อมใช้งานจาก Windows Vista ขึ้นไป (ขอบคุณ @ t2d)

โปรดทราบว่าสถานะงานสามารถ:

การดำเนินการที่ร้องขอไม่ได้ดำเนินการเนื่องจากผู้ใช้ไม่ได้เข้าสู่ระบบเครือข่าย ไม่มีบริการที่ระบุ (0x800704DD)

อย่างไรก็ตามไม่ได้หมายความว่าจะไม่ทำงาน


ขอบคุณสำหรับทิป! @Oz สิ่งนี้จะทำงานเมื่อรีสตาร์ทและปิดเครื่องหรือไม่ กรณีที่ฉันพยายามจะกล่าวถึงคือ Windows Update บังคับให้รีสตาร์ท ...
Erik Eidt

ใช่มันเป็นเพราะเหตุการณ์นี้เข้าสู่ระบบรีสตาร์ท / ปิดเครื่อง
Oz Edri

โปรดทราบว่าการโต้แย้ง/ec systemไม่ได้อยู่ /ru systemแต่จะเรียกว่า ดูsupport.microsoft.com/en-us/kb/814596#bookmark-4
t2d

@ t2d ในขณะที่ / ec มีอยู่ในเวอร์ชันที่ใหม่กว่า / ru หมายถึงสิ่งที่แตกต่างอย่างสิ้นเชิง EC อนุญาตให้คุณระบุช่องเหตุการณ์ในขณะที่ ru อนุญาตให้คุณเรียกใช้ในฐานะผู้ใช้อื่น อย่างไรก็ตามขอขอบคุณสำหรับความคิดเห็นของคุณ ฉันจะแก้ไขโพสต์ตามนั้น
Oz Edri

1
มีการพิมพ์ผิดในตัวปรับแต่งในตัวอย่างของคุณ ควรจะเป็น... /mo *[system/eventid=1074]ไม่ใช่.../mo *[system/evendid=1074]
testworks

4

วิธีแก้ปัญหาอย่างหนึ่งคือการเขียนไฟล์แบตช์ง่ายๆเพื่อเรียกใช้โปรแกรมจากนั้นปิดคอมพิวเตอร์

คุณสามารถปิดได้จากบรรทัดคำสั่งดังนั้นสคริปต์ของคุณจึงค่อนข้างง่าย:

c:\directory\myProgram.exe
C:\WINDOWS\system32\shutdown.exe -s -f -t 0

4

หากคุณเรียกใช้ GPEdit.MSC คุณสามารถไปที่ Computer Configuration -> Windows Settings -> Scripts และเพิ่มสคริปต์เริ่มต้น / ปิดระบบ ไฟล์เหล่านี้อาจเป็นไฟล์แบตช์ธรรมดาหรือแม้แต่ EXE ที่สมบูรณ์ นอกจากนี้คุณสามารถปรับการกำหนดค่าผู้ใช้สำหรับสคริปต์การเข้าสู่ระบบและการออกจากระบบได้ในเครื่องมือเดียวกันนี้ เครื่องมือนี้ไม่มีใน WIndows XP Home


4

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

วิธีใช้ตัวแก้ไขนโยบายกลุ่มเพื่อจัดการนโยบายคอมพิวเตอร์ในระบบ Windows XP


1

คุณสามารถเรียกใช้ไฟล์แบตช์ที่เรียกโปรแกรมของคุณได้ดูการสนทนาที่นี่สำหรับวิธีการทำ: http://www.pcworld.com/article/115628/windows_tips_make_windows_start_and_stop_the_way_you_want.html

(จากการค้นหาของ Google: งานกำหนดเวลาของ windows ทำงานเมื่อปิดเครื่อง)


1

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

c:\windows\system32\shutdown -s -f -t 00

มันคืออะไร

  1. รันกระบวนการปิดระบบ
  2. แสดงการแจ้งเตือน
  3. บังคับให้กระบวนการทำงานทั้งหมดหยุดลง
  4. ดำเนินการทันที

1

ใน Windows 10 Pro สามารถลงทะเบียนไฟล์แบตช์ได้ วิธีแก้ปัญหาในการลงทะเบียน cmd.exe และระบุไฟล์ bat เป็นพารามิเตอร์ไม่จำเป็น ฉันเพิ่งทำสิ่งนี้ลงทะเบียนทั้งสคริปต์การปิดระบบและสคริปต์เริ่มต้น (บูต) และมันก็ใช้งานได้


0

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

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