رفع مشکل برنامه ریزی شده برای فایل .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 را در پوشه Documents ذخیره کردم. مسیر C:\Users\username\Documents است. من به C:\Users\username رفتم، روی پوشه Documents کلیک راست کردم و روی Properties کلیک کردم . سپس روی تب Security کلیک کردم .

همانطور که می بینید، حساب کاربری Aseem به صراحت اضافه شده است و مجوز Full Control داده شده است. اکنون باید همین کار را برای پوشه حاوی اسکریپت و برای خود اسکریپت انجام دهید. فقط فرض نکنید که اگر به پوشه حاوی اسکریپت مجوز بدهید، خوب هستید که بروید، زیرا اینطور نیست. در نهایت، مجوزها را برای فایل‌ها و پوشه‌هایی که اسکریپت با آنها ارتباط برقرار می‌کند، تنظیم کنید.

در مورد من، باید به C:\test می رفتم ، روی آن پوشه راست کلیک می کردم و حساب کاربری خود را با مجوزهای Full Control در آنجا اضافه می کردم. (Full Control)این یک جورهایی آزاردهنده است که باید این کار را انجام دهید، اما این تنها راه برای اجرای اسکریپت است.

توجه: حسابی که برای اجرای اسکریپت استفاده می شود باید بخشی از گروه محلی Administrators در رایانه باشد. در مورد من، حساب 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. )

مرحله 2: تنظیمات Task Scheduler را بررسی کنید(Task Scheduler Settings)

حالا بیایید به Task Scheduler(Task Scheduler) برویم و تنظیمات مربوطه را در آنجا تغییر دهیم. Task Scheduler را باز کنید و وظیفه خود را در بخش Active Tasks پیدا کنید . آنها باید به ترتیب حروف الفبا فهرست شوند.

روی آن دابل کلیک کنید و کار به تنهایی در همان پنجره باز می شود. برای ویرایش کار، باید روی آن کلیک راست کرده و Properties را انتخاب کنید .

چندین برگه وجود دارد و چند مورد را باید در اینجا بررسی و تغییر دهید. ابتدا، در تب General ، باید حساب کاربری که برای اجرای کار استفاده می شود را بررسی کنید. در مورد من، این حساب Aseem است که قبلاً در سیستم فایل به آن مجوز داده بودم و بخشی از گروه Administrators در رایانه است.

در مرحله بعد، باید گزینه Run if user is log on or not( Run whether user is logged on or not) را انتخاب کنید و در کادر Configure for Windows Vista, Windows Server 2008 را انتخاب کنید.

در تب Actions ، باید اسکریپت را انتخاب کنید، روی Edit کلیک کنید و سپس مسیر پوشه حاوی اسکریپت را در کادر Start in (اختیاری)(e Start in (optional)) اضافه کنید. این ممکن است غیر ضروری به نظر برسد، اما اینطور نیست. در مورد من، C:\Users\Aseem\Documents\ را در جعبه قرار دادم.

حالا روی OK کلیک کنید تا تنظیمات ذخیره شوند. هنگامی که این کار را انجام می دهید، ممکن است یک گفتگو ظاهر شود که در آن باید رمز عبور حساب کاربری که وظیفه را اجرا می کند وارد کنید. این یک نیاز دیگر را به همراه دارد. شما نمی توانید از حسابی استفاده کنید که رمز عبور ندارد. حساب کاربری باید رمز عبور داشته باشد تا کار اجرا شود.

در نهایت، باید یک بار در Task Scheduler کار(Task Scheduler) را به صورت دستی اجرا کنید تا مطمئن شوید که اجرا می شود. اگر بعد از تغییر همه تنظیمات به صورت دستی خوب اجرا شود، باید زمانی که قرار است فعال شود اجرا شود. در مورد من، قرار بود این اتفاق در راه اندازی بیفتد و بعد از اینکه تغییرات را انجام دادم، همه چیز خوب کار کرد.

توجه داشته باشید که اگر اسکریپت شما هنگام اجرا به رایانه های مختلف در یک دامنه دسترسی دارد، باید سعی کنید از حساب مدیر دامنه برای اجرای کار استفاده کنید. این اطمینان حاصل می کند که حساب دارای مجوزهای کافی برای دسترسی به رایانه های راه دور است.

مورد دیگری که باید به آن توجه کنید این است که اسکریپت شما به منابع موجود در اشتراک شبکه دسترسی دارد. اگر اسکریپت شما از حروف برای دسترسی به شبکه استفاده می کند، ممکن است اجرا نشود. برای مثال، به جای استفاده از F:\data\ ، باید از \\machinename\share_name\data\ Â در اسکریپت استفاده کنید. اگر هنوز نمی توانید اسکریپت خود را اجرا کنید، یک نظر در اینجا ارسال کنید و من سعی خواهم کرد کمک کنم. لذت بردن!



About the author

من یک متخصص کامپیوتر با بیش از 10 سال تجربه هستم و در کمک به افراد در مدیریت کامپیوترهایشان در دفترشان تخصص دارم. من مقالاتی در مورد موضوعاتی مانند نحوه بهینه سازی اتصال اینترنت خود، نحوه راه اندازی رایانه برای بهترین تجربه بازی و موارد دیگر نوشته ام. اگر در مورد هر چیزی که مربوط به کار یا زندگی شخصی خود است به دنبال کمک هستید، من آن شخص برای شما هستم!



Related posts