پاورشل چیست؟ - نحوه فعال سازی و استفاده از PowerShell

شناخته شده ترین ابزار در دنیای مدیریت سیستم که برای تسهیل و بهینه سازی فرآیند ها ایجاد شده است، PowerShell نام دارد که نه تنها به عنوان یک محیط خط فرمان بلکه به عنوان یک زبان اسکریپت نویسی نیز شناخته می شود. برای دانستن این که PowerShell چیست و نحوه فعال سازی و استفاده از آن را در سیستم های دیگر یاد بگیرید، توصیه می کنیم این مقاله را تا آخر مطالعه کنید تا بر نحوه بهره برداری از آن برای مدیریت بهتر سیستم خود و ارتقای کارایی آن تسلط پیدا کنید!
پاورشل (PowerShell) چیست؟
پاورشل یک ابزار 2 منظوره Open-Source یا منبع باز است که با تعامل با رابط خط فرمان سبب تنظیم وظایف به صورت خودکار می شود. گفتیم این ابزار دو منظوره است یعنی نه تنها سیستم عامل را مدیریت می کند بلکه می توانیم از آن به عنوان یک زبان برنامه نویسی نیز استفاده کنیم. حوزه های اصلی عملکرد پاورشل به 3 قسمت تقسیم می شود:1_ رابط خط فرمان
برای تعامل مستقیم با کامپیوتر، اجازه از سمت رابط خط فرمان 3صادر می شود. استفاده از PowerShell برای رابط خط فرمان سبب برگشت اشیاء NET. به جای متن می شود. البته اکثر رابط های خط فرمان قادر به انجام این کار هستند.2_ وظایف و اسکریپت نویسی
بالاتر گفتیم که PowerShell یک زبان برنامه نویسی نیز محسوب می شود. شروع کار با اسکریپت ها در PowerShell به علت کتابخانه های وسیع آن آسان است. شما می توانید از آن برای نوشتن توابع یا همان function های خود استفاده کنید.3_ مدیریت پیکربندی
PowerShell برای کارکرد درست و آسان سرور ها، یک پلتفرم مدیریت شبکه ای به نام DSC که کوتاه شده Desined State Configuration است را ارائه می دهد. با DSC می توان شبکه ها را در سطح جهانی و به صورت حرفه ای تر تنها با چند کد و اسکریپت، مدیریت کرد.چرا باید از PowerShell استفاده کنیم؟
PoweShell یک رابط خط فرمان با زبان برنامه نویسی کامل است که امکان انجام انواع کارها را به صورت دلخواه با اسکریپت های خاص را می دهد. برای کنترل و تکرار کارها، استفاده از CLI یا همان رابط خط فرمان، بهتر است زیرا برخلاف رابط های گرافیکی که استفاده از آن ها زمان بر بوده و امکان خطا هنگام اجرا وجود دارد، اسکریپت های PowerShell می توانند به آسانی ذخیره شده و با امکان تکرار دقیقی کارها اجرا شوند.دستورهای پاورشل
از آنجایی که در بالاتر هم به آن اشاره کردیم، پاورشل همانند یک زبان برنامه نویسی عمل کرده و در نهایت با Object ها سر و کار دارد. پاورشل با این اشیاء به 4 صورت زیر کار می کند:1_ Cmdlet
Cmdlet ها به عنوان فرمان های اصلی در PowrShell شناخته می شوند. هر cmdlet با انجام یک عمل خاص، یک شیء NET. را به پاورشل برگردانده و از طریق API ها فراخونی می شوند. برای عملیات مختلف تعداد زیادی از cmdlet ها وجود دارد از جمله Get-Service که کار آن نمایش دادن لیست خدمات در حال اجرا است. همچنین cmdlet ها می توانند به صورت تعاملی ایجاد شوند، طوری که بازخورد کاربر را قبل از عمل دریافت کنند.
2_ توابع (Functions)
توابع پاورشل از یک لیست شامل عبارات سازماندهی شده است که با تایپ کردن نامشان فراخوانی می شوند. این توابع که از پارامترهای قدرتمند پشتیبانی کرده و مقادیر را به توابع دیگر و cmdlet ها ارسال می کند، بدون این که کامپایل شوند در پاورشل نوشته میشوند. نمونه ای از یک تابع پاورشل به صورت زیر آورده شده است:function Set-Something
{
[CmdletBinding()]
params (
[Parameter()]
[string]$Thing
)
Write-Host $Thing
}
3_ اسکریپت ها
برای ساده کردن پیچیدگی کدنویسی، از اسکریپت های پاورشل استفاده می کنیم. در اسکریپت های پاور شل از سه دستور set و get و در نهایت remove برای بازبابی اطلاعات از فایل سیستمی، ادیت دیتای کامپوننت و حذف دستورات استفاده کرد.4_ دستور (command)
فرمان یا command همانند دستور ipconfig که در خط فرمان کنسول استفاده می شود، یک فایل اجرایی کوچک است که به صورت مستقل عمل می کند. دستورات برخلاف cmdlet ها، اعمال تجزیه و مدیریتی خطا و قالب بندی خروجی را در پاور شل انجام می دهند. دستورات در خط لوله یا همان pipeline شرکت نمی کنند زیرا، داده ها توسط آن ها استفاده و یا منتقل نمی شوند.ساختار زبان برنامه نویسی پاورشل
برای کنترل اسکریپت ها، PowerShell چندین ساختار زبانی را که شامل موارد زیر است را ارائه می دهد:- If
برای ایجاد یک عبارت شرطی از if استفاده می کنیم. اگر عبارت True باشد، اسکریپت اجرا شده و در غیر اینصورت، دستورات و توابع و یا cmdlet های جایگزین اجرا می شوند.
if ($i -eq 1)
{
## Do something
}
otherwise
{
## Do something else
}
- Switch
برای آزمایش کردن لیستی طولانی از دستورات شرطی، از دستور switch استفاده می کنیم که از این دستور می توان به جای ساختارهای if و else نیز استفاده شود.
switch ($i)
{
0
{
Write-Host "I is 0"
}
1
{
Write-Host "I is 1"
}
Default
{
Write-Host "I is not 0 or 1" >
}
}
- While
دستور While یا حلقه اصولاً برای تکرار کدی که بر اساس وضعیت پارامتر ها نوشته شده است، ارائه می شود. وظیفه حلقه ارزیابی و تکرار وظایف پیچیده تعریف شده در کد است که انواع مختلفی هم دارد.
while ($i -eq 0)
{
## Do something >
}
- Variables
از آنجایی که متغیر ها می توانند داده ها را ذخیره و آن را به روش های مختلف دستکاری کنند، در PowerShell به عنوان اشیاء NET. شناخته می شوند. متغیر ها با علامت $ شروع شروع و ترکیبی از اعدا و نماد و حروف و غیره هستند و همینطور دامنه های مختلفی از جمله دامنه جهانی، محلی و اسکریپت را دارا هستند.
نحوه فعال سازی PowerShell
همه کامپیوتر ها با ویندوز 10 و بالاتر، PowerShell را به صورت پیشفرض دارند. کافی است که در نوار جستجو عبارت "powershell" را جست و جو کنید. از طرف دیگر، PowerShell 7 قابلیت پشتیبانی از نصب cross-platform در توزیع های لینوکس و macOS را دارد که برای راه اندازی آن نیاز است که عبارت "pwsh" را در خط فرمان تایپ کنید.نحوه ایجاد و اجرای اسکریپت های پاورشل
معمولاً اسکریپت های پاورشل ابتدا در ابزارهای دیگر ایجاد شده و سپس در خود PowerShell اجرا می شود. مراحل زیر، مثالی از ایجاد یک اسکریپت ساده را با استفاده از ابزار Notepad در ویندوز 11 را نشان می دهند:- برنامه Notepad را باز کنید.
- دستور دلخواه خود را تایپ کنید.
- بر روی File کلیک کرده و گزینه Save As را انتخاب کرده و ذخیره کنید.
از آنجایی که اسکریپت های به صورت پیشفرض مسدود هستند، باید سیاست اجرا در سیستم را طبق مراحل زیر تغییر دهید:
- پاورشل را جستجو کرده و باز کنید.
- بر روی آن راست کلیک کنید و سپس بر روی گزینه Run as administrator کلیک کنید.
- دستور Set-ExecutionPolicy RemoteSigned. را تایپ کرده و بر روی Enter را بزنید.
- "A" را تایپ کرده و سپس Enter را بزنید تا سیاست آن تغییر پیدا کند.