10 فرمان آسان PowerShell که همه کاربران ویندوز باید بدانند

PowerShell تمام کنترلی را که روی رایانه شخصی ویندوزی خود نیاز دارید در اختیار شما قرار می دهد و یادگیری آن آسان است. بنابراین Command Prompt را کنار بگذارید و از دستورات Windows PowerShell برای خودکارسازی آن وظایف اداری تکراری استفاده کنید. 

یادگیری PowerShell همچنین به شما آموزش می دهد که چگونه اکثر وظایف مدیریتی لینوکس(Linux) را در داخل پوسته bash انجام دهید. PowerShell شبیه چیزی است که در اکثر توزیع‌های (Distros)لینوکس(Linux ) پیدا می‌کنید 

PowerShell چیست؟

Windows PowerShell یک رابط خط فرمان و زبان برنامه نویسی است که توسط مایکروسافت(Microsoft) برای مدیران سیستم توسعه یافته است. اما برای استفاده از آن لازم نیست مدیر یا برنامه نویس باشید زیرا بسیار ساده تر از سایر زبان های برنامه نویسی است. این شبیه به انگلیسی(English) معمولی است و همه می توانند آن را بفهمند و از آن برای مدیریت رایانه های خود استفاده کنند.

دستورات مورد استفاده در Windows PowerShell به عنوان "cmdlets" شناخته می شوند. آنها به شما اجازه می دهند یک عمل خاص یا مجموعه ای از اقدامات را در رایانه خود فعال کنید. این اقدامات می تواند ساده باشد، مانند ورود به یک شبکه بی سیم، یا پیچیده تر، مانند خودکار کردن کارهای تکراری خاص. 

برای باز کردن PowerShell، دکمه Start را فشار دهید، "powershell "(powershell) را در کادر جستجو تایپ کنید و Windows PowerShell را انتخاب کنید . شما به رابط خط فرمان باز خواهید شد، جایی که آماده شروع تایپ دستورات هستید.

در این مقاله، به ده مورد از مفیدترین و آسان‌ترین دستورات PowerShell می‌پردازیم .(PowerShell)

1. دریافت کمک

Get - Help(Get-Help) cmdlet مکانی عالی برای شروع در PowerShell است. این یک نمای کلی از آنچه می توانید انجام دهید ارائه می دهد و همچنین زمانی که به اطلاعات بیشتری در مورد cmdlet خاصی نیاز دارید عالی است 

به سادگی(Simply) پنجره PowerShell را باز کرده و Get-Help را(Get-Help) تایپ کنید . این یک مرور کلی را باز می کند که به شما می آموزد PowerShell چیست و عملکرد و ساختار آن را درک خواهید کرد. همچنین می‌توانید مستقیماً از طریق رابط برای فایل‌های راهنمای پیشرفته‌تر به وب دسترسی داشته باشید. شما می توانید این فایل ها را برای استفاده بعدی دانلود کنید. 

اما این پایان دستور get-help نیست. نوع: 

Get-Help * 

PowerShell تمام cmdlet هایی را که می توانید در آن لحظه استفاده کنید فهرست می کند. لیست احتمالاً بزرگ خواهد بود و نیازی به یادگیری تمام cmdlet های نمایش داده شده ندارید. اما با خیالی آسوده آنها را بخوانید و تمام امکاناتی که در اختیار دارید را بررسی کنید.

نوع:

Get-Help <command name>

شما نیازی به براکت ندارید، به سادگی نام دستور مورد نظر خود را تایپ کنید و این cmdlet اطلاعات اولیه در مورد آن را به شما می دهد. برای توضیح دقیق تر یک دستور، تایپ کنید:

Get-Help <command name> -Full

اگر به مثالی از نحوه استفاده از یک نوع دستور خاص نیاز دارید:

Get-Help <command name> -Example

2. دریافت فرمان

آیا می خواهید اطلاعات مربوط به یک دستور خاص یا مجموعه ای از دستورات را به سرعت بازیابی کنید؟ cmdlet Get-Command(Get-Command) این کار را برای شما انجام خواهد داد. گزینه های زیادی در Get-Command وجود دارد، اما شما به عنوان یک کاربر اصلی PowerShell ، به اکثر آنها نیاز ندارید. در اینجا برخی از cmdlet های اولیه وجود دارد که به خصوص هنگام پیمایش دستورات موجود مفید خواهند بود.

اگر لیستی از cmdlet های خاص از همان نوع را می خواهید:

Get-Command -<CommandType>

به عنوان مثال، این عبارت پیچیده به رایانه شما دستور می دهد تا لیستی از تمام دستورات نوع cmdlet موجود را نمایش دهد و آنها را بر اساس ترتیب حروف الفبای اسم در نام خود مرتب کند:

Get-Command -Type Cmdlet | Sort-Object -Property Noun| Format-Table -GroupBy Noun

این یک مثال عالی از یک دستور پیچیده تر است که باعث می شود PowerShell یک کار پیچیده را اجرا کند. هنگامی که نحو را درک کردید، خواهید دید که استفاده از PowerShell اغلب سریع‌ترین و ساده‌ترین کار برای انجام برخی کارها در رایانه شما است.

اگر می خواهید دستور خاصی را با نام آن پیدا کنید، به سادگی تایپ کنید:

Get-Command -Name <name of command>

اگر نام دقیق دستوری که به دنبال آن هستید را نمی دانید، اما بخشی از نام را می دانید، می توانید تایپ کنید: 

Get-Command -Name <name of command> -UseFuzzyMatching

این cmdlet به رایانه شما وظیفه می‌دهد تا دستوراتی را پیدا کند که دقیقاً مطابق با آنچه در فیلد <name> تایپ کرده‌اید مطابقت داشته باشد. همچنین در صورتی که مستعد اشتباهات املایی هستید و نمی خواهید همیشه از اصلاح خود ناراحت شوید، می توانید از این cmdlet استفاده کنید.

3. دریافت محتوا

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

در مثال بالا می توانید محتوای یک فایل متنی آزمایشی که برای این منظور ساخته شده است را مشاهده کنید. این یک دستور ساده است، اما اگر می دانید چه کاری انجام می دهد، می توانید آن را با دستورات دیگر ترکیب کنید و کارهای بسیار قدرتمندی را از طریق Windows PowerShell انجام دهید .

4. Get-Process

Get - Process(Get-Process) cmdlet اطلاعاتی در مورد فرآیندهای در حال اجرا در رایانه شما به شما می دهد. می توانید میزان استفاده از حافظه، چرخه های CPU ، شناسه پردازش و سایر ویژگی ها را  ببینید

اگر نام فرآیند را به این cmdlet اضافه کنید، می توانید اطلاعات مربوط به یک فرآیند خاص را مشاهده کنید. به عنوان مثال، اگر اطلاعاتی در مورد فرآیند برنامه Discord می خواهید ، به سادگی Get-Process Discord را تایپ کنید .

شما می توانید فرآیندها را از طریق PowerShell به سادگی با جایگزین کردن پیشوند "Get" از نحو شروع یا متوقف کنید. برای شروع یک فرآیند، تایپ کنید:

Start-Process <process name or ID>  

برای توقف یک فرآیند، تایپ کنید:

Stop-Process <process name or ID>

5. دریافت خدمات

به عنوان یک مدیر سیستم، ممکن است cmdlet Get-Service را بسیار مفید بیابید. (Get-Service)این cmdlet ساده تمام سرویس هایی که در حال حاضر روی سیستم شما در حال اجرا هستند را نمایش می دهد و به شما امکان کنترل آنها را می دهد. این بدان معنی است که شما می توانید تمام برنامه هایی را که در حال حاضر برای اجرای رایانه خود کار می کنند، مشاهده کنید 

اکنون می توانید از نام سرویس برای کنترل آن استفاده کنید. از دستوراتی مانند Restart-Service <service name> برای بازکردن چسب های یخ زده، Stop-Service <service name> برای متوقف کردن کامل آنها و Start-Service برای شروع مجدد آنها استفاده کنید.

6. Get-Item

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

دریافت مورد C:(Get-Item C:)

با این کار لیستی از فایل های موجود در هارد دیسک “C:â € برای شما نمایش داده می شود. شما می توانید حتی دقیق تر باشید و در همه فهرست های زیر نمایه کاربر جستجو کنید یا به دایرکتوری های "اسناد" یا "دانلودها" عمیق تر بروید. برای انجام این کار، تایپ کنید:

Get-Tem C:\users\<user name>\*

اگر نیاز به بازیابی یک آیتم فرزند از یک کانتینر، مانند دایرکتوری سیستم دارید، می توانید از cmdlet Get-ChildItem استفاده(Get-ChildItem) کنید. این دستور تمام فایل ها و دایرکتوری های داخل آن کانتینر را به شما نشان می دهد. همانند cmdlet Get-Item ، باید مسیر کانتینر را مشخص کنید.(Get-Item)

برای حذف موارد، می‌توانید پسوند «Get» را با «حذف» جایگزین کنید. این به شما امکان می‌دهد همه چیز را حذف کنید، از فایل‌ها و پوشه‌ها گرفته تا کلیدهای رجیستری و عملکردها. Remove-Item <location\ name> تایپ کنید . شما می توانید این cmdlet را به طور دقیق بسازید و فقط فایل های پنهان و "فقط خواندنی" را حذف کنید یا موارد را از پوشه ها و زیرپوشه های خاص حذف کنید.

7. تبدیل به Html

این دستور به شما کمک می کند یک شی .NET را به یک فایل HTML تبدیل کنید که می تواند در مرورگرهای وب نمایش داده شود. (Web)این یک cmdlet خروجی است که به این معنی است که با cmdlet های دیگر عالی کار می کند. به سادگی(Simply) آن را به انتهای cmdlet های دیگر اضافه کنید و یک مسیر فایل خاص را وارد کنید 

به عنوان مثال، اگر می خواهید یک فایل HTML ایجاد کنید که نام، مسیر و شرکت تمام فرآیندهای فعلی یک رایانه محلی را نمایش دهد، تایپ کنید: 

Get-Process | ConvertTo-Html -Property Name, Path, Company -Title “Process Information” | Out-File filename.htm

(Replace)فایلname.htm را با هر نامی که می خواهید جایگزین کنید .

برای باز کردن فایل ایجاد شده، از cmdlet Invoke-Item(Invoke-Item cmdlet ) به اضافه <file name.htm> استفاده کنید. محتویات باید چیزی شبیه به تصویر زیر باشد.

8. Set-Executionpolicy

اگر می خواهید اسکریپت های محلی PowerShell را اجرا کنید، باید سیاست اجرای خود PowerShell را تغییر دهید . در رایانه‌های ویندوز(Windows) ، سیاست اجرا همیشه محدود است و باید آن را به RemoteSigned یا Unrestricted تغییر دهید . در رایانه‌های بدون ویندوز(Windows) مانند لینوکس(Linux) یا مک(Mac) ، معمولاً روی Unrestricted تنظیم می‌شود و(Unrestricted) نمی‌توان آن را تغییر داد. 

اگر می خواهید درباره سیاست اجرای PowerShell(PowerShell) اطلاعات بیشتری کسب کنید ، به سادگی تایپ کنید:

کمک به Set-ExecutionPolicy(help Set-ExecutionPolicy)

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

برای تنظیم خط مشی روی RemoteSigned ، به سادگی تایپ کنید:

Set-Executionpolicy RemoteSigned

برای تنظیم آن بر روی نوع نامحدود:

Set-Executionpolicy نامحدود(Set-Executionpolicy Unrestricted)

برای بررسی تنظیمات فعلی برای سیاست اجرا، عبارت:Â را تایپ کنید 

سیاست اجرا(Get-Executionpolicy)

از آنجایی که سیاست‌های اجرا بخشی از استراتژی‌های امنیتی PowerShell هستند، از شما درخواست تأیید تغییر می‌کند. فقط اگر مطمئن هستید که می خواهید ادامه دهید Y را تایپ کنید.

9. Select-Object

این دستور برای انتخاب اشیا و مجموعه ای از اشیا، اشیاء منحصر به فرد و اشیاء در یک موقعیت خاص در یک آرایه استفاده می شود. پارامترهای مختلفی وجود دارد که می توانید از آنها برای تعیین اشیایی که می خواهید انتخاب کنید استفاده کنید. در میان آنها خواص، مقادیر عددی، و اشیاء ورودی خاص هستند 

برای انتخاب اشیا بر اساس ویژگی ویژگی، باید ویژگی هایی مانند نام، شناسه یا CPU را مشخص کنید . حتی می توانید ویژگی ها را گروه بندی کنید، اما هنگام تایپ دستور باید آنها را با کاما از هم جدا کنید. برای دیدن cmdlet Select-Object در نوع عمل:

Get-Process | Select-Object -Property ProcessName, Id, CPU

PowerShell تمام فرآیندهای جاری و ویژگی های آنها را فهرست می کند، همانطور که در زیر نشان داده شده است .

اکنون می توانید از دستور -EpandProperty برای دریافت اطلاعات دقیق در مورد ویژگی خاص استفاده کنید. اگر جزئیات مربوط به ویژگی Modules از نوع ویژگی ProcessName را می خواهید :

Get-Process Chrome | Select-Object -Property ProcessName -ExpandProperty Modules | Format-list

خروجی "Format-list" دستور وجود دارد تا نتایج را قالب بندی و خوانا کند.

10. صادرات-CSV

گاهی اوقات دستورات PowerShell منجر به لیست های طولانی می شود، همانطور که در cmdlet Get-Command دیدیم. (Get-Command)خواندن لیست های طولانی و اطلاعات زیاد دشوار است و شما آن را به شیوه ای سازماندهی شده تر می خواهید. برای انجام این کار، تمام داده ها را در یک فایل CSV صادر کنید. شما می توانید این کار را مستقیماً در PowerShell با استفاده از تابع Export- CSV انجام دهید .

به عنوان مثال، ما دیدیم که cmdlet Get-Command یک لیست طولانی از تمام cmdlet های موجود که می توانیم در آن لحظه در PowerShell استفاده کنیم به ما می دهد. (PowerShell)می توانید Get-Command و Export-CSV را برای ایجاد یک لیست دقیق با مقادیر جدا شده با کاما مانند نام، منبع و نسخه که برنامه هایی مانند Excel می توانند تشخیص دهند،  ترکیب کنید.

برای انجام این کار، دستور زیر را در خط فرمان PowerShell تایپ کنید، اما توجه داشته باشید که می‌توانید هر مسیری را که می‌خواهید تنظیم کنید، و می‌توانید نام فایل خود را به شکل دیگری انجام دهید:

Get-Command | Select Name, Source, Version | export-csv D:\AllCommands.csv

اکنون می توانید لیست را در اکسل(Excel) باز کنید و چیزی شبیه به تصویر زیر خواهید دید.



About the author

من یک متخصص ویندوز هستم و بیش از 10 سال است که در صنعت نرم افزار کار می کنم. من با هر دو سیستم ویندوز مایکروسافت و اپل مکینتاش تجربه دارم. مهارت‌های من عبارتند از: مدیریت پنجره، سخت‌افزار و صدا کامپیوتر، توسعه اپلیکیشن و غیره. من یک مشاور با تجربه هستم که می توانم به شما کمک کنم تا از سیستم ویندوز خود حداکثر استفاده را ببرید.



Related posts