فهرست مطالب این مقاله:
در سالهای اخیر، ابزار پاورشل (PowerShell) به یک ضرورت انکارناپذیر در مدیریت سرورهای شبکه تبدیل شده است. در این مقاله به 7 دستور کاربردی در پاورشل که برای امور مدیریت روزانهی ادمینها ضروری است میپردازیم.
1. دستور Get-Help
این دستور بیشک یکی از مهمترین و پرکاربردترین دستورات PowerShell محسوب میشود. این دستور، راهنما، جزئیات و مثالهایی از دستورات دیگر را برای شما نشان میدهد. برای مثال برای مشاهده راهنمای مربوط به دستور Get-Process، دستور زیر را وارد نمایید:
Get-Help -Name Get-Process
2. دستور Get-ExecutionPolicy
به طور پیشفرض، امکان اجرای اسکریپتهای پاورشل وجود ندارد که هدف آن جلوگیری از اجرای کدهای مخرب است. در حقیقت، مقدار ExecutionPolicy است که مشخص میکند که اجرای اسکریپت PowerShell امکانپذیر باشد یا خیر. مقدار ExecutionPolicy میتواند یکی از چهار حالت زیر باشد:
حالت Restricted: در این حالت تنها امکان اجرای دستوراتی که به صورت مستقیم در پاورشل وارد میکنید وجود دارد. بنابراین هیچ اسکریپت پاورشلی امکان اجرا نخواهد داشت.
حالت All signed: در این حالت تنها اسکریپتهایی امکان اجرا خواهند داشت که توسط یک trusted publisher امضای دیجیتال شده باشند. برای امضای دیجیتال یک اسکریپت به این لینک مراجعه کنید.
حالت Remote Singed: در این حالت امکان اجرای اسکریپتهایی که به صورت local در خود آن سرور ایجاد شدهاند میباشد. اما اگر اسکریپت پاورشل به صورت Remote ایجاد شده باشد تنها در صورتی که توسط یک trusted publisher امضای دیجیتال شده باشد امکان اجرا خواهد داشت.
حالت Unrestricted: در این حالت هیچ محدودیتی وجود نداشته و تمام اسکریپتهای PowerShell حتی به صورت Remote نیز قابل اجرا خواهند بود.
یکی از اولین کارهایی که قبل از شروع کار با یک سروری که با آن آشنا نیستید باید انجام دهید بررسی حالت ExecutionPolicy است. برای این کار کافی است تا دستور Get-ExecutionPolicy را وارد کرده و خروجی آن را مشاهده کنید.
3. دستور Set-ExecutionPolicy
دستور قبل امکان مشاهدهی حالت ExecutionPolicy را به شما میداد. حال برای تغییر مقدار آن، از دستور Set-ExecutionPolicy به همراه حالت مورد نظرتان اصتفاده کنید، مانند زیر:
Set-ExecutionPolicy Unrestricted
4. دستوری برای یافتن پروسسهایی که بیشترین حافظه و CPU را مصرف میکنند
دستور Get-Process به شما لیستی از تمامی پروسسهایی که در حال اجرا میباشد را نمایش میدهد. این دستور، یک نام اختصار هم دارد که برای سادگی میتوانید از آن استفاده کنید. این نام اختصار ps و gps است. بخش اول دستور زیر لیست تمام پروسسها را برمیگرداند. سپس این خروجی با عملگر | به دستور sort داده میشود که آن را بر اساس پارامتر CPU مرتب میکند. سپس خروجی آن نیز مجدداً به دستور select داده میشود تا تنها 10 مورد اول آن نمایش داده شود.
ps | sort -p CPU -descending | select -first 10
بدین ترتیب شما لیست 10 پروسسی که بیشترین میزان CPU را مصرف میکنند خواهید دید. دستور زیر همین کار را برای 10 پروسسی که بیشترین حافظه را مصرف میکنند انجام میدهد.
ps | sort -p ws -descending | select -first 10
5. دستور Export-CSV
دستور Export-CSV ذخیرهسازی خروحی دستورات دیگر را در قالب فرمت CSV تسهیل میکند. بدین منظور ابتدا دستوری که میخواهید خروجی آن در فایل CSV ذخیره کنید را نوشته، سپس از عملگر | استفاده کرده و بعد از آن دستور Export-CSV به همراه محل ذخیرهسازی فایل استفاده نمایید، مانند زیر:
ps | Export-Csv c:\export\test.csv
یکی از کاربردهای متداول این دستور، اکسپورت و گزارشگیری از اکتیو دایرکتوری میباشد. برای نمونه، دستور زیر مشخصات تمام کابران اکتیو دایرکتوری را در یک فایل CSV ذخیره میکند.
Get-ADUser –filter * | Export-Csv c:\export\ADExport.csv
برای آشنایی بیشتر به مقالهی چگونه کاربران Active Directory را اکسپورت کنیم مراجعه کنید.
6. دستور Stop-Process
اغلب پیش میآید که ادمینهای شبکه به پروسسی برمیخورند که درست کار نمیکند و یا هنگ کرده است. در این صورت پس از مشاهدهی نام یا ID آن توسط دستور Get-Process یا همان ps، میتوانند آن را به کمک دستور پاورشل Stop-Process به کل متوقف کنند.
Stop-Process -Name explorer Stop-Process -ID 2185
نمونهی استفاده از این دستور در بالا آمده است که بسیار روشن است. توجه داشته باشید که ID هر پروسس ممکن است در هر لاگین متفاوت باشد بنابراین حفظ کردن IDها چندان کمکی به شما نخواهد کرد.
7. دستور Get-Service، Stop-Service و Start-Service
همانطور که از نام این دستورات به راحتی میتوان حدس زد، دستور Get-Service لیست تمام سرویسهای موجود در سیستم را نشان میدهد خواه Running باشد خواه Stopped. شما همچنین به کمک دستورات Stop-Service و Start-Service همانند آنچه در رابطه با دستور Stop-Process گفته شد، میتوانید سرویسها را stop یا start کنید. برای نمونه، سرویس Spooler یکی از سرویسهایی است که ادمینها اغلب در هنگام برخورد با مشکل در پرینتر باید آن را stop و start کنند. دو دستور زیر این کار را برای شما انجام خواهند داد:
Stop-Service -Name Spooler Start-Service -Name Spooler