เหตุใดงานตัวกำหนดตารางเวลางาน windows 7 จึงล้มเหลวด้วยข้อผิดพลาด 2147942667


133

ฉันกำลังเจอปัญหาแปลก ๆ ฉันได้กำหนดงานที่จะล็อกไฟล์แบตช์ เมื่อฉันรันงานด้วยตัวเลือกRun only when user is logged onทุกอย่างทำงานได้ดี Run whether user is logged on or notแต่ผมต้องการที่จะเรียกใช้งานนี้ในพื้นหลังและด้วยเหตุนี้ฉันกำลังทำงานโดยใช้ตัวเลือก ตอนนี้เมื่อฉันรันงานมันไม่ทำงาน ฉันได้รับข้อผิดพลาด 2 รายการต่อไปนี้ ฉันไม่เข้าใจข้อผิดพลาดนี้ โปรดช่วยฉันแก้ไขปัญหานี้.

 Task Scheduler failed to launch action "C:\Windows\SYSTEM32\cmd.exe" in instance "{2a7cc950-fad9-4633-9701-af75a0fd220d}" of task "\stmm\Daemon". Additional Data: Error Value: 2147942667.
 Task Scheduler failed to start instance "{2a7cc950-fad9-4633-9701-af75a0fd220d}" of "\stmm\Daemon"  task for user "GBLADHEDANI\N011940" . Additional Data: Error Value: 2147942667.

41
แปลงรหัสข้อผิดพลาดเป็นฐานสิบหกเพื่อรับ 0x8007010B 7 ทำให้เป็นข้อผิดพลาดของ Windows ซึ่งทำให้รหัสข้อผิดพลาด 010B 267 "ชื่อไดเร็กทอรีไม่ถูกต้อง" แน่นอนว่าเกิดขึ้น
Hans Passant

1
@HansPassant ที่ยอดเยี่ยม แปลงเป็นเลขฐานสิบหกใช้สี่ไบต์สุดท้ายเพื่อค้นหารหัสข้อผิดพลาด หวังว่าคงจำได้นะ!
Mark Berry

FWIW ฉันพบว่า UI ของ Task Scheduler หลักมีงานที่มีคอลัมน์ 'Last Run Result' หรือคอลัมน์ที่คล้ายกันแสดงข้อความแสดงข้อผิดพลาด 'ชื่อไดเร็กทอรีไม่ถูกต้อง' ที่อ่านได้ การแก้ไขในสถานการณ์ของเราคือคำตอบจาก jp2code ด้านล่างเกี่ยวกับการลบเครื่องหมายคำพูดออกจากโฟลเดอร์ Start In เพราะฉันคัดลอกจากคำสั่งที่ยกมาเพื่อเรียกใช้
Neek


1
@RJDunnill ขอบคุณที่แท็กฉันเรื่องนั้น มีประโยชน์มาก!
Mark Berry

คำตอบ:


254

ฉันมีปัญหาเดียวกันนี้

พบวิธีแก้ปัญหาสำหรับฉันในบทความ Microsoft KB 2452723:

งานตามกำหนดการของ Windows Vista เป็นต้นไปไม่สามารถรันได้หากเส้นทางในฟิลด์ "เริ่มใน (ไม่บังคับ)" มีเครื่องหมายคำพูด

โดยทั่วไปแก้ไขงานที่กำหนดเวลาไว้ของคุณและนำใบเสนอราคาออกจากฟิลด์ Start In:

  1. เปิดงานตามกำหนดการของคุณ
  2. เปลี่ยนเป็นแท็บ "การดำเนินการ"
  3. เปิด Action ของคุณ
  4. ลบเครื่องหมายคำพูด (") ออกจากช่อง" เริ่มใน (ไม่บังคับ) "
  5. บันทึกและปิดกล่องโต้ตอบที่เปิดอยู่ทั้งหมด

แก้ไขกล่องโต้ตอบการดำเนินการ

หากต้องการรับข้อความแสดงข้อผิดพลาดที่เกี่ยวข้อง:

1) แปลง 2147942667 เป็นเลขฐานสิบหก: 8007010B
2) ใช้ตัวเลข 4 หลักสุดท้าย (010B) และแปลงเป็นทศนิยม: 267
3) เรียกใช้: net helpmsg 267
4) ผลลัพธ์: "ชื่อไดเรกทอรีไม่ถูกต้อง"

หน้าต่างพร้อมรับคำสั่ง


5
ปัญหาเกี่ยวข้องกับการอนุญาตการใช้งาน เมื่อเรียกใช้ตัวเลือกRun whether user is logged on or notฉันใช้ผู้ใช้อื่นเพื่อเรียกใช้แอปพลิเคชัน ผู้ใช้ใหม่นี้ไม่มีสิทธิ์ที่เหมาะสมในการอ่านข้อมูลและด้วยเหตุนี้ข้อผิดพลาด ขอบคุณ
Alok

1
มันก็ไม่ใช่ "การอนุญาต" สำหรับฉันเช่นกัน มันคือโฟลเดอร์Start in ถ้ามีแสดง"C:\Some Path\"ว่าผิดเพราะมีเครื่องหมายคำพูด ต้องพูดว่า `C: \ Some Path` (ไม่มีเครื่องหมายอัญประกาศ)
jp2code

16
นี่คือทางออก ลบเครื่องหมายคำพูดออกจากกล่องข้อความเริ่มในโฟลเดอร์ การแก้ไขที่ค่อนข้างลึกลับ เสียเวลาไปหลายชั่วโมง - หวังว่า Microsoft จะช่วยให้ง่ายขึ้นด้วยข้อผิดพลาดที่เป็นประโยชน์หรือแก้ไขข้อบกพร่องที่ชัดเจนนี้
โจเซฟ

6
สำหรับสิ่งที่คุ้มค่าฉันได้รับข้อผิดพลาดนี้ แต่การตั้งค่าเริ่มต้นในโฟลเดอร์ของฉันไม่มีเครื่องหมายคำพูด แต่ไม่มีเส้นทางที่อ้างถึง
shufler

2
ฉันไม่ได้ใช้เครื่องหมายคำพูดและยังคงได้รับปัญหาเดิม @RayofCommand: คุณพบวิธีแก้ปัญหานี้หรือไม่
User1551892

9

สำหรับฉันมันคือ "เริ่มต้นใน" - ฉันคัดลอกค่าจากเซิร์ฟเวอร์รุ่นเก่าและอัปเดตเส้นทางไปยังตำแหน่ง. exe ใหม่ แต่ฉันลืมอัปเดตตำแหน่ง "เริ่มต้นใน" - หากไม่มีอยู่คุณ ได้รับข้อผิดพลาดนี้ด้วย

อ้างถึงความคิดเห็นของ @ hans-passant จากด้านบนเนื่องจากมีประโยชน์ในการแก้ไขข้อบกพร่องนี้:

แปลงรหัสข้อผิดพลาดเป็นฐานสิบหกเพื่อรับ 0x8007010B 7 ทำให้เป็นข้อผิดพลาดของ Windows ซึ่งทำให้รหัสข้อผิดพลาด 010B 267 "ชื่อไดเร็กทอรีไม่ถูกต้อง" แน่นอนว่าเกิดขึ้น


7

สิ่งนี้อาจเกิดขึ้นได้จากหลายสาเหตุ ในกรณีของฉันสิ่งนี้เกิดขึ้นเนื่องจากปัญหาการอนุญาต ผู้ใช้ที่งานกำลังทำงานอยู่เนื่องจากไม่มีสิทธิ์เขียนลงในไดเร็กทอรี logs จึงล้มเหลวด้วยข้อผิดพลาดนี้


3

ฉันมีปัญหาเดียวกันใน Windows7

ฉันได้รับข้อผิดพลาด 2147942667 และรายงานว่าไม่สามารถรัน c: \ windows \ system32 \ CMD.EXE ฉันลองใช้และไม่มีเครื่องหมายอัญประกาศคู่ใน Script และ Start-in และมันก็ไม่แตกต่างกัน จากนั้นฉันลองเปลี่ยนการอ้างอิงเส้นทางทั้งหมดไปยังไดรฟ์เครือข่ายที่แมปและด้วยการอ้างอิง UNC (\ Server1 \ Sharexx \ my_scripts \ run_this.cmd) และแก้ไขให้ฉัน ตบเบา ๆ


ในที่สุดสิ่งนี้ก็ทำเพื่อฉันเช่นกัน ฉันต้องใช้ "Net Use" เพื่อรับชื่อเซิร์ฟเวอร์จากนั้น ping เพื่อรับชื่อโดเมน ท้ายที่สุดมันคือ \\ machine.domain.local \ app.exe \\ Machine \ app.exe ไม่ทำงาน
greg

ทำเพื่อฉันด้วย ขอบคุณ!
Jace

2

สำหรับคำตอบทั่วไปให้แปลงค่าความผิดพลาดเป็นเลขฐานสิบหกจากนั้นค้นหาค่าฐานสิบหกที่Windows Task Scheduler Error และ Success Constants


3
สวัสดีไมค์ ผมใช้เครื่องคิดเลข Windows ในโหมดโปรแกรมเมอร์การแปลง2147942667เพื่อ 0x8007010BHEX: ค่านั้นไม่ปรากฏในลิงค์ที่คุณให้มา แค่ FYI แน่นอน
jp2code

4
ฉันเพิ่ง Googled มัน: 2147942667 in hex. ตอนนี้ Google ก็เป็นเครื่องคิดเลขเช่นกัน
Baodad

0

สำหรับฉันมันคือ "เริ่มต้นใน" - ฉันบังเอิญทิ้งไว้ใน ".py" ต่อท้ายชื่อโปรแกรมของฉัน และฉันลืมใช้ตัวพิมพ์ใหญ่ชื่อโฟลเดอร์ที่อยู่ใน ('แอพ')


0

สำหรับฉันนี่เป็นเพราะตัวแปรสภาพแวดล้อม PATH ของผู้ใช้ซึ่งดูเหมือนจะไม่ทำงานแม้ว่าผู้ใช้จะถูกต้องก็ตามดังนั้นฉันจึงต้องใส่พา ธ ปฏิบัติการทั้งหมดลงในฟิลด์โปรแกรม

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