در دنیای امروز، مدیریت و خودکارسازی وظایف سیستمعامل به یکی از نیازهای حیاتی هر مدیر سیستم یا توسعهدهنده تبدیل شده است. پاورشل (PowerShell) ابزاری است که این نیاز را به شکلی قدرتمند و انعطافپذیر برآورده میکند. این ابزار، که توسط مایکروسافت توسعه یافته، ترکیبی از یک پوسته خط فرمان و یک زبان برنامهنویسی اسکریپتی است که میتواند تمامی جنبههای سیستمعامل ویندوز و حتی بسیاری از سرویسها و اپلیکیشنهای دیگر را مدیریت کند. در ادامه در آکادمی آموزش برنامه نویسی کدنا به بررسی ویژگیهای کلیدی، نکات کار با دستورات پاورشل و معرفی برخی از مهمترین دستورات آن خواهیم پرداخت.
ویژگیهای کلیدی PowerShell

به نقل از سایت راکت:
PowerShell یک زبان اسکریپتنویسی و محیط خط فرمان (Command Line Interface || CLI) پیشرفته است که توسط مایکروسافت توسعه داده شده و برای اتوماسیون و مدیریت وظایف سیستمی در سیستمهای مبتنی بر ویندوز طراحی شده است. این ابزار، که برای اولین بار در سال 2006 منتشر شد، در حال حاضر بخشی جداییناپذیر از مجموعه ابزارهای مدیریتی ویندوز است.
پاورشل از ویژگیهای برجستهای برخوردار است که آن را به یک ابزار بینظیر در دنیای مدیریت سیستمها و خودکارسازی تبدیل میکند:
- قابلیت اسکریپتنویسی پیشرفته: پاورشل به کاربران امکان میدهد که اسکریپتهای پیچیده و قدرتمندی بنویسند که میتوانند وظایف تکراری و زمانبر را به صورت خودکار انجام دهند. این اسکریپتها میتوانند شامل شرطها، حلقهها و توابع باشند که قابلیتهای پیشرفتهای را ارائه میدهند.
- دسترسی به APIهای ویندوز: پاورشل به کاربران اجازه میدهد تا به توابع و متدهای API ویندوز دسترسی پیدا کنند. این قابلیت به کاربران امکان میدهد که به طور مستقیم با زیرساختهای سیستمعامل تعامل کنند و از تمامی تواناییهای آن بهرهمند شوند.
- پشتیبانی از شیگرایی: پاورشل از مدل شیگرایی برای دستکاری و استفاده از دادهها استفاده میکند. این ویژگی به کاربران امکان میدهد که دادهها را به صورت اشیاء مدیریت کنند و به سادگی اطلاعات را بین دستورات مختلف جابجا کنند.
- مدیریت سیستمهای راه دور: پاورشل به کاربران اجازه میدهد که دستورات خود را بر روی سیستمهای راه دور اجرا کنند. این ویژگی برای مدیریت شبکههای بزرگ و سرورها بسیار مفید است.
- پشتیبانی از پلتفرمهای مختلف: اگرچه پاورشل در ابتدا برای ویندوز طراحی شده بود، اکنون نسخههایی از آن برای سیستمعاملهای لینوکس و مک نیز موجود است، که این امر به کاربران اجازه میدهد تا در محیطهای چند پلتفرمی نیز از این ابزار استفاده کنند.
نکات کار با دستورات پاورشل

کار با دستورات پاورشل نیازمند دقت و توجه به جزئیات است. در این بخش، به برخی نکات مهم در کار با این ابزار خواهیم پرداخت:
- سطح دسترسی: برای اجرای بسیاری از دستورات پاورشل، به سطح دسترسی مدیریتی نیاز است. اطمینان حاصل کنید که با سطح دسترسی مناسب وارد محیط پاورشل شدهاید.
- حساس نبودن به حروف بزرگ و کوچک: دستورات پاورشل به صورت کیس سنسیتیو (حساس به حروف بزرگ و کوچک) نیستند. این بدان معناست که میتوانید دستورات را با حروف بزرگ یا کوچک وارد کنید و نتایج یکسانی بگیرید.
- استفاده از نامهای مستعار (Alias): بسیاری از دستورات پاورشل دارای نامهای مستعار هستند که استفاده از آنها را سادهتر میکند. به عنوان مثال، Get-ChildItem را میتوان با ls یا dir نیز فراخوانی کرد.
- استفاده از Get-Help: همیشه میتوانید از دستور Get-Help برای دریافت اطلاعات و مستندات مربوط به یک دستور خاص استفاده کنید. این دستور اطلاعات کاملی را درباره نحوه استفاده و پارامترهای مختلف هر دستور فراهم میکند.
- آشنایی با اپراتورهای پاورشل: پاورشل از اپراتورهای مختلفی برای انجام عملیات منطقی، محاسباتی و مقایسهای استفاده میکند. آشنایی با این اپراتورها به شما کمک میکند تا اسکریپتهای خود را به شکلی مؤثرتر بنویسید.
- آزمایش دستورات در محیطهای امن: قبل از اجرای دستورات پیچیده یا اسکریپتهای جدید در محیطهای تولید، ابتدا آنها را در یک محیط آزمایشی یا شبیهسازی شده اجرا کنید تا از صحت عملکرد آنها اطمینان حاصل کنید.
با رعایت این نکات و استفاده از ویژگیهای قدرتمند پاورشل، میتوانید مدیریت سیستمها و انجام وظایف خود را به شکلی کارآمدتر و سریعتر انجام دهید.
دستورات مهم پاورشل

پاورشل مجموعهای گسترده از دستورات (cmdlets) را فراهم میکند که به کاربران اجازه میدهد تا وظایف مختلفی را از مدیریت فایلها و پوشهها گرفته تا کنترل سرویسها و فرآیندها انجام دهند. هر کدام از این دستورات برای یک یا چند وظیفه خاص طراحی شدهاند و میتوانند در ترکیب با یکدیگر برای ایجاد اسکریپتهای پیچیده استفاده شوند. در ادامه به معرفی و توضیح برخی از مهمترین دستورات پاورشل میپردازیم.
Get-Help [help]
دستور Get-Help به کاربران اجازه میدهد که اطلاعات و مستندات مربوط به دستورات مختلف پاورشل را دریافت کنند. این دستور برای یادگیری و فهمیدن نحوه استفاده از دستورات جدید و پارامترهای آنها بسیار مفید است.
powershell
Get-Help Get-Command
این دستور مستندات مربوط به دستور Get-Command را نمایش میدهد.
Get-Command [gcm]
دستور Get-Command لیستی از تمامی دستورات موجود در پاورشل را نمایش میدهد. این لیست شامل دستورات بومی پاورشل و دستورات اضافه شده توسط ماژولها است.
powershell
Get-Command
این دستور لیستی کامل از تمامی دستورات قابل استفاده در پاورشل را برمیگرداند.
Invoke-Command [icm]
دستور Invoke-Command برای اجرای دستورات پاورشل بر روی سیستمهای راه دور استفاده میشود. این دستور به مدیران سیستم اجازه میدهد که به صورت مرکزی وظایف مختلفی را بر روی چندین سیستم اجرا کنند.
powershell
Invoke-Command -ComputerName Server01 -ScriptBlock { Get-Process }
این دستور لیست فرآیندهای در حال اجرا روی سیستم Server01 را برمیگرداند.
Invoke-Expression [iex]
دستور Invoke-Expression یک رشته کد پاورشل را به عنوان کد قابل اجرا ارزیابی و اجرا میکند. این دستور برای اجرای کدهایی که به صورت دینامیک تولید میشوند مفید است.
powershell
Invoke-Expression "Get-Date"
این دستور تاریخ و زمان جاری را نمایش میدهد.
Invoke-WebRequest [iwr]
دستور Invoke-WebRequest برای ارسال درخواستهای HTTP و HTTPS به وبسایتها و سرویسهای وب استفاده میشود. این دستور به کاربران اجازه میدهد تا دادهها را از وب دریافت کنند یا دادههایی را به وب ارسال کنند.
powershell
Invoke-WebRequest -Uri "http://example.com"
این دستور محتوای وبسایت example.com را دریافت میکند.
Set-ExecutionPolicy
دستور Set-ExecutionPolicy سطح سیاست اجرای اسکریپتها را در پاورشل تنظیم میکند. این دستور برای افزایش امنیت اجرای اسکریپتها و جلوگیری از اجرای اسکریپتهای ناشناخته مفید است.
powershell
Set-ExecutionPolicy RemoteSigned
این دستور اجازه میدهد تا فقط اسکریپتهایی که به صورت محلی ایجاد شدهاند و یا از یک ناشر معتبر امضا شدهاند اجرا شوند. آکادمی کدنا، آموزش زبان اسکرچ را به صورت رایگان برای کودکان و مبتدیان ارائه میدهد.
Get-Item [gi]
دستور Get-Item برای دریافت آیتمهای موجود در یک مسیر مشخص استفاده میشود. این آیتمها میتوانند فایلها، پوشهها یا سایر اشیاء سیستمعامل باشند.
powershell
Get-Item C:\Windows
این دستور اطلاعات مربوط به پوشه Windows را نمایش میدهد.
Copy-Item [copy]
دستور Copy-Item برای کپی کردن فایلها و پوشهها استفاده میشود. این دستور امکان کپی کردن آیتمها به مسیرهای مختلف را فراهم میکند.
powershell
Copy-Item -Path "C:\source" -Destination "C:\destination"
این دستور فایلها و پوشهها را از مسیر source به مسیر destination کپی میکند.
Remove-Item [del]
دستور Remove-Item برای حذف فایلها و پوشهها استفاده میشود. این دستور به کاربران اجازه میدهد تا آیتمهای ناخواسته را از سیستم حذف کنند.
powershell
Remove-Item -Path "C:\path\to\file.txt"
این دستور فایل file.txt را از مسیر مشخص شده حذف میکند.
Get-Content [cat]
دستور Get-Content برای خواندن محتویات یک فایل استفاده میشود. این دستور برای مشاهده محتوای فایلهای متنی بسیار مفید است. با شرکت در دوره آموزش CCNA در آکادمی کدنا، مهارتهای شبکه سیسکو را کسب کنید.
powershell
Get-Content -Path "C:\path\to\file.txt"
این دستور محتوای فایل file.txt را نمایش میدهد.
Set-Content [sc]
دستور Set-Content برای نوشتن محتوا به یک فایل استفاده میشود. این دستور به کاربران اجازه میدهد تا دادههای جدید را به فایلهای موجود اضافه کنند یا فایلهای جدید ایجاد کنند. دوره آموزش فلسک در آکادمی کدنا، شما را با این فریمورک محبوب پایتون آشنا میکند.
powershell
Set-Content -Path "C:\path\to\file.txt" -Value "Hello, World!"
این دستور متن "Hello, World!" را در فایل file.txt مینویسد.
Get-Variable [gv]
دستور Get-Variable لیستی از متغیرهای موجود در محیط پاورشل را نمایش میدهد. این دستور برای بررسی و مدیریت متغیرها مفید است.
powershell
Get-Variable
این دستور لیست متغیرهای موجود را برمیگرداند. برای یادگیری زبان برنامهنویسی پایتون، به دوره آموزش پایتون در آکادمی کدنا بپیوندید.
Set-Variable [set]
دستور Set-Variable برای ایجاد یا تغییر مقدار یک متغیر استفاده میشود. این دستور به کاربران اجازه میدهد تا متغیرهای جدید تعریف کنند یا مقادیر موجود را بهروزرسانی کنند.
powershell
Set-Variable -Name "TestVariable" -Value "TestValue"
این دستور یک متغیر جدید به نام TestVariable با مقدار TestValue ایجاد میکند.
Get-Process [gps]
دستور Get-Process لیستی از فرآیندهای در حال اجرا را نمایش میدهد. این دستور برای مانیتورینگ و مدیریت فرآیندهای سیستم بسیار مفید است.
powershell
Get-Process
این دستور لیستی از تمامی فرآیندهای در حال اجرای سیستم را نمایش میدهد.
Start-Process [saps]
دستور Start-Process برای شروع یک فرآیند جدید استفاده میشود. این دستور به کاربران اجازه میدهد تا برنامهها و اسکریپتهای جدید را اجرا کنند.
powershell
Start-Process -FilePath "notepad.exe"
این دستور برنامه نوتپد را اجرا میکند.
Stop-Process [kill]
دستور Stop-Process برای متوقف کردن یک فرآیند در حال اجرا استفاده میشود. این دستور به کاربران اجازه میدهد تا فرآیندهای ناخواسته یا مشکلساز را متوقف کنند. آکادمی کدنا، دوره آموزش لینوکس را برای علاقهمندان به سیستمعامل لینوکس ارائه میدهد.
powershell
Stop-Process -Name "notepad"
این دستور تمامی فرآیندهای نوتپد در حال اجرا را متوقف میکند.
Get-Service [gsv]
دستور Get-Service لیستی از سرویسهای موجود در سیستم را نمایش میدهد. این دستور برای مانیتورینگ و مدیریت سرویسهای ویندوز مفید است.
powershell
Get-Service
این دستور لیستی از تمامی سرویسهای موجود را برمیگرداند.
Start-Service [sasv]
دستور Start-Service برای شروع یک سرویس استفاده میشود. این دستور به کاربران اجازه میدهد تا سرویسهای ویندوز را فعال کنند.
powershell
Start-Service -Name "wuauserv"
این دستور سرویس آپدیت ویندوز (wuauserv) را شروع میکند.
Stop-Service [spsv]
دستور Stop-Service برای متوقف کردن یک سرویس استفاده میشود. این دستور به کاربران اجازه میدهد تا سرویسهای غیرضروری یا مشکلساز را متوقف کنند.
powershell
Stop-Service -Name "wuauserv"
این دستور سرویس آپدیت ویندوز (wuauserv) را متوقف میکند.
ConvertTo-HTML
دستور ConvertTo-HTML یک شیء پاورشل را به فرمت HTML تبدیل میکند. این دستور برای تولید گزارشهای HTML از دادههای پاورشل مفید است.
powershell
Get-Process | ConvertTo-Html
این دستور لیست فرآیندهای در حال اجرا را به فرمت HTML تبدیل میکند. با شرکت در آموزش جامع شبکه در آکادمی کدنا، مفاهیم و مهارتهای شبکه را به طور کامل فرا بگیرید.
پاورشل یکی از ابزارهای قدرتمند و چندمنظوره برای مدیریت سیستمهای ویندوز و اجرای اسکریپتها است. با استفاده از دستورات متنوع و کاربردی آن، کاربران میتوانند به سادگی وظایف مختلفی را انجام دهند که به صورت دستی زمانبر و پیچیده خواهند بود. در این مقاله، تعدادی از مهمترین دستورات پاورشل را بررسی کردیم:
|
دستور |
مستعار |
توضیحات |
کاربرد |
|
Get-Help |
help |
دریافت مستندات و اطلاعات دستورات |
یادگیری و فهمیدن نحوه استفاده از دستورات |
|
Get-Command |
gcm |
نمایش لیستی از تمامی دستورات موجود |
جستجو و یافتن دستورات پاورشل |
|
Invoke-Command |
icm |
اجرای دستورات بر روی سیستمهای راه دور |
مدیریت مرکزی وظایف روی چندین سیستم |
|
Invoke-Expression |
iex |
اجرای کد دینامیک |
ارزیابی و اجرای کدهای دینامیک |
|
Invoke-WebRequest |
iwr |
ارسال درخواستهای HTTP و HTTPS |
تعامل با وبسایتها و سرویسهای وب |
|
Set-ExecutionPolicy |
- |
تنظیم سیاست اجرای اسکریپتها |
افزایش امنیت اجرای اسکریپتها |
|
Get-Item |
gi |
دریافت آیتمهای موجود در مسیرهای مشخص |
دسترسی به فایلها و پوشهها |
|
Copy-Item |
copy |
کپی کردن فایلها و پوشهها |
ایجاد نسخههای پشتیبان یا جابجایی فایلها |
|
Remove-Item |
del |
حذف فایلها و پوشهها |
پاک کردن فایلها و پوشههای ناخواسته |
|
Get-Content |
cat |
خواندن محتویات فایلها |
مشاهده محتوای فایلهای متنی |
|
Set-Content |
sc |
نوشتن محتوا به فایلها |
افزودن داده به فایلها یا ایجاد فایلهای جدید |
|
Get-Variable |
gv |
نمایش متغیرهای موجود |
بررسی و مدیریت متغیرها |
|
Set-Variable |
set |
ایجاد یا تغییر متغیرها |
تعریف و تغییر مقدار متغیرها |
|
Get-Process |
gps |
نمایش فرآیندهای در حال اجرا |
مانیتورینگ و مدیریت فرآیندهای سیستم |
|
Start-Process |
saps |
شروع فرآیندهای جدید |
اجرای برنامهها و اسکریپتهای جدید |
|
Stop-Process |
kill |
متوقف کردن فرآیندهای در حال اجرا |
متوقف کردن فرآیندهای ناخواسته |
|
Get-Service |
gsv |
نمایش سرویسهای موجود |
مانیتورینگ و مدیریت سرویسهای ویندوز |
|
Start-Service |
sasv |
شروع سرویسها |
فعالسازی سرویسهای ویندوز |
|
Stop-Service |
spsv |
متوقف کردن سرویسها |
غیرفعالسازی سرویسهای غیرضروری یا مشکلساز |
|
ConvertTo-HTML |
- |
تبدیل دادهها به فرمت HTML |
تولید گزارشهای HTML از دادههای پاورشل |
این جدول شامل دستورات اصلی پاورشل و کاربردهای آنها به صورت خلاصه است و میتواند به عنوان یک مرجع سریع برای کاربران پاورشل مفید باشد. برای یادگیری روشهای مختلف هک، دوره آموزش هک در آکادمی برنامه نویسی کدنا را از دست ندهید.
کلام آخر
پاورشل با ارائه مجموعهای از دستورات قدرتمند و کاربردی، به یکی از ابزارهای اصلی برای مدیریت و خودکارسازی وظایف سیستمهای ویندوز تبدیل شده است. این دستورات، از مدیریت فایلها و پوشهها گرفته تا کنترل سرویسها و فرآیندها، به کاربران امکان میدهند تا کارهای خود را به شکلی کارآمدتر و سریعتر انجام دهند. با یادگیری و استفاده صحیح از این دستورات، میتوانید بهرهوری خود را به طور چشمگیری افزایش دهید. اگر تجربهای با دستورات پاورشل دارید یا سوالی در این زمینه دارید، لطفاً نظرات خود را در بخش کامنتها با ما به اشتراک بگذارید.
سوالات متداول دستورات پاورشل
اگر بخواهیم که امنیت ساخت و اجرای اسکریپتها را در پاورشل بالا ببریم از چه دستوری در آن استفاده خواهیم کرد؟
برای افزایش امنیت ساخت و اجرای اسکریپتها میتوان از دستور Set-ExecutionPolicy استفاده کرد.
چه دستوری در پاورشل با Get-Help برابری میکند؟
دستور Get-Help یا help برای دریافت اطلاعات و مستندات دستورات دیگر پاورشل استفاده میشود.
اگر در هنگام خواندن دستورات در –Help دچار مشکل شویم، چه راهحلی پیش روی ما قرار دارد؟
میتوان از پارامتر -Online با دستور Get-Help استفاده کرد تا مستندات آنلاین را مشاهده کنیم.
اگر بخواهیم آدرسی را در پاورشل تغییر بدهیم، از چه دستوری میتوان بهره برد؟
میتوان از دستور Set-Location یا cd برای تغییر آدرس استفاده کرد.