آموزش جامع PowerShell در ویندوز ۱۱: از صفر تا حرفهای شدن (۲۰۲۶)
آموزش جامع PowerShell در ویندوز ۱۱: از صفر تا حرفهای شدن (۲۰۲۶)
PowerShell ابزاری قدرتمند و مبتنی بر خط فرمان در ویندوز ۱۱ است که به شما امکان میدهد سیستم خود را با دقت و سرعت بینظیری مدیریت کنید. این ابزار با قابلیتهای اسکریپتنویسی پیشرفته، اتوماسیون وظایف تکراری را برای کاربران عادی و حرفهای بسیار آسان میکند.
ویندوز ۱۱، با تمام زیبایی و کاربری آسانش، گاهی اوقات برای انجام کارهای پیچیده یا تکراری نیاز به ابزاری فراتر از رابط کاربری گرافیکی دارد. اینجاست که PowerShell وارد میدان میشود؛ یک پوسته خط فرمان و زبان اسکریپتنویسی قدرتمند که مدیریت سیستم را به سطحی جدید ارتقا میدهد. اگر از کاربران کنجکاو هستید که میخواهید کنترل کاملتری بر روی ویندوز خود داشته باشید یا به دنبال اتوماسیون وظایف روزمره هستید، این راهنمای جامع به شما کمک میکند تا با آموزش PowerShell در ویندوز ۱۱، از صفر شروع کرده و به یک کاربر مسلط تبدیل شوید. آمادهاید تا فرماندهی ویندوز خود را به دست بگیرید؟ با ما همراه باشید.
PowerShell چیست؟
PowerShell یک پوسته خط فرمان (Command-Line Shell) و زبان اسکریپتنویسی مبتنی بر داتنت (.NET) است که توسط مایکروسافت توسعه یافته. برخلاف خط فرمان سنتی (CMD) که فقط با متن کار میکند، PowerShell با «اشیاء» (Objects) سروکار دارد. این یعنی خروجی یک دستور میتواند به عنوان ورودی برای دستور بعدی استفاده شود، که امکان ایجاد اسکریپتهای پیچیده و قدرتمند را فراهم میآورد. یکی از اولین گامها در آموزش PowerShell در ویندوز ۱۱، درک ماهیت این ابزار قدرتمند است.
تفاوت PowerShell و CMD
در نگاه اول، PowerShell و CMD شبیه به هم به نظر میرسند، اما تفاوتهای اساسی دارند. CMD یک ابزار قدیمیتر است که عمدتاً برای اجرای فایلهای .bat و دستورات DOS طراحی شده و خروجی آن اغلب به صورت متن خام است. در مقابل، PowerShell مدرنتر است و بر پایه .NET Framework بنا شده. این ابزار به جای متن، با اشیاء کار میکند، که امکان فیلتر کردن، مرتبسازی و دستکاری دادهها را به شکلی بسیار منعطفتر فراهم میآورد. PowerShell برای مدیریت پیشرفته سیستم، اتوماسیون و اسکریپتنویسی بسیار کارآمدتر است.
باز کردن PowerShell
برای شروع کار با PowerShell در ویندوز ۱۱، ابتدا باید آن را باز کنید. چند راه برای این کار وجود دارد:
- جستجوی ویندوز: سادهترین راه این است که در نوار جستجوی ویندوز (کنار دکمه استارت) عبارت
PowerShellرا تایپ کنید. سپس میتوانیدWindows PowerShellیاWindows Terminal (Admin)را انتخاب کنید. توصیه میشود برای دسترسی به تمامی قابلیتها، آن را با دسترسی ادمین (Run as administrator) باز کنید. - منوی Run: کلیدهای
Windows + Rرا فشار دهید، سپسpowershellرا تایپ کرده وEnterبزنید. - Windows Terminal: اگر
Windows Terminalرا نصب دارید، میتوانید آن را باز کرده و یک تب جدیدPowerShellایجاد کنید.
اجرای دستورات
در PowerShell، دستورات را «cmdlet» (بخوانید کامندلت) مینامند و ساختار استانداردی به شکل Verb-Noun دارند (مثلاً Get-Service). برای اجرای یک دستور، کافیست آن را تایپ کرده و Enter بزنید. برای مثال، برای مشاهده لیست تمام سرویسهای در حال اجرا در سیستم خود:
Get-Service
اگر میخواهید اطلاعات بیشتری درباره یک cmdlet بدانید، میتوانید از دستور Get-Help استفاده کنید:
Get-Help Get-Service -Full
این دستور تمام جزئیات مربوط به Get-Service، شامل پارامترها و مثالها را به شما نشان میدهد.
مسیرها و فایلها
یکی از کارهای اساسی در هر محیط خط فرمان، مدیریت مسیرها و فایلهاست. PowerShell دستورات مشابه CMD و لینوکس را برای این منظور دارد، اما با قابلیتهای بیشتر. برای مشاهده مسیر فعلی که در آن قرار دارید، از Get-Location استفاده کنید:
Get-Location
برای تغییر مسیر به یک پوشه دیگر، از Set-Location (یا نام مستعار cd) استفاده کنید:
Set-Location C:\Users\YourUsername\Documents
برای مشاهده محتویات یک پوشه (فایلها و زیرپوشهها)، از Get-ChildItem (یا نام مستعار ls یا dir) استفاده کنید:
Get-ChildItem
ساخت و حذف فایل
PowerShell به شما این امکان را میدهد که به راحتی فایلها و پوشهها را ایجاد یا حذف کنید. برای ساخت یک فایل متنی جدید، از New-Item با پارامتر -ItemType File استفاده کنید. برای مثال، یک فایل به نام test.txt در مسیر فعلی ایجاد میکنیم:
New-Item -Path 'test.txt' -ItemType File
برای ایجاد یک پوشه جدید، از همان New-Item با پارامتر -ItemType Directory استفاده کنید:
New-Item -Path 'MyNewFolder' -ItemType Directory
برای حذف فایل یا پوشه، از Remove-Item استفاده کنید. دقت کنید که این عملیات دائمی است و قابل بازگشت نیست!
Remove-Item -Path 'test.txt'
Remove-Item -Path 'MyNewFolder' -Recurse
پارامتر -Recurse برای حذف پوشههایی که حاوی فایل یا پوشه هستند، ضروری است.
Copy و Move
کپی کردن و انتقال فایلها و پوشهها از دیگر عملیاتهای رایج در مدیریت فایلهاست. PowerShell دستورات اختصاصی و قدرتمندی برای این کار دارد. برای کپی کردن یک فایل، از Copy-Item استفاده کنید. فرض کنید میخواهیم فایل test.txt را به پوشهای به نام Backup کپی کنیم:
Copy-Item -Path 'test.txt' -Destination 'C:\Backup'
اگر پوشه Backup وجود نداشته باشد، باید ابتدا آن را بسازید. برای انتقال (Move) فایل یا پوشه، از Move-Item استفاده کنید. این دستور فایل را از مبدا حذف و به مقصد منتقل میکند:
Move-Item -Path 'test.txt' -Destination 'C:\Archive'
این دستورات برای پوشهها نیز به همین شکل کار میکنند. فقط کافیست Path و Destination صحیح را مشخص کنید. برای انتقال یک پوشه کامل، نیازی به پارامتر -Recurse نیست.
مدیریت Processها
مدیریت فرآیندها (Processes) یکی از وظایف اساسی در مدیریت سیستم است. PowerShell به شما امکان میدهد تا فرآیندهای در حال اجرا را مشاهده، فیلتر و کنترل کنید. با Get-Process میتوانید لیستی از تمام فرآیندها را به همراه جزئیات آنها مشاهده کنید. برای فیلتر کردن بر اساس نام، از Get-Process -Name 'notepad*' استفاده کنید. اگر نیاز به توقف یک فرآیند خاص دارید، میتوانید با Stop-Process -Name 'notepad' یا با استفاده از شناسه فرآیند (ID) آن، عملیات را انجام دهید. این قابلیت برای عیبیابی و آزادسازی منابع سیستم بسیار کارآمد است.
مدیریت Serviceها
سرویسها (Services) برنامههایی هستند که در پسزمینه سیستم عامل اجرا میشوند و عملکردهای مختلفی را ارائه میدهند. PowerShell ابزاری قدرتمند برای مدیریت این سرویسهاست. با Get-Service میتوانید وضعیت تمام سرویسها را مشاهده کنید. برای شروع یک سرویس از Start-Service -Name 'Spooler' و برای توقف آن از Stop-Service -Name 'Spooler' استفاده میشود. همچنین میتوانید نوع راهاندازی یک سرویس را با Set-Service -Name 'ServiceName' -StartupType Automatic تغییر دهید. این دستورات به شما کنترل کاملی بر سرویسهای ویندوز میدهند و امکان خودکارسازی وظایف مدیریتی را فراهم میکنند.
نصب نرمافزار با Winget
Winget یا Windows Package Manager، ابزاری خط فرمانی است که نصب، بهروزرسانی و حذف نرمافزارها را در ویندوز آسان میکند. این ابزار به شما اجازه میدهد تا برنامهها را بدون نیاز به رابط کاربری گرافیکی، مستقیماً از ترمینال مدیریت کنید. برای جستجوی یک نرمافزار، از دستور winget search 'Visual Studio Code' استفاده کنید. پس از یافتن برنامه مورد نظر، میتوانید آن را با winget install 'Microsoft.VisualStudioCode' نصب کنید. Winget سرعت و راحتی بینظیری در مدیریت بستههای نرمافزاری ارائه میدهد و برای توسعهدهندگان و مدیران سیستم بسیار کاربردی است.
مدیریت Windows
در این بخش، منظور از «مدیریت Windows» فراتر از صرفاً مدیریت پنجرههای رابط کاربری است و به معنای تعامل و پیکربندی خود سیستم عامل ویندوز است. PowerShell به شما امکان میدهد تا اطلاعات سیستم را بازیابی کنید، تنظیمات شبکه را مدیریت کنید، یا حتی بهروزرسانیها را کنترل کنید. برای مثال، میتوانید اطلاعات سختافزاری و نرمافزاری سیستم را با استفاده از Get-ComputerInfo به دست آورید. همچنین، میتوانید آداپتورهای شبکه را با Get-NetAdapter مشاهده و با Disable-NetAdapter -Name 'Ethernet0' غیرفعال کنید. این قابلیتها، PowerShell را به ابزاری کلیدی برای اتوماسیون وظایف مدیریتی در ویندوز تبدیل کرده است.
اجرای Script
اسکریپتنویسی قلب اتوماسیون در PowerShell است. یک اسکریپت PowerShell فایلی با پسوند .ps1 است که شامل مجموعهای از دستورات PowerShell برای انجام یک وظیفه خاص است. برای اجرای یک اسکریپت، کافیست مسیر کامل فایل را در کنسول PowerShell وارد کنید، مثلاً C:\Scripts\MyScript.ps1. قبل از اجرای اسکریپتها، به «Execution Policy» توجه کنید که یک ویژگی امنیتی ویندوز است. برای اجرای اسکریپتهای دانلود شده، ممکن است نیاز باشد تا ابتدا سیاست اجرایی سیستم را تغییر دهید. اسکریپتها بهرهوری شما را با خودکارسازی کارهای تکراری به شدت افزایش میدهند.
Execution Policy چیست؟
Execution Policy یک ویژگی امنیتی در PowerShell است که تعیین میکند آیا اسکریپتها میتوانند روی سیستم شما اجرا شوند یا خیر و تحت چه شرایطی. این سیاست از اجرای ناخواسته اسکریپتهای مخرب جلوگیری میکند. انواع مختلفی دارد، از جمله Restricted (پیشفرض، هیچ اسکریپتی اجرا نمیشود)، RemoteSigned (اسکریپتهای محلی اجرا میشوند، اما اسکریپتهای دانلود شده باید امضا شده باشند)، و Unrestricted (همه اسکریپتها اجرا میشوند). برای بررسی سیاست فعلی از Get-ExecutionPolicy و برای تغییر آن از Set-ExecutionPolicy -ExecutionPolicy RemoteSigned استفاده کنید. توصیه میشود همیشه از امنترین سیاست ممکن استفاده کنید.
PowerShell برای مدیریت سیستم
PowerShell فراتر از یک ابزار خط فرمان ساده، یک محیط قدرتمند برای مدیریت کامل سیستم عامل ویندوز است. با PowerShell میتوانید تقریباً هر جنبهای از ویندوز، از جمله کاربران و گروهها، رجیستری، لاگهای رویداد (Event Logs)، وظایف زمانبندی شده (Scheduled Tasks) و حتی تنظیمات شبکه را مدیریت کنید. این ابزار به مدیران سیستم امکان میدهد تا وظایف پیچیده را خودکار کرده، گزارشگیریهای دقیق انجام دهند و پیکربندی سیستمها را استانداردسازی کنند. یادگیری PowerShell شما را قادر میسازد تا مدیریت سیستم را با کارایی و دقت بیسابقهای انجام دهید و زمان زیادی را صرفهجویی کنید.
PowerShell برای Automation
پاورشل ابزاری قدرتمند برای اتوماسیون وظایف تکراری و مدیریت سیستم در ویندوز ۱۱ است. از نوشتن اسکریپتهای ساده برای پاکسازی فایلها گرفته تا اتوماسیون پیچیدهی پیکربندی سرورها و مدیریت زیرساخت ابری، پاورشل کارایی را به شکل چشمگیری افزایش میدهد. با استفاده از قابلیتهای اسکریپتنویسی آن، میتوانید وظایف زمانبندیشده ایجاد کنید، گزارشهای سیستمی تولید کنید و حتی عملیات استقرار نرمافزار را خودکار کنید. این ابزار به مدیران سیستم اجازه میدهد تا به جای انجام دستی کارها، فرآیندها را استاندارد و خودکار کنند و زمان خود را برای کارهای استراتژیکتر آزاد سازند.
PowerShell در پروژههای AI
در پروژههای هوش مصنوعی، پاورشل به طور مستقیم برای توسعهی مدلهای یادگیری ماشین استفاده نمیشود، اما نقش مهمی در مدیریت و اتوماسیون زیرساختهای مرتبط ایفا میکند. میتوانید از پاورشل برای آمادهسازی محیطهای توسعه، مدیریت دادهها، خودکارسازی استقرار مدلها در پلتفرمهایی مانند Azure Machine Learning، نظارت بر عملکرد مدلها و حتی برای اسکریپتنویسی وظایف مربوط به دادهخوانی و پیشپردازش استفاده کنید. این ابزار به هماهنگسازی اجزای مختلف یک پروژهی AI کمک کرده و فرآیند DevOps را در این حوزه تسهیل میکند.
دستورات ضروری
برای شروع کار با پاورشل در ویندوز ۱۱، آشنایی با چند دستور کلیدی ضروری است که به شما کمک میکند تا به راحتی در محیط آن حرکت کنید و اطلاعات مورد نیاز خود را به دست آورید:
Get-Help: این دستور راهنمای کاملی برای هر cmdlet یا تابع پاورشل ارائه میدهد. برای مثال،Get-Help Get-Serviceاطلاعات مربوط به دستورGet-Serviceرا نمایش میدهد.Get-Command: لیستی از تمام دستورات (cmdlets) موجود در سیستم شما را نمایش میدهد. میتوانید از آن برای یافتن دستورات مرتبط با یک وظیفهی خاص استفاده کنید، مثلاًGet-Command -Noun Service.Get-Service: وضعیت تمام سرویسهای ویندوز را نمایش میدهد. میتوانید با افزودن پارامترهایی مانند-Nameسرویس خاصی را فیلتر کنید.Set-ExecutionPolicy: سیاست اجرای اسکریپتها را در سیستم شما تنظیم میکند. برای اجرای اسکریپتهای محلی، ممکن است نیاز باشد آن را بهRemoteSignedتغییر دهید.
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
Get-Process: اطلاعات مربوط به فرآیندهای در حال اجرا را نمایش میدهد. میتوانید فرآیندها را بر اساس نام یا سایر مشخصات فیلتر کنید.
خطاهای رایج
در حین کار با پاورشل، ممکن است با خطاهای مختلفی مواجه شوید. درک این خطاها و نحوهی رفع آنها برای هر کاربر پاورشل ضروری است:
- خطای Execution Policy (سیاست اجرا):
هنگامی که سعی میکنید یک اسکریپت را اجرا کنید و با خطای «Cannot be loaded because running scripts is disabled on this system.» مواجه میشوید، به این معنی است که سیاست اجرای پاورشل اجازه نمیدهد اسکریپتها اجرا شوند. برای رفع این مشکل، میتوانید سیاست اجرا را تغییر دهید.
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
اگر دستور یا تابعی را اجرا میکنید که بخشی از یک ماژول خاص است و آن ماژول نصب نشده یا در مسیرهای پاورشل تعریف نشده باشد، با این خطا مواجه میشوید. برای رفع این مشکل، ابتدا باید ماژول مورد نظر را نصب کنید (معمولاً با
Install-Module) و سپس آن را Import کنید.بسیاری از عملیات مدیریتی در پاورشل نیاز به مجوزهای Administrator دارند. اگر اسکریپت شما عملیاتی مانند تغییر تنظیمات سیستم یا دسترسی به فایلهای محافظتشده را انجام میدهد و بدون مجوز کافی اجرا شود، با خطای «Access Denied» یا مشابه آن مواجه خواهید شد. برای رفع این مشکل، پاورشل را با گزینهی «Run as administrator» اجرا کنید.
این خطا زمانی رخ میدهد که دستورات شما از قواعد گرامری پاورشل پیروی نکنند. مثلاً، استفاده از پرانتزهای نامتوازن، نام متغیرهای اشتباه یا عدم استفاده از پارامترهای صحیح. راه حل، بررسی دقیق دستور و مقایسهی آن با مستندات یا مثالهای صحیح است.
جمعبندی
در این راهنمای جامع، سفر خود را از معرفی مفاهیم اولیه پاورشل آغاز کردیم و گام به گام به سمت دستورات پیشرفته، اسکریپتنویسی، مدیریت سیستم و حتی نقش آن در اتوماسیون و پروژههای هوش مصنوعی پیش رفتیم. پاورشل بیش از یک ابزار خط فرمان ساده است؛ آن یک محیط اسکریپتنویسی شیءگرا و یک زبان برنامهنویسی قدرتمند برای مدیریت ویندوز ۱۱ و فراتر از آن است. با تسلط بر پاورشل، نه تنها میتوانید کارهای روزمره را خودکار کنید، بلکه درک عمیقتری از سیستمعامل خود پیدا کرده و به یک مدیر سیستم یا توسعهدهندهی کارآمدتر تبدیل شوید. دانش پاورشل یک سرمایهگذاری ارزشمند برای هر حرفهای در حوزهی فناوری اطلاعات است.
پرسشهای متداول (FAQ)
آیا PowerShell به بزرگی و کوچکی حروف حساس است؟
خیر، به طور کلی PowerShell در نام دستورات (cmdlets)، پارامترها و متغیرها به بزرگی و کوچکی حروف حساس نیست. مثلاً، Get-Service و get-service هر دو به یک شکل عمل میکنند. با این حال، در برخی موارد خاص مانند نام فایلها یا مقادیر رشتهای که به سیستمفایل لینوکس یا سرویسهای ابری متصل میشوند، ممکن است حساسیت به حروف وجود داشته باشد.
آیا PowerShell فقط برای ویندوز است؟
خیر، PowerShell Core (که اکنون با نام PowerShell شناخته میشود) یک نسخهی Cross-platform از PowerShell است که میتواند بر روی سیستمعاملهای لینوکس، macOS و ویندوز اجرا شود. این قابلیت، آن را به ابزاری قدرتمند برای مدیریت محیطهای چندگانه و هیبریدی تبدیل کرده است و امکان اسکریپتنویسی یکپارچه در پلتفرمهای مختلف را فراهم میآورد.
تفاوت اصلی بین PowerShell و Command Prompt (CMD) چیست؟
تفاوت اصلی در نحوهی پردازش اطلاعات است. CMD یک محیط مبتنی بر متن است که با رشتهها و خروجیهای متنی کار میکند، در حالی که PowerShell یک محیط شیءگرا است. این یعنی دستورات PowerShell (cmdlets) اشیاء NET. را خروجی میدهند که دارای خواص و متدهای ساختاریافته هستند و میتوانند به راحتی توسط سایر دستورات پردازش و فیلتر شوند. این ویژگی، انعطافپذیری و قدرت بیشتری را برای اتوماسیون فراهم میکند.
چگونه میتوان PowerShell را در ویندوز ۱۱ بهروزرسانی کرد؟
PowerShell به دو روش اصلی بهروزرسانی میشود. نسخهی داخلی ویندوز (Windows PowerShell) معمولاً از طریق بهروزرسانیهای ویندوز (Windows Update) بهروز میشود. اما نسخهی Cross-platform (PowerShell Core) که قابلیتهای بیشتری دارد، باید به صورت جداگانه و با دانلود آخرین بستهی نصب از گیتهاب مایکروسافت یا استفاده از ابزارهای مدیریت بسته مانند Winget بهروزرسانی شود. توصیه میشود از آخرین نسخهی PowerShell Core برای بهترین عملکرد و امنیت استفاده کنید.
این مطلب اختصاصی آسان ویندوز است.











