دستورات مهم پاورشل

دستورات مهم پاورشل
Avatar
نویسنده: مدیا روشن
دوشنبه 30 اردیبهشت 1398
مطالعه: ۱۵ دقیقه ۰ نظر ۲۴۸۹ بازدید

دستورات مهم پاورشل گستردگی‌های بسیاری را به خود اختصاص داده‌اند که هر کدام ویژگی‌های متفاوتی را به همراه دارند و باعث می‌شود تا کارها سرعت بالایی را داشته باشند و به نوعی سریع‌تر انجام گیرند. پاورشل به عنوان یک ابزار قدرتمند و اتوماسیون می‌تواند به کاربران ویندوز این فرصت را بدهد تا تجربه‌های زیادی را در زمینه‌های مختلف سروری به دست آورند. پاورشل سازگاری‌های زیادی را از خود به نمایش می‌گذارد و می‌تواند با هر ابزاری اجرا شود. در ادامه این مقاله از آموزش پاورشل به بررسی مهم‌ترین دستوراتی خواهیم پرداخت که در محیط پاورشل بسیار کاربردی هستند که در صورت فراگیری کامل آن‌ها می‌توانید به یک فرد حرفه‌ای در این زمینه تبدیل شوید.

خرید سرور ویندوز پارس پک با PowerShell

از این مقاله می‌‌توانید برای مدیریت سرویس‌های ویندوز خود استفاده کنید و اگر قصد خرید سرویس ویندوز پارس پک را دارید، می‌توانید با کارشناسان فروش ما در ارتباط باشید. همچنین، می‌توانید جهت کسب‌ اطلاعات بیشتر به لینک‌های زیر مراجعه کنید.

آموزش دستورات پاورشل

دستورات مهمی وجود دارند که دانستن آن‌ها می‌تواند بسیاری از مشکلات کامپیوتری و سروری شما را حل کند.

دستور Get-Help

بدون شک یکی از مهم‌ترین دستوراتی که در پاورشل وجود دارد، دستور Get-Help می‌باشد که به عنوان یک کمک‌ کننده بسیار بزرگ شناخته شده است. تمامی اطلاعاتی که به آن نیاز دارید را می‌توانید از درون این دستور پیدا کنید. این دستور می‌تواند جزئیات را نیز به شما نشان دهید. البته این نکته نیز باید ذکر شود که استفاده از این اسکریپت بسیار راحت بوده است و می‌توانید به راحتی آن را در محیط پاورشل وارد نمایید و سپس آن را اجرا کنید.

به عنوان مثال اگر بخواهید تمام اطلاعات را در مورد Get-Process بدانید، باید دستور زیر را وارد نمایید:

Get-Help Get-Process

تصویر زیر به خوبی روند اجرای دستور فوق را نشان می‌دهد:

دستور Get-Help پاورشل
دستور Get-Process در پاورشل

دستور Get-Command

یکی از ابتدایی‌ترین ولی کاربردی‌ترین دستوران مربوط به Get-Command می‌باشد که تمام ویژگی‌های مختلف را در یک دستور پیدا می‌کند و آن را در اختیاز شما قرار می‌دهد. این ویژگی‌ها هنگامی نشان داده می‌شوند که خود شما یک پارامتر و یا دستور خاصی را جستجو کرده‌ایدبه عنوان مثال پارامتری که به آن نیاز دارید –Service می‌باشدهنگامی که این پارامتر را در کنار دستور Get-Command تایپ کنید، نتیجه‌ای که مشاهده خواهید کرد، مربوط به تمامی اسکریپت‌هایی می‌باشند که این نام را در خود دارند.

به دستور زیر توجه کنید تا روند وارد کردن آن در پاورشل را بیشتر درک کنید:

Get-Command *-Service*

در تصویر زیر می‌توانید تمام دستوراتی با اجرا این دستور نشان داده شده‌اند را مشاهده کنید:

دستور Get-Command ویندوز پاورشل
دستور Get-Command

دستور Get-Process

دستور Get-Process نیز از دیگر دستوراتی می‌باشد که کاربرد بسیار گسترده‌ای در ویندوز پاورشل دارد. اگر می‌خواهید پردازش‌هایی را مشاهده کنید که در کامپیوتر در حال انجام هستند به راحتی می‌توانید از این اسکریپت بهره ببرید. متنی که قصد جستجوی آن را دارید باید داخل دو ستاره در کنار این دستور قرار بگیرند تا نتیجه نهایی و مطلوب را به شما بدهند.
به عنوان مثال می‌خواهید تمام اطلاعات و پردازش‌هایی که در داخل explore قرار دارند را به دست بیاورید. در این صورت باید دستور زیر را در پاورشل تایپ کنید سپس آن را اجرا کنید:

Get-Command

دستور Get-Service

دستور Get-Service نیز از جمله اسکریپت‌هایی است که استفاده بسیار در پاورشل دارد. با کاربرد این دستور می‌توانید در هنگام نیاز به اطلاعاتی در مورد یکی سرویس مشخص شده آشنا شوید. همچنین با استفاده از این کد می‌توانید تمامی سرویس‌هایی که بر روی کامپیوتر نصب شده‌اند را ببینید. پارامترها در این دستور بسیار مهم است. زیرا اگر قصد دارید که از این دستور استفاده کنید، باید پارامترهای این دستور را در کنار آن در محیط پاورشل وارد نمایید و سپس آن را به مرحله اجرا برسانید. اگر می‌خواهید سرویس‌های در حال اجرا را مشاهده کنید، می‌توانید دستور زیر را وارد نمایید:

Get-Service | Where-Object { $_.Status –eq "Running"}

تصویر زیر به خوبی دستور بالا را نشان می‌دهد:

دستور Get-Service
دستور Get-Service پاورشل

دستور Get-Variable

شاید یکی از دستوراتی که شناخته شده نمی‌باشد، دستور Get-Variable است اما بر خلاف این ناشناختگی کاربرد بسیاری را به دست آورده است. اگر می‌خواهید که از متغیرهای مختلف در این موتور خودکار استفاده کنید، می‌توان از این دستور بهره برد. برای درک بهتر تصور کنید که می‌خواهید متغیرهای مربوط به desc را به دست آورید. در این صورت باید دستور زیر را در پاورشل ویندوز اجرا کنید:

Get-Variable -Name “desc”
دستور Set-Variable در powershell
دستور Get-Variable

دستور Get-Content

اگر می‌خواهید تمامی محتویات یک فایل را دریافت کنید، بدون اینکه آن فایل را باز کنید، به راحتی می‌توانید از پاورشل بهره ببرید. دستوری که به انجام رساندن این امر کمک می‌کند، اسکریپت Get-Content می‌باشد.

به عنوان مثال فرض کنید که می‌خواهید فایلی را از Services.htm به دست بیاورید. در این صورت باید دستور زیر را در پاورشل ویندوز تایپ کنید تا نتیجه نهایی برای شما نشان داده شود:

Get-Content “C:Services.htm”

دستور Set-Content

در دستور قبل طریقه دریافت محتویات یک فایل را یاد گرفتید. حالا نوبت آن است که با دستوری مشابه و هم رده با آن آشنا شوید. دستور Set-Content برای زمانی به کار می‌رود که قصد دارید نتایج دستورات را با Get-Content ادغام نمایید. با این دستور می‌توانید محتویاتی را که دریافت کرده‌اید را در یک فایل دیگر ذخیره نمایید. این دستور در کنار Get-Content در محیط پاورشل ویندوز وارد می‌شودبطوری که این نتیجه به طور کامل با دستور قبل ترکیب می‌شود و آن در یک فایل جدید که توسط خود شما تعیین می‌شود، ذخیره خواهد شد.
با توجه به دستور زیر راحت‌تر می‌توانید اسکریپت را در پاورشل به اجرا برسانید:

Get-Content “C:\Services.html” -TotalCount ۵۰ | Set-Content “Sample.txt”

خروجی این دستور در فایل جدیدی به نام Sample.txt ذخیره خواهد شد.
به تصویر زیرا برای درک بهتر توجه کنید:

دستور Set-Content در windows
دستور Set-Content

دستور Get-Item

گر می‌خواهید به سرعت به یک آیتم و یا فایل خاص دسترسی پیدا کنید، می‌توانید از یک دستور بسیار منحصر به فرد در پاورشل بهره ببرید و آن اسکریپت Get-Item می‌باشدبه عنوان مثال تصور کنید که می‌خواهید به تمامی فایل‌هایی که با حرف لاتین M شروع می‌شوند، دسترسی پیدا کنید. در این صورت باید در کنار دستور فوق این حرف را جای دهید تا نتیجه دلخواهتان را کسب کنید. تمام نتایجی که به شما نشان داده خواهد شد جزو زیر شاخه‌ها می‌باشند و تنها با همین راه محتویات و زیر شاخه‌ها به شما نشان داده خواهند شد.
حال برای این دستور، می‌توانید همانند چیزی که در ادامه آورده خواهد شد عمل کنید و آن را در پاورشل وارد کنید:

Get-Item M*

تصویر زیر نیز به خوبی این دستور را به نمایش می‌گذارد:

دستور Get-Item
دستور Get-Item در ویندوز پاورشل

دستور Invoke-Command

دستور Invoke-Command می‌تواند به شما در هر شرایطی برای اجرای دستورتان کمک کند. به این صورت که فرقی ندارد اجرای دستور پاورشل شما داخلی و یا از راه دور باشد. همچنین اگر بخواهید یک دستور را بر روی چندین کامپیوتر و سرور اجرا کنید، به راحتی می‌توانید از دستور Invoke-Command بهره ببرید.
به عنوان مثال می‌خواهید که دستور را از کنترل از راه دور به مرحله اجرا برسانید. در این صورت می‌توانید به طور پیش فرض دستور زیر را وارد نمایید:

Invoke-Command –ScriptBlock {Get-EventLog System –Newest 50}

در دستور بالا، اسکریپتی که مد نظر است، EventLog می‌باشد. Invoke-Command نیز بطور کامل همراه با مسیر نهایی تایپ شده است.
تصویر زیر به خوبی نشان‌دهنده این موضوع می‌باشد:

دستور Invoke-Command در ویندوز پاورشل
دستور Invoke-Command

دستور Invoke-Expression

این دستور دارای یک تفاوت با اسکریپت قبلی می‌باشدبه طوری که دستور Invoke-Expression فقط قابلیت اجرا به صورت داخلی را بر روی کامپیوتر و سرورهای آن دارد. اگر قصد دارید که یک دستور و یا اصطلاح دیگر را اجرا کنید، می‌توانید از همین اسکریپت استفاده کنید. همچنین دستوری که می‌خواهید آن را وارد کنید باید به عنوان ورودی باشد. همچنین در ابتدا Invoke-Expression دستور وارد شده شما را به صورت کامل ارزیابی می‌کند و سپس تصمیم بر اجرای آن می‌گیرد.

به عنوان مثال دو متغیر و دستور $Command و Get-Process را در نظر بگیرید. قرار است که این متغیر را همراه با یک رشته به نام Get-Process تعریف کنید. در این صورت در دستور شما فقط متغیر $Command وارد خواهد شد و دستور Get-Process که یک دستور داخلی در کامپیوتر به حساب می‌آید، به راحتی با پاورشل ویندوز اجرا خواهد شد.
دستوری که در پاورشل باید وارد کنید و سپس آن را به مرحله اجرا برسانید به صورت زیر می‌باشد:

Invoke-Expression $Command

شکل زیر نیز نشان‌دهنده نتیجه نهایی دستور فوق است:

دستور Invoke-Expression در powershell
دستور Invoke-Expression

دستور Invoke-WebRequest

یکی از منحصر به فردترین دستورها در پاورشل ویندوز به منظور یادگیری دستور Invoke-WebRequest می‌باشد که به شما این قابلیت را می‌دهد تا بتوانید اطلاعات مورد نیاز خود را از وب سایت‌های مختلف دانلود کنید و وارد آن‌ها بشوید تا هر آنچه که به آن احتیاج دارید را کشف کنید و در نهایت به دست آورید. این در صورتی است که شما در حال استفاده از ابزار قدرتمند و خودکار پاورشل هستنید. برای اینکه بتوانید با این دستور کار کنید، در ابتدا باید نام خود دستور یعنی Invoke-WebRequest را وارد نمایید و پس از آن لینک‌هایی که مورد نظرتان می‌باشد را تایپ کنید و سپس آن را محیط پاورشل وارد نمایید تا به خوبی اجرا گردد.

دستور زیر را باید وارد کنید:

(Invoke-WebRequest -Uri https://docs.microsoft.com) .Links.Href

در این دستور وب‌سایتی که می‌خواهید به آن دسترسی داشته باشید و اطلاعات مورد نیاز خود را کسب کنید، https://docs.microsoft.com است.
به تصویر زیر توجه کنید تا نتیجه نهایی را مشاهده کنید:

دستور Invoke-WebRequest
دستور Invoke-WebRequest

دستور Copy-Item

در بیشتر مواقع هنگام کارکردن با سیستم کامپیوتری و سروری خود به کپی کردن فایل‌ها و آیتم‌های مختلف نیاز دارید. به همین منظور برای سرعت بخشیدن به کارهایتان می‌توانید از پاورشل ویندوز استفاده کنید و با باز کردن دستور Copy-Item اقدام به کپی نمودن فایل‌های خود کنید. همچنین اسکریپت ذکرشده دارای یک قابلیت دیگری دارد و آن نام گذاری مجدد فایل‌ها و شاخه‌های مربوطه است. نام جدید فایلی که می‌خواهید را در کنار این دستور وارد نمایید و سپس آن را اجرا کنید.

مثلاً فرض کنید فایلی که مد نظر شما می‌باشد دارای نام Services.htm می‌باشد و حال می‌خواهید آن را به نام جدید خود یعنی MyServices.txt تغییر دهید. در این صورت دستوری که باید آن را در پاورشل ویندوز تایپ کنید به شکل زیر می‌باشد:

Copy-Item “C:\Servies.htm” -Destination “C:\MyData\MyServices.txt” MyServices.txt

دستور Remove-Item

دستور Remove-Item همانطور که از نامش پیداست وظیفه حذف آیتم‌ها، فایل‌ها و همچنین Registry Key های مختلف را دارد. اگر پارامترهای مختلفی را در نظر دارید می‌توانید آن‌ها را از مکانی که در آن قرار دارند و یا ذخیره شده‌اند، حذف کنید. فرض کنید می‌خواهیم فایلی را که در دستور قبل آن را تغییر نام داده‌ایم را از پوشه خود حذف کنیم. در این صورت باید دستور زیرا در پاورشل وارد کنید تا به نتیجه نهایی یعنی حذف آیتم دست یابید:

Remove-Item “C:\MyData\MyServices.txt

دستور Set-Variable

دستور Set-Variable می‌تواند به دو منظور به کار رود که یکی از آن‌ها تغییر دادن یک متغیر و دیگری تنظیم مجدد همان متغیر عوض شده می‌باشد. فرض کنید که می‌خواهید مقدار متغیر decs را تعیین نمایید. در این صورت باید از دستور زیر برای به اجرا رساندن آن استفاده کنید:

Set-Variable -Name “desc” -Value “A Description”

با دقت به تصویر زیر دقت کنید تا به خوبی متوجه دستور بالا شوید:

دستور Start-Process

اگر بخواهید به پردازش یک و یا چندین دستور بپردازید، می‌توانید از اسکریپت کاربردی Start-Process استفاده کنید. همچنین اگر قصد دارید که به خودکارسازی پردازش‌های موجود بپردازید چیزی بهتر از دستور ذکرشده نخواهد بود.

پارامترهایی که در نظر دارید را در کنار این دستور باید وارد کنید تا بتوانید نتیجه نهایی آن را مشاهده کنید. فرض کنید می‌خواهید پارامتر Notepad را پردازش و اجرا کنید. دستوری که به آن نیاز پیدا خواهید کرد، به صورت زیر می‌باشد:

Start-Process -FilePath “notepad” -Verb runAs

در شکل زیر می‌توانید به خوبی دستور بالا را مشاهده نمایید:

دستور Start-Process
دستور Start-Process

دستور Stop-Process

این دستور نیز در بین کاربردی‌ترین دستورات پاورشل قرار دارد و پیچیدگی چندانی را به خود اختصاص نداده است. اگر آیدی پردازش را در دست داشته باشید می‌توانید یک یا چندین فرایند را از فعالیت باز بدارید و یا آن‌ها را متوقف نمایید. شاید باور کردن این موضوع برایتان سخت باشد اما با استفاده از دسترس Stop-Process می‌توانید پردازش‌هایی که هنوز به دست شما شروع نشده‌اند را متوقف کنید.
برای مثال می‌خواهید فرآیند Notepad را از فعالیت باز دارید. در این صورت کافی است تا دستور زیر را در پاورشل ویندوز وارد کنید و سپس آن را در مرحله اجرا قرار دهید:

Stop-Process -Name “notepad”

دستور Start-Service

یکی از قدرتمند دستوراتی که در ویندوز پاورشل می‌توانید به آن دسترسی پیدا کنید، دستور Start-Service است که با بهره گیری از آن سرویس‌های مد نظرتان بر روی ویندوز اجرا کنید. همچنین در صورتی که یک سرویس در کامپیوتر شما با روش خاصی متوقف شده باشید، با این دستور می‌توانید دوباره آن را اجرا کنید. به عنوان مثال سرویسی که قصد فعال کردن آن را دارید Wsearch می‌باشدکافیست این نام را در کنار دستور ذکرشده قرار دهید تا پاورشل خروجی نهایی را به شما نشان دهد.

به دستور زیر دقت کنید:

Start-Service - Name “WSearch”

دستور Stop-Service

همانطور که از نام این سرویس مشخص است در زمانی به کار می‌رود که قصد متوقف نمودن یک سرویس را دارید. عملکردی که دستور Stop-Service از خود به نمایش می‌گذارد، درست برعکس دستور قبلی می‌باشد. در مثال این دستور نیز فرض کنید که قصد داریم همان سرویس شروع را، متوقف کنیم. در این صورت تنها چیزی که مورد نیاز شما کاربران می‌باشد، وارد نمودن دستور زیر است:

Stop-Service -Name “WSearch”

این دستور در تصویر زیر به خوبی مشهود می‌باشد:

دستور Stop-Service
دستور Stop-Service

دستورات پاورشل شما مسیر را برای انجام کارهای کامیپوتری شما در بهترین صورت خود هموار می‌کند. از این رو الزامی است تا این دستورات فرا بگیرد و وارد دنیایی از علم‌های سروری شوید.

جمع‌بندی

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

سوالات متداول

به علت اینکه دستورات پاورشل بسیار جامع است سوالاتی که در مورد آن وجود دارد نیز از گستردگی بسیار بالایی بهره‌مند است. از این رو به بررسی تعدادی از سوالات در این زمینه پرداخته‌ایم که بتواند بخشی از نیازهای شما را پاسخ گوید.

1. اگر بخواهیم که امنیت ساخت و اجرای اسکریپت‌ها را در پاورشل بالا ببریم از چه دستوری در آن استفاده خواهیم کرد؟

برای اینکه بتوانیم در هنگام ساخت و اجرای اسکریپت‌ها امنیت را بالا ببریم، از دستور Set-ExecutionPolicy استفاده خواهیم کرد که دستور کلی آن به صورت زیر است:

Set-ExecutePolicy -ExecutionPolicy Restricted

2. چه دستوری در پاورشل با Get-Help برابری می‌کند؟

دستور Man را می‌تواند به جای دستور Help به کار برد و اطلاعات مورد نیاز را در پاورشل دریافت نمود.

3. اگر در هنگام خواندن دستورات در –Help دچار مشکل شویم، چه راه‌حلی پیش روی ما قرار دارد؟

اگر در خواندن دستورات در _Help با استفاده از پاورشل دچار مشکل شدید، می‌توانید از پارامتر –Example بهره ببرید.

4. اگر بخواهیم آدرسی را در پاورشل تغییر بدهیم، از چه دستوری می‌توان بهره برد؟

برای تغییر دادن نام آدرس می‌توان از دستور Set-Location بهره برد.