در این مقاله میخوام با زبان ساده و خودمونی بهتون نشون بدم چطور با استفاده از اسکریپت پاورشل برای خاموشی خودکار کامپیوتر و تنظیم Task Scheduler برای خاموش شدن سیستم در ورود غیرمجاز، امنیت سیستم ویندوزتون رو افزایش بدید. فکر کنید هر دفعه که کسی جز خودتون پشت کامپیوتر میشینه، سیستم شما بعد از 30 ثانیه خاموش میشه! این ترفندهای امنیتی نه تنها میتونن به محافظت از سیستم کمک کنن، بلکه قدم اولی براتون برای ورود به دنیای جذاب کدنویسی و خودکارسازی کارها خواهند بود.
مقدمه
خیلی وقتا ما میشنویم که برنامهنویسی چیزیه پیچیده و برای آدمهای حرفهای دنیای دور و دستنیافتنیه. اما باور کنید که یادگیری کدنویسی میتونه زندگی روزمرهتون رو تغییر بده؛ از کنترل دقیقتر سیستمهای کامپیوتری گرفته تا خودکارسازی کارهای تکراری و حتی خلق ایدههای نو و متفاوت. من همینجا با یه مثال عملی شروع میکنم: فرض کنید شما بخواید سیستم کامپیوترتون رو به شکلی تنظیم کنید که در صورت ورود کاربر غیرمجاز، بعد از 30 ثانیه خاموش بشه؛ البته شرط اینکه یه فولدر خاص روی دسکتاپ وجود نداشته باشه. با این روش شما به عنوان یک مدیر هوشمند، امنیت سیستم رو بالا میبرید و در عین حال با مبانی اسکریپت نویسی در پاورشل و تنظیمات Task Scheduler آشنا میشوید.
اما قبل از شروع کار، بگم که یادگیری این تکنیکها فقط یه ترفند جالب نیست. این یک دروازهی ورود به دنیای برنامهنویسیه که در آن میتونید مهارتهایی رو کسب کنید که بعدها به شما در پروژههای بزرگتر و حتی شروع کارهای حرفهای در حوزه لینوکس، پایتون، دارت و فلاتر کمک کنن. هر کسی که وارد این دنیا بشه، دیگه احساس میکنه یه چیز مهم توی زندگیش کم بوده و حالا داره اون خلاء رو با یادگیری برنامهنویسی پر میکنه.
اول از همه باید یه اسکریپت ساده پاورشل برای خاموش کردن سیستم بنویسیم. فرض کنید میخواید بررسی کنید که آیا فولدری به اسم “nabegheha” روی دسکتاپ وجود داره یا نه. اگه وجود نداشت، بعد از 30 ثانیه سیستم رو خاموش کنه. برای این کار یه فایل متنی با پسوند ps1 (مثلاً Script.ps1) بسازید و کد زیر رو داخلش قرار بدید:
# مسیر دسکتاپ کاربر فعلی
$DesktopPath = [Environment]::GetFolderPath("Desktop")
$FolderName = "nabegheha"
$TargetFolder = Join-Path -Path $DesktopPath -ChildPath $FolderName
# چک کردن فولدر
if (-Not (Test-Path -Path $TargetFolder)) {
# منتظر موندن به مدت 30 ثانیه
Start-Sleep -Seconds 30
# دوباره چک کردن
if (-Not (Test-Path -Path $TargetFolder)) {
# خاموش کردن سیستم
Stop-Computer -Force
# یا ریستارت
# Restart-Computer -Force
}
}
این کد به شکلی ساده و سرراست عمل میکنه. در خط اول، مسیر دسکتاپ رو مشخص میکنیم، بعد اسم فولدر رو تعریف میکنیم. بعد با استفاده از تابع Test-Path چک میکنیم که آیا این فولدر وجود داره یا نه. اگر وجود نداشت، با دستور Start-Sleep 30 ثانیه صبر میکنیم و سپس با دستور Stop-Computer سیستم رو خاموش میکنیم. در غیر این صورت، کامپیوتر خاموش نمیشه.
وقتی این اسکریپت رو میبینید، به سرعت متوجه میشید که برنامهنویسی چقدر ساده و در عین حال قدرتمنده. این اولین قدمی بود که شما رو به سمت دنیای کدنویسی نزدیک میکنه. حالا تصور کنید که با یادگیری زبانهایی مثل پایتون یا حتی تکنولوژیهایی مثل دارت و فلاتر، بتونید پروژههای بسیار پیچیدهتر و حرفهایتری بسازید. دنیای برنامهنویسی پر از امکانات بیپایان است و همین کد ساده میتونه شما رو به یادگیری بیشتر ترغیب کنه.
حالا که اسکریپت پاورشل برای خاموشی خودکار کامپیوتر رو نوشتید، میخوایم بدون دخالت شما این اسکریپت به صورت خودکار اجرا بشه. برای این کار از Task Scheduler استفاده میکنیم. هدف از این کار اینه که هر بار که کاربری وارد سیستم میشه، اسکریپت ما اجرا بشه و بررسی کنه آیا شرایط لازم برای خاموش شدن سیستم فراهم شده یا نه.
برای شروع Task Scheduler رو از منوی استارت باز کنید. بعد از باز شدن برنامه، باید یه وظیفه (Task) جدید بسازید. در قسمت General یک نام مناسب انتخاب کنید؛ مثلاً “خاموشی خودکار در ورود غیرمجاز”. در تنظیمات مربوط به این وظیفه، مطمئن بشید گزینه “Run whether user is logged on or not” انتخاب شده تا اسکریپت بدون توجه به اینکه چه کسی وارد سیستم میشه اجرا شود.
بعد از این مرحله، باید یک Trigger (محرک) تعیین کنید. Trigger اینجوری تنظیم میشه که هر زمان که یک کاربر وارد سیستم میشه، اسکریپت اجرا شود. در قسمت Action هم تنظیم میکنیم که چه کاری باید انجام بشه. در اینجا مسیر اجرای برنامه پاورشل رو مشخص میکنیم؛ مثلاً مسیر کامل به فایل powershell.exe که در سیستمهای ویندوز معمولاً در مسیر زیر قرار داره :
این تنظیمات تضمین میکنه که اسکریپت شما بدون هیچ مشکلی اجرا بشه و هیچ مانعی از سمت قوانین Execution Policy وجود نداشته باشه. وقتی این مراحل رو به اتمام رساندید، هر بار که کسی وارد سیستم بشه، اسکریپت شما فعال میشه و در صورت نبود فولدر مشخص، سیستم بعد از 30 ثانیه خاموش میشه. این یکی از بهترین مثالهاست برای استفاده از اسکریپت پاورشل برای خاموش کردن اتوماتیک کامپیوتر به عنوان یک ترفند امنیتی.
قدم سوم: پنهان کردن اسکریپت با فایل Batch
ممکنه بپرسید که چرا باید این کار رو بکنیم؟ چون اگه اسکریپت رو مستقیماً از طریق Task Scheduler اجرا کنید، پنجره پاورشل برای مدت کوتاهی روی صفحه ظاهر میشه و ممکنه برای بعضی از کاربران یا کسانی که به امنیت اهمیت میدن، نمایان بودن آن مسئلهای ناخوشایند باشه. برای حل این مشکل، ما از یک فایل Batch استفاده میکنیم که اجرای اسکریپت رو کاملاً پنهان کنه.
برای این کار یک فایل متنی جدید بسازید و آن را با پسوند .bat ذخیره کنید. مثلاً فایل رو run_script.bat بنامید. داخل این فایل کد زیر رو قرار بدید:
@echo off
powershell.exe -WindowStyle Hidden -ExecutionPolicy Bypass -File "C:\Path\To\Your\Script.ps1"
در این کد، با استفاده از پارامتر -WindowStyle Hidden، پنجره پاورشل به صورت پنهان اجرا میشه. این یعنی وقتی کاربر وارد سیستم میشه، بدون اینکه متوجه بشه پشت پرده یه اسکریپت در حال اجراست، سیستم مورد نظر بررسی شده و در صورت نیاز خاموش میشه. وقتی این فایل Batch رو آماده کردید، در Task Scheduler به جای اجرای مستقیم فایل پاورشل، فایل Batch رو به عنوان برنامهای که باید اجرا بشه انتخاب کنید.
این مرحله یکی از جذابترین قسمتهای خودکارسازی کارهاست که میتونه شما رو بیشتر به دنیای کدنویسی علاقهمند کنه؛ چرا که یاد میگیرید چگونه از ابزارهای مختلف برای پنهان کردن اجرای کدها استفاده کنید. این تجربه شاید به شما انگیزه بده که درباره زبانهای برنامهنویسی دیگه مثل پایتون تحقیق کنید، چون در پایتون هم همین گونه تکنیکهای جالب و کارآمد وجود داره.
قدم چهارم: رفع مشکل صفحه سیاه با اسکریپت VBS
حتی بعد از استفاده از فایل Batch، ممکنه برای مدت کوتاهی یه پنجره سیاه دیده بشه که باعث جلب توجه ناخواسته بشه. برای این که این مشکل رو کاملاً برطرف کنیم، از یه اسکریپت VBS بهره میبریم. این اسکریپت به گونهای طراحی شده که فایل Batch شما رو کاملاً در پشت صحنه اجرا کنه.
برای ایجاد این اسکریپت، یه فایل متنی جدید بسازید و آن را با پسوند .vbs ذخیره کنید. مثلاً فایل رو run_hidden.vbs بنامید. سپس کد زیر رو داخل فایل قرار بدید:
در این کد، اسکریپت VBS فایل Batch را با استفاده از دستور Run و پارامتر صفر اجرا میکنه که به معنای اجرای کامل پنهان است. این یعنی حتی اون پنجره سیاه هم هیچوقت دیده نخواهد شد. وقتی این فایل VBS رو آماده کردید، در Task Scheduler به عنوان برنامه اجرایی، به جای فایل Batch، فایل VBS رو انتخاب کنید.
این مرحله نه تنها امنیت سیستم رو بالا میبره بلکه نشون میده که با ترکیب چند زبان برنامهنویسی میتونید راهکارهای بسیار حرفهای و مخفیانهای ارائه بدید. شاید همین ترکیب چند زبان و ابزار، شما رو تشویق کنه که درباره زبانهای برنامهنویسی دیگه مثل پایتون هم بیشتر بدونید؛ پایتون زبانی است که به خاطر سادگی و قدرتش در پروژههای کوچک و بزرگ بسیار محبوب شده.
برنامهنویسی در هر قدم
حالا که این مراحل رو با هم طی کردیم، شاید بگید این فقط یه ترفند ساده برای خاموش کردن سیستم است. اما واقعیت اینه که هر قدمی که در اینجا برداشتیم، شما رو به دنیای جذاب کدنویسی نزدیکتر کرده. وقتی از اسکریپت پاورشل استفاده میکنید، قدم به قدم یاد میگیرید چطور دستورها رو به درستی بنویسید و سیستم عامل رو کنترل کنید. وقتی به Task Scheduler میپردازید، متوجه میشید که سیستمهای مدرن چقدر قابلیت سفارشیسازی دارن. و وقتی از فایل Batch و VBS استفاده میکنید، به ترکیب زبانها و ابزارهای مختلف میپردازید که این مهارتها در دنیای واقعی بسیار کاربرد دارن.
اگر به یادگیری لینوکس علاقه دارید، باید بدونید که لینوکس یکی از محبوبترین سیستمعاملهای سروری و توسعهدهندههاست. وقتی با لینوکس کار میکنید، یاد میگیرید که چگونه سیستم را به شکل عمیقتری مدیریت کنید و از ابزارهای خط فرمان بهره ببرید. همچنین، زبان پایتون هم یکی از بهترین زبانهای برنامهنویسی برای شروع است. پایتون به دلیل سادگی، خوانایی و کاربردهای گستردهاش در علم داده، وب و حتی اتوماسیون سیستمها، بسیار محبوب است. شاید همین حالا بخواهید اولین قدم رو بردارید و با آموزشهای آنلاین پایتون شروع کنید.
علاوه بر این، اگر به ساخت اپلیکیشنهای موبایل علاقه دارید، دنیای دارت و فلاتر هم منتظر شماست. فلاتر با دارت به شما این امکان رو میده که اپلیکیشنهایی بسازید که هم برای اندروید و هم iOS به صورت کراس پلتفرم اجرا بشن. این تکنولوژی نه تنها از نظر سرعت و کیفیت عملکرد بالا است بلکه یادگیری آن میتواند درهای جدیدی از فرصتهای شغلی رو به روی شما باز کنه.
هر کدام از این زبانها و تکنولوژیها، از پاورشل تا لینوکس، پایتون و فلاتر، بخش کوچکی از دنیای برنامهنویسی رو تشکیل میدهند. وقتی به این دنیا وارد میشید، به سرعت متوجه میشید که چقدر فضای یادگیری و رشد در آن بینهایت است. هر ترفند امنیتی که یاد میگیرید، هر اسکریپتی که مینویسید، تنها آغازیه؛ یک دنیای پر از امکانات برای خلق، تغییر و بهبود دنیای اطرافتون.
تجربه عملی و افزایش انگیزه
ممکنه بعد از خواندن این مقاله، احساس کنید که تنها یک ترفند ساده رو دیدید، اما این ترفندها یک سرآغاز هستن. تصور کنید اگر بتونید از همین مبانی به سمت برنامههای پیچیدهتر و کاربردیتر حرکت کنید؛ مثلاً ایجاد اپلیکیشنهایی که بتوانند دادهها رو تحلیل کنند، یا حتی توسعه وبسایتهای تعاملی با استفاده از فریمورکهای محبوب. وقتی یاد میگیرید که چطور از اسکریپتهای ساده مثل این استفاده کنید، قدمهای ابتدایی رو برمیدارید که بعدها به شما در یادگیری زبانهای پیشرفتهتر کمک میکنند.
من خودم تجربه کردهام که وقتی وارد دنیای برنامهنویسی شدم، احساس میکردم دنیایی از امکانات برام باز شده. هر خط کدی که مینوشتم، نه تنها به حل یک مشکل کمک میکرد، بلکه انگیزهام رو برای یادگیری بیشتر افزایش میداد. شاید همین لحظه شما هم بخواهید بیشتر بدانید، شاید دوست داشته باشید در کنار این ترفندها، دورههای آموزشی لینوکس، پایتون، دارت و فلاتر رو هم ببینید و با یادگیری هر کدام از این تکنولوژیها، مهارتهای خودتون رو گسترش بدید.
من همیشه به دوستانم توصیه میکنم که یادگیری برنامهنویسی رو جدی بگیرند؛ چون این مهارت میتونه مسیر شغلی و حرفهای شما رو به کلی تغییر بده. حتی اگر فکر میکنید که کدنویسی برای شما سخت و پیچیده است، شروع با چیزهای ساده مثل این اسکریپت پاورشل میتونه نقطه شروع خوبی باشه. به مرور زمان، وقتی مفاهیم و زبانهای برنامهنویسی دیگه مثل پایتون یا دارت رو یاد میگیرید، خواهید دید که دنیای تکنولوژی چه قدر گسترده و جذابه.
دیدن ویدیو و دانلود کدها
برای اینکه همه مراحل رو بهتر متوجه بشید و تجربه عملی بهتری داشته باشید، من یک ویدیوی آموزشی آماده کردهام که تمام مراحل از نوشتن اسکریپت پاورشل تا استفاده از فایل Batch و VBS رو به صورت تصویری توضیح دادم. توصیه میکنم بعد از خواندن مقاله، حتماً به ویدیو نگاهی بندازید. این ویدیو به شما کمک میکنه که قدم به قدم روند رو ببینید و هر مرحله رو به صورت عملی اجرا کنید.
همچنین، من کدهای استفاده شده در این مقاله رو برای دانلود در اختیار شما قرار دادهام. اگر دوست دارید میتوانید این کدها رو دانلود کنید و هر تغییری که میخواهید رو روی آنها اعمال کنید. این فرصت خوبی هست تا خودتون دست به کار بشید و از نزدیک با مفاهیم اسکریپت نویسی و خودکارسازی کارها آشنا بشید.
سخن پایانی
در این مقاله به صورت کاملاً ساده بهتون نشون دادم که چطور با استفاده از اسکریپت پاورشل برای خاموشی خودکار کامپیوتر و تنظیم Task Scheduler برای خاموش شدن سیستم در ورود غیرمجاز، میتونید امنیت سیستم ویندوزتون رو افزایش بدید. این روش نه تنها یک ترفند امنیتی جالب است، بلکه به عنوان نقطه شروعی برای ورود به دنیای برنامهنویسی عمل میکنه. با انجام این مراحل، شما اولین قدمها رو در یادگیری زبانهای برنامهنویسی مثل پایتون، دارت، فلاتر و حتی کار با سیستمهای لینوکسی برداشتهاید.
من واقعاً امیدوارم که این مقاله الهامبخش شما باشه و حس کنجکاوی شما رو برای یادگیری بیشتر در زمینه برنامهنویسی برانگیزه. هر خط کد و هر ترفندی که یاد میگیرید، باعث میشه تا بیشتر از پیش به دنیای تکنولوژی علاقهمند بشید و به دنبال کشف امکانات جدید باشید. به همین دلیل پیشنهاد میکنم اگر علاقه دارید که قدمهای بعدی رو بردارید و برنامهنویسی رو به صورت جدی یاد بگیرید، به دورههای آموزشی آنلاین نگاهی بندازید. آموزش لینوکس میتونه به شما در درک عمیقتر سیستمهای عامل کمک کنه و پایتون هم یکی از بهترین زبانها برای شروع برنامهنویسی است. در کنار اینها، یادگیری دارت و فلاتر به شما این امکان رو میده که اپلیکیشنهای موبایل زیبا و کارآمد بسازید.
اگر سوال یا نظری در مورد مقاله دارید یا میخواهید تجربیاتتون رو با من به اشتراک بذارید، خیلی دوست دارم که در بخش نظرات زیر مقاله با من صحبت کنید. همچنین بعد از دیدن ویدیو آموزشی، نظرات و امتیازهای خودتون رو هم بگذارید تا من بدونم چقدر براتون مفید بوده و بتونم مطالب بهتری برای شما آماده کنم.
بیایید با هم این مسیر رو شروع کنیم و قدم به قدم به دنیای برنامهنویسی نزدیکتر بشیم. هر آنچه امروز یاد میگیرید، فردا میتونه تبدیل به یکی از مهارتهای کلیدی شما باشه که در حل مشکلات واقعی زندگی و کار به شما کمک کنه.
برای مشاهده ویدیو و دانلود کدها، لطفاً به پایین صفحه مراجعه کنید. مشتاقانه منتظر نظرات و تجربیات شما هستم. هر نظری که دارید، چه درباره این اسکریپتها و چه درباره علاقهمندی به یادگیری زبانهای جدید مثل پایتون، لینوکس، دارت و فلاتر، خوشحال میشوم بشنوم.
برای ثبت نظر، حتما اسم و فامیل خود را به فارسی وارد کنید.
حتما ایمیل صحیح را وارد کنید تا در صورت بررسی کارشناسان، پاسخ برای شما ایمیل شود.
داخل متن کامنت کدهای برنامه نویسی قرار ندهید.
2 نقد و بررسیها
جواد
20 بهمن 1403
سلام و ارادت. من آموزش رو مطابق ویدیوی یوتیوب تون تا اونجایی که فایل درست میشه و سیستم هم بخوبی عمل میکنه رفتم.اما قسمت مخفی کردن پاورشل وقتی میخوام فایل bat رو جایگزین کنم و اوکی میکنم این خطا رو میده an error has occurred for checkfolder.error message: one or more of the specified arguments are not valid
ما همیشه تاکید کردهایم که بهترین سرمایهگذاری، سرمایهگذاری روی خودتان است. سایت آموزشی نابغهها با هدف ارائه آموزشهای برنامه نویسی و لینوکس به شما در مسیر موفقیت کمک میکند. برای شما موفقیت و تجربهای مفید در سایت آرزو میکنیم.
ivahid Specialized and Professional Web Design &
Development Company