แก้ไขงานที่กำหนดเวลาไว้จะไม่ทำงานสำหรับ .BAT File

หากคุณมีไฟล์ .BAT และกำลังพยายามเรียกใช้ไฟล์โดยอัตโนมัติโดยใช้Task SchedulerในWindowsคุณอาจประสบปัญหาที่ไม่สามารถเรียกใช้งานได้เว้นแต่คุณจะเรียกใช้งานด้วยตนเอง

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

ในบทความนี้ ฉันจะแนะนำคุณเกี่ยวกับการตั้งค่าและการอนุญาตที่คุณต้องปรับเพื่อให้แบตช์ไฟล์ทำงานโดยไม่ต้องมีการแทรกแซงด้วยตนเอง

ขั้นตอนที่ 1: ตรวจสอบสิทธิ์ของFile/Folder

ขั้นตอนแรกในการแก้ไขปัญหานี้คือการทำให้แน่ใจว่าบัญชีที่คุณใช้เพื่อเรียกใช้สคริปต์ในTask Schedulerมี สิทธิ์ ควบคุม(Full Control) ทั้งหมด ในโฟลเดอร์ที่มีสคริปต์ ตัวสคริปต์เอง และโฟลเดอร์/ไฟล์ใดๆ ที่สคริปต์สัมผัสเมื่อรัน

ตัวอย่างเช่น ฉันสร้างแบทช์สคริปต์ด้านล่าง:

set folder="C:\test"
cd /d %folder%
for /F "delims=" %%i in ('dir /b') do (rmdir "%%i" /s/q || del "%%i" /s/q)

ฉันบันทึก ไฟล์ .BATลงในโฟลเดอร์เอกสารของฉันแล้ว เส้นทางคือC C:\Users\username\Documentsฉันไปที่ C:\Users\username คลิกขวาที่ โฟลเดอร์ Documentsแล้วคลิกProperties จากนั้นฉันคลิกที่แท็บความปลอดภัย(Security)

ดังที่คุณเห็น บัญชีผู้ใช้Aseemได้รับการเพิ่มอย่างชัดเจนและให้ สิทธิ์ การควบคุม(Full Control)ทั้งหมด ตอนนี้ คุณต้องทำสิ่งเดียวกันสำหรับโฟลเดอร์ที่มีสคริปต์และสำหรับสคริปต์เอง อย่าเพียงแต่ทึกทักเอาเองว่าหากคุณให้สิทธิ์แก่โฟลเดอร์ที่มีสคริปต์ คุณก็พร้อมที่จะไปเพราะคุณไม่ใช่ สุดท้าย ตั้งค่าการอนุญาตสำหรับไฟล์และโฟลเดอร์ที่สคริปต์จะโต้ตอบด้วย

ในกรณีของฉัน ฉันต้องไปที่C:\testคลิกขวาที่โฟลเดอร์นั้นและเพิ่มบัญชีผู้ใช้ของฉันที่นั่นโดยมีสิทธิ์ควบคุม ทั้งหมด (Full Control)เป็นเรื่องที่น่ารำคาญที่คุณต้องทำเช่นนี้ แต่เป็นวิธีเดียวที่จะทำให้สคริปต์ทำงาน

หมายเหตุ: บัญชีที่ใช้เพื่อเรียกใช้สคริปต์จะต้องเป็นส่วนหนึ่งของกลุ่มผู้ดูแลระบบภายในเครื่องคอมพิวเตอร์ ในกรณีของฉัน บัญชี Asem เป็นบัญชีผู้ดูแลระบบและเป็นส่วนหนึ่งของกลุ่มผู้ดูแลระบบในพื้นที่ (Note: The account that is being used to run the script has to be part of the local Administrators group on the computer. In my case, the Aseem account is an administrator account and therefore part of the local Administrators group. )

ขั้นตอนที่ 2: ตรวจสอบการตั้งค่าตัวกำหนดเวลางาน(Task Scheduler Settings)

ตอนนี้ไปที่Task Schedulerและเปลี่ยนการตั้งค่าที่เหมาะสมที่นั่น เปิดTask Schedulerและค้นหางานของคุณภายใต้ส่วนActive Tasks ( Active Tasks)ควรแสดงรายการตามลำดับตัวอักษร

ดับเบิลคลิกที่มัน และมันจะเปิดงานด้วยตัวเองในหน้าต่างเดียวกัน ในการแก้ไขงาน คุณจะต้องคลิกขวาและเลือกProperties

มีหลายแท็บและสองสิ่งที่ต้องตรวจสอบและเปลี่ยนแปลงที่นี่ ประการแรก บน แท็บ ทั่วไป(General)คุณต้องตรวจสอบบัญชีผู้ใช้ที่ใช้เพื่อรันงาน ในกรณีของฉัน เป็น บัญชี Aseemซึ่งฉันให้สิทธิ์แก่ระบบไฟล์ก่อนหน้านี้ และเป็นส่วนหนึ่งของ กลุ่ม ผู้ดูแลระบบ(Administrators)บนคอมพิวเตอร์

ถัดไป คุณต้องเลือกตัวเลือกเรียกใช้ไม่ว่าผู้ใช้จะเข้าสู่ระบบหรือไม่( Run whether user is logged on or not)และเลือกWindows Vista, Windows Server 2008ในกล่องกำหนดค่าสำหรับ(Configure for)

บน แท็บ Actionsคุณต้องเลือกสคริปต์ คลิกที่Editแล้วเพิ่มในพา ธ ไปยังโฟลเดอร์ที่มีสคริปต์ใน th e Start ใน(e Start in (optional))กล่อง (เป็นทางเลือก) นี้อาจดูเหมือนไม่จำเป็น แต่ก็ไม่ ในกรณีของฉัน ฉันใส่C:\Users\Aseem\Documents\ในกล่อง

ตอนนี้คลิกที่ตกลง(OK)เพื่อบันทึกการตั้งค่า เมื่อคุณทำเช่นนี้ กล่องโต้ตอบอาจปรากฏขึ้นที่คุณต้องป้อนรหัสผ่านสำหรับบัญชีผู้ใช้ที่จะเรียกใช้งาน สิ่งนี้ทำให้เกิดข้อกำหนดอื่น คุณไม่สามารถใช้บัญชีที่ไม่มีรหัสผ่านได้ บัญชีผู้ใช้จะต้องมีรหัสผ่านเพื่อให้งานทำงาน

สุดท้ายนี้ คุณควรรันงานด้วยตนเอง 1 ครั้งในTask Schedulerเพื่อให้แน่ใจว่าทำงาน ถ้ามันทำงานได้ดีด้วยตนเองหลังจากที่คุณเปลี่ยนการตั้งค่าทั้งหมด มันก็ควรจะทำงานเมื่อควรจะทริกเกอร์ ในกรณีของฉัน มันควรจะเกิดขึ้นเมื่อเริ่มต้น และหลังจากที่ฉันทำการเปลี่ยนแปลง ทุกอย่างทำงานได้ดี

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

ข้อควรทราบอีกประการหนึ่งคือถ้าสคริปต์ของคุณเข้าถึงทรัพยากรบนเครือข่ายที่ใช้ร่วมกัน หากสคริปต์ของคุณใช้ตัวอักษรในการเข้าถึงเครือข่าย สคริปต์อาจไม่ทำงาน ตัวอย่างเช่น แทนที่จะใช้F:\data\คุณควรใช้\\machinename\share_name\data\ Â ในสคริปต์ หากคุณยังไม่สามารถเรียกใช้สคริปต์ของคุณได้ ให้โพสต์ความคิดเห็นที่นี่ และฉันจะพยายามช่วย สนุก!



About the author

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



Related posts