دوره‌ های آموزشی نووا

آموزش کار با پاورشل

Avatar photo
برنامه نویس MERN Stack
آموزش کار با پاورشل

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

ابزار PowerShell ویندوز همانند CMD دارای دستورات فراوانی میباشد که کار مدیران IT را در زمینه Automation نمودن فعالیت های ویندوز بسیار ساده کرده. یکی از مزیت های ابزار PowerShell این است که دستورات آن در دو نسخه مختصر (Aliases) و کامل (cmdlet) وجود دارند و میتوانید از هر دو نسخه آنها با هم استفاده کنید. اکثر دستورات مختصر شده PowerShell همنام و همانند دستورات لینوکس عمل میکنند. مثلا دستور cp در لینوکس برای کپی گرفتن از فایلها استفاده میشود و همین دستور در PowerShell هم قابل اجرا است یا دستور ps که برای فهرست گیری از Process های فعال لینوکس استفاده میشود. در کل افرادی که با دستورات لینوکس آشنایی داشته باشند به سادگی میتوانند کار با PowerShell ویندوز را یاد بگیرند.

نکته: دستورات Aliases که در این آموزش آنها را با نام دستورات مختصر معرفی نمودم درواقع همان مستعار دستورات کامل میباشند.

کمک گرفتن از PowerShell

همانند CMD و Bash Shell لینوکس، اولین دستوری که باید در PowerShell ویندوز یاد بگیرید دستور Get-Help برای کمک گرفتن از PowerShell میباشد. کار دستور Get-Help همانند دستور man در لینوکس است. با استفاده از این دستور میتوانید از نحوه عملکرد دیگر دستورات باخبر شوید.

فرض کنید نمیدانید دستور Get-Childitem چگونه کار میکند برای اینکه از نحوه عملکرد این دستور مطلع شوید کافیست دستور Get-Help را به همراه دستور Get-ChildItem در خط فرمان PowerShell وارد کنید. به مثال زیر توجه کنید:

Get-Help Get-Childitem

get-help-get-childitem

همانطور که گفتم دستورات PowerShell در دو نسخه مختصر و کامل میباشند دستور Get-Help نسخه کامل است و نسخه مختصر آن همان دستور man در لینوکس است. اگر یک کاربر لینوکس باشید میدانید که دقیقا دستور man در لینوکس همین گونه عمل میکند. نحوه استفاده از دستور MAN دقیقا همانند دستور Get-Help است به مثال زیر توجه کنید:

MAN Get-Childitem

تفاوت دستور Get-help با دستور MAN در متوقف شدن خودکار صفحه در هنگام نمایش خروجی دستور MAN میباشد. یعنی اگر محتوای خروجی بیش از سایز صفحه باشد به صورت خودکار از نمایش ادامه محتوا جلوگیری میشود تا کاربر به سادگی بتواند متن را بخواند. و با کلید Space و Enter ادامه مطلب را مشاهده کند.

نکته: در PowerShell ویندوز فرقی بین حروف کوچک و بزرگ نمیباشد.

فهرست گیری از فایلها و دایرکتوری ها

برای فهرست گیری از فایلها و پوشه ها میتوانید از دستور LS یا نسخه کامل آن یعنی GET-CHILDITEM استفاده کنید. نحوه استفاده از این دستور بسیار ساده است کافیست دستور را بدون پارامتر در خط فرمان PowerShell وارد کنید. برای مثال:

LS

Get-Childitem

برای دیدن کلیه پارامترهای دستور LS یا Get-Childitem از دستور MAN یا Get-Help استفاده کنید.

MAN LS

برای نمایش فایلهای دارای Attribute باید از پارامتر -Attribute به همراه نام Attribute استفاده کنید. مثلا برای نمایش فایلهای مخفی باید از دستور زیر استفاده کنید:

LS -Attributes hidden

get-childitem-attributes-hidden

نکته: در PowerShell میتوانید همانند Bash Shell لینوکس بخشی از دستورات را وارد کنید و با زدن کلید تب دستور را کامل کنید. همچنین میتوانید این کار را برای پارامترهای دستورات هم انجام دهید.

در PowerShell نیاز نیست بعضی از مقدارهای پارامتر را کاملا تایپ کنید. مثلا بجای کلمه hidden میتوانید از حرف h استفاده کنید یا بجای کلمه System از حرف s و …

LS -Attrib h

حرکت بین دایرکتوری ها در PowerShell

برای تغییر آدرس در PowerShell میتوانید از دستور CD یا نسخه کامل آن Set-Location استفاده کنید. کار با این دستور فرقی با دستور CD در CMD ندارد. کافیست کلمه CD یا Set-Location را به همراه آدرس مورد نظر وارد کنید برای مثال:

CD Windows\System32

یا

Set-Location E:\Software\

set-location-windows-system32

یکی از مزیت های دستور CD یا Set-Location در PowerShell وارد نمودن آدرس کامل میباشد. یعنی نیاز نیست ابتدا وارد یک درایو شوید تا بتوانید وارد دایرکتوری های آن درایو شوید. پس میتوانید به صورت مستقیم آدرس یک درایو و دایرکتوری را با هم وارد کنید.

یکی دیگر از ویژگیهای جالب دستور CD یا Set-Location در PowerShell رفتن به مسیرهای Registry در ویندوز میباشد. برای اینکار کافیست از پارامتر -path استفاده کنید. به مثال زیر توجه کنید:

Set-Location -Path “HKLM:”

set-location-path-hklm

دستور بالا شما را وارد مسیر HKEY Local Machine در رجیستری ویندوز میکند.

پاک کردن نتایج صفحه PowerShell

همانند Command Prompt و Bash Shell لینوکس میتوانید از دستور CLS یا Clear برای پاک کردن محتوای نمایش داده شده در صفحه PowerShell استفاده کنید. برای مثال:

CLS

یا

Clear

نمایش محتوای فایلهای متنی در PowerShell

برای دیدن محتوای فایلهای متنی میتوانید از دستور Get-Content یا از نسخه مختصر آن یعنی دستور CAT استفاده کنید. استفاده از این دستور بسیار ساده است. کافیست پس از دستور CAT آدرس فایل متنی خود را وارد کنید. به مثال زیر توجه کنید:

CAT “Users\Home\Desktop\Access Control List.txt”

دستور Get-Content یا CAT دارای پارامترهای زیادی میباشد که میتوانید آنها را با دستور MAN پیدا کنید.

کپی گرفتن از فایلها در PowerShell

برای کپی گرفتن از فایلها میتوانید از دستور CP یا Copy و یا نسخه کامل آن Copy-Item استفاده کنید. برای کپی گرفت از یک فایل کافیست پس از تایپ دستور CP آدرس مبدا فایل را مشخص کنید سپس آدرسی که میخواهید فایلهای شما در آنجا کپی شود. به مثال زیر توجه کنید:

CP C:\Windows\System32\cmd.exe D:\

یا

Copy-Item C:\Windows\System32\cmd.exe -Destination D:\

تغییر نام فایلها در PowerShell

برای تغییر نام فایلها و پوشه ها میتوانید از دستور REN یا نسخه کامل آن یعنی Rename-Item استفاده کنید. برای تغییر نام یک فایل کافیست پس از تایپ دستور Rename و آدرس فایل با یک فاصله نام جدید فایل را تایپ کنید. به مثال زیر توجه کنید:

Rename-Item “Command Prompt.exe” CMD.exe

rename-item-command-prompt-to-cmd

حذف فایلها در PowerShell

برای حذف فایلها و پوشه ها میتوانید از دستور Del یا Remove-Item استفاده کنید. استفاده از این دستور بسیار ساده میباشد کافیست تا پس از تایپ دستور آدرس و نام فایل مورد نظر خود را وارد کنید. برای مثال:

Remove-Item D:\CMD.exe

فهرست گیری از Process های فعال در PowerShell

برای دیدن Process ها یا برنامه های فعال در PowerShell میتوانید از دستور PS یا Get-Process استفاده کنید. کافیست تا دستور PS را در خط فرمان PowerShell بدون پارامتر وارد کنید. به مثال زیر توجه کنید:

PS

یا

Get-Process

یکی از مزایای جالب Get-Process در PowerShell دریافت Process های یک برنامه مشخص میباشد. مثلا برای دیدن Process های مربوط به برنامه Google Chrome کافیست دستور زیر را تایپ کنید:

Get-Process Chrome

بستن Process های فعال در PowerShell

برای بستن Process های فعال در PowerShell میتوانید از دو دستور Kill یا Stop-Process استفاده کنید. برای اینکار ابتدا با دستور Get-Process فهرستی از Process های فعال دریافت کنید و ID برنامه مورد نظر خود را در جلوی دستور kill قرار دهید. برای مثال:

Stop-Process 7628

یا اینکه میتوانید نام برنامه مورد نظر خود را در جلوی دستور Stop-Process یا دستور Kill قرار دهید. برای مثال:

Kill -Name Chrome

در صورتی که در هنگام متوقف سازی یک Process به مشکل برخوردید میتوانید از پارامتر –Force در آخر دستور استفاده کنید. برای مثال:

Stop-Process -Name Chrome -Force

نکته: در صورتی که نحوه عملکرد یک دستور برای شما گیج کننده بود از دستور Get-Help به همراه پارامتر –Example استفاده کنید تا مثالهای از دستور مورد نظر خود را بیابید. به مثال زیر توجه کنید:

Get-Help Stop-Process -Examples

خب دیگه حوصلم سر رفت 🙂 فکر میکنم تا اینجا برای فصل اول کافی باشه. انشاالله در فصلهای بعد درباره دستورات بیشتری توضیح میدم.

در صورت داشتن هر گونه سوال یا انتقاد نووا بلاگ را از محبت خود محروم نکنید.

15 پاسخ به “آموزش کار با پاورشل”

  1. Avatar photo علی خدایی گفت:

    سلام
    دستور تغییر نام کامپیوتر رو جا انداختی 🙂
    Rename-Computer -Newname ALI-PC

  2. Avatar photo مجید گفت:

    سلام
    ممنون از اطلاعات مفیدی که در اختیار قرار دادین.
    من یه اسکریپت پاورشل نوشتم که منابع زیادی از سیستم درگیر میکنه و نیاز به بهینه سازی داره. ممکنه راهنمایی بفرمایید
    (get-childitem -Path F:\SiteData\LegacyEng -ErrorAction Ignore -Recurse) | where {$_.lastwritetime -gt ‘6/13/18’ -AND $_.lastwritetime -lt ‘6/16/18’-and !$_.PSIsContainer} | select-object FullName, LastWriteTime, Length | export-csv -notypeinformation -delimiter ‘|’ -path C:\Users\cop_torabim\Desktop\file.csv
    ممنون

  3. Avatar photo محمد گفت:

    سلام و وقت بخیر و خسته نباشید بابت زحماتی که برای آموزش می کشید .
    ببخشید یه سوال داشتم خدمت شما ؟؟
    من تو یه شرکتی کار می کنم که تو واحد IT اون شرکت Help Desk هستم و به زبان برنامه نویسی خیلی علاقه دارم اما متاسفانه بخاطر کم کاری خودم تا حالا به سمتش نرفتم اما با دیدن مطالب شما مشتاق شدم حداقل پاورشل رو یاد بگیرم البته ناگفته نماند تا حالا تو زمینه ی برنامه نویسی کاری نکردم دوره ی پیش نیاز MCSA 2016 رو کامل نگذروندم حالا به نظر
    حالا به نظر شما دنبال این دوره پاورشل برم یا نه ؟؟؟ ( پرسیدم از شما چون تجربیات شما از من بیشتره )
    ممنونم می شم پاسخ سوالم رو بدین .
    سپاس فراوان از شما .

    • سلام محمد
      یادگیری پاورشل خیلی عالی مخصوصا برای شمایی که در زمینه Help Desk کار میکنید، بعد از یادگیری پاورشل خیلی از کارهاتون رو اگر با ویندوز سرکار داشته باشید Automate میکنید و بدون شک پیشرفت زیادی خواهید داشت.
      برای یادگیری پاورشل پیشنیازی وجود نداره، فقط سعی کنید قواعد و دستورات رو به خوبی یاد بگیرید و برای هر کاری که انجام میدید اسکریپت پاورشلش رو بنویسید.
      خیلی هم عالی ان شا الله که همیشه موفق باشید.

  4. Avatar photo محمد گفت:

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

    • سلام محمد
      عذرخواهی میکنم بابت تاخیر در پاسخگویی
      در کل اگر میخواهید با پاورشل کار کنید بهتره به صورت کامل این زبان رو یاد بگیرید پاورشل یک زبان اسکریپ نویسی کامل که یادگیری قواعدش خیلی مهمه
      میتونید ویدیو های Udemy یا CBTNugget رو تهیه کنید و یا اگر خواستید آموزشهای فارسی پاورشل در سایت های مثل faradars و faranesh موجود، بهترین و کاملترینش رو انتخاب کنید و شروع به یادگیری کنید.
      خواهش میکنم، ان شا الله که موفق باشید

  5. Avatar photo mahmood گفت:

    سلام یه سوال داشتم چطوری میشه در پاور شل رفت به آدرس خاصی و یه فایلی رو تست کرد و در PS نشو بده کجام هستم اگه کسی هست که راهنمایم کن ممنون میشم

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *