إصلاح المهمة المجدولة لن يتم تشغيلها لملف BAT

إذا كان لديك ملف BAT وكنت تحاول تشغيله تلقائيًا باستخدام برنامج جدولة المهام(Task Scheduler) في Windows ، فربما تكون قد واجهت المشكلة حيث لا يتم تشغيله إلا إذا قمت بتشغيل المهمة يدويًا.

لقد قمت بإنشاء ملف دفعي يحذف كل شيء داخل مجلد مؤقت كلما بدأ تشغيل الكمبيوتر. لقد أنشأت مهمة أساسية في "برنامج جدولة المهام"(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:\Users\username\Documents . ذهبت إلى C: \ Users \ username ، وانقر بزر الماوس الأيمن على مجلد المستندات(Documents) ، ثم نقرت على خصائص(Properties) . ثم قمت بالنقر فوق علامة التبويب الأمان .(Security)

كما ترى ، تمت إضافة حساب المستخدم Aseem بشكل صريح ومنحه إذن التحكم الكامل(Full Control) . الآن عليك أن تفعل الشيء نفسه للمجلد الذي يحتوي على البرنامج النصي وللبرنامج النصي نفسه. لا تفترض أنك إذا أعطيت أذونات للمجلد الذي يحتوي على البرنامج النصي ، فأنت على ما يرام ، لأنك لست كذلك. أخيرًا ، قم بتعيين الأذونات على أي ملفات ومجلدات سيتفاعل معها البرنامج النصي.

في حالتي ، كان علي الانتقال إلى C:\test ، والنقر بزر الماوس الأيمن فوق هذا المجلد وإضافة حساب المستخدم الخاص بي هناك مع أذونات التحكم الكامل . (Full Control)إنه نوع من المزعج أن عليك القيام بذلك ، لكنها الطريقة الوحيدة لتشغيل البرنامج النصي.

ملاحظة: يجب أن يكون الحساب الذي يتم استخدامه لتشغيل البرنامج النصي جزءًا من مجموعة المسؤولين المحليين على الكمبيوتر. في حالتي ، حساب Aseem هو حساب مسؤول وبالتالي فهو جزء من مجموعة Administrators المحلية (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. )

الخطوة الثانية: تحقق من إعدادات برنامج جدولة المهام(Task Scheduler Settings)

الآن دعنا ننتقل إلى Task Scheduler وقم بتغيير الإعدادات المناسبة هناك. افتح برنامج جدولة المهام(Task Scheduler) وابحث عن مهمتك ضمن قسم المهام النشطة( Active Tasks) . يجب أن يتم سردها بالترتيب الأبجدي.

انقر نقرًا مزدوجًا فوقه وسيقوم بفتح المهمة بنفسه في نفس النافذة. لتعديل المهمة ، سيكون عليك النقر بزر الماوس الأيمن عليها واختيار خصائص(Properties) .

هناك العديد من علامات التبويب وهناك أمران يجب فحصهما وتغييرهما هنا. أولاً ، في علامة التبويب " عام(General) " ، تحتاج إلى التحقق من حساب المستخدم الذي يتم استخدامه لتشغيل المهمة. في حالتي ، إنه حساب Aseem ، الذي منحته أذونات مسبقًا على نظام الملفات وهو جزء من مجموعة Administrators على الكمبيوتر.

بعد ذلك ، يجب عليك اختيار تشغيل ما إذا كان المستخدم قد قام بتسجيل الدخول أم لا( Run whether user is logged on or not) واختيار Windows Vista ، Windows Server 2008 في المربع Configure for .

في علامة التبويب " الإجراءات(Actions) " ، يجب عليك تحديد البرنامج النصي ، والنقر فوق " تحرير(Edit) " ثم إضافة المسار إلى المجلد الذي يحتوي على البرنامج النصي في المربع " ابدأ" (اختياري) . (e Start in (optional))قد يبدو هذا غير ضروري ، لكنه ليس كذلك. في حالتي ، أضع C:\Users\Aseem\Documents\ في المربع.

الآن انقر فوق " موافق(OK) " لحفظ الإعدادات. عند القيام بذلك ، قد يظهر مربع حوار حيث يتعين عليك إدخال كلمة المرور لحساب المستخدم الذي سيقوم بتشغيل المهمة. هذا يطرح مطلب آخر. لا يمكنك استخدام حساب لا يحتوي على كلمة مرور. يجب أن يكون لحساب المستخدم كلمة مرور حتى يتم تشغيل المهمة.

أخيرًا ، يجب عليك تشغيل المهمة يدويًا مرة واحدة في "برنامج جدولة المهام"(Task Scheduler) للتأكد من تشغيلها. إذا كان يعمل بشكل جيد يدويًا بعد تغيير جميع الإعدادات ، فيجب تشغيله عندما يُفترض أن يتم تشغيله. في حالتي ، كان من المفترض أن يحدث ذلك عند بدء التشغيل وبعد إجراء التغييرات ، سار كل شيء على ما يرام.

لاحظ أنه إذا كان البرنامج النصي الخاص بك يقوم بالوصول إلى أجهزة كمبيوتر مختلفة في مجال ما عند التشغيل ، فيجب أن تحاول استخدام حساب مسؤول المجال لتشغيل المهمة. سيضمن هذا أن الحساب لديه أذونات كافية للوصول إلى أجهزة الكمبيوتر البعيدة.

هناك عنصر آخر يجب ملاحظته وهو ما إذا كان البرنامج النصي الخاص بك يصل إلى الموارد الموجودة على مشاركة عبر الشبكة. إذا كان البرنامج النصي يستخدم الأحرف للوصول إلى الشبكة ، فقد لا يتم تشغيله. على سبيل المثال ، بدلاً من استخدام F:\data\ ، يجب عليك استخدام \\machinename\share_name\data\ Â في البرنامج النصي. إذا كنت لا تزال غير قادر على تشغيل البرنامج النصي ، فقم بإرسال تعليق هنا وسأحاول مساعدتك. يتمتع!



About the author

أنا مهندس برمجيات بخبرة تزيد عن 10 سنوات في العمل على أجهزة Apple iOS والأجهزة الطرفية. جعلتني تجربتي في هندسة الأجهزة شغوفًا بالتأكد من أن أجهزة عملائنا موثوقة وسلسة قدر الإمكان. لقد كنت أكتب كودًا خلال السنوات القليلة الماضية وتعلمت استخدام Git و Vim و Node.js.



Related posts