# PowerShell 7x - قسمت اول - معرفی و نصب

PowerShell یک ابزار task automation است که همزمان یک command-line shell، زبان اسکریپتی و یک فریم‌ورک configuration management نیز میباشد. برخلاف دیگر shellها که مبتنی بر رشته هستند، ورودی و خروجی آن ا

- Published: 2022-10-02
- Language: fa
- Tags: DNTips
- Canonical: https://sirwan.info/blog/fa/dntips-3413

---

> این نوشته نخستین بار در [دات‌نت تیپس](https://www.dntips.ir/post/3413) منتشر شده است.

<div class="postBody">PowerShell یک ابزار task automation است که همزمان یک command-line shell، زبان اسکریپتی و یک فریم‌ورک configuration management نیز میباشد. برخلاف دیگر shellها که مبتنی بر رشته هستند، ورودی و خروجی آن اشیاء دات‌نتی است و از آنجائیکه مبتنی بر CLR میباشد، امکان نوشتن توابع، کلاس‌ها و ماژول‌ها را به ما میدهد. همچنین به صورت توکار امکان کار با فرمت‌هایی از قبیل CSV, XML, JSON را در اختیارمان قرار میدهد. بخاطر extensible بودن، تعداد زیادی ماژول و افزونه برای نصب وجود دارند که کار با انواع تکنولوژی‌ها را میسر میسازند:  <div> <ul> <li>Azure<br/> </li> <li>Windows</li> <li>Exchange</li> <li>SQL</li> <li>AWS</li> <li>VMWare</li> <li>Google Cloud  </li> </ul> <div>PowerShell در ابتدا در سال 2006 برای ویندوز XP به همراه 130 کامند ارائه شد. نسخه‌های بعدی آن نیز به ترتیب 2.0, 3.0, 4.0, 5.0 و در نهایت 5.1 به همراه تعداد بیشتری از Commandها ارائه شدند. تا اینجا فقط بر روی ویندوز استفاده بود، چون براساس Full .NET Framework توسعه داده شده بود، تا در نهایت در سال 2018 نسخه cross-platform آن یعنی نسخه 6.0 ارائه شد که مبتنی بر .NET Core 2 بود. در نسخه 6.2 تعداد Commandها به نصف تعداد نسخه 5.0 هم نمیرسید. در نهایت نسخه 7.0 ارائه شد که هم backward compatible بود و هم اینکه به صورت cross-platform نیز ارائه شد؛ لازم به ذکر است، این نسخه از PowerShell براساس .NET Core 3 توسعه یافت. PowerShell به صورت پیش‌فرض بر روی ویندوز ۷ (همچنین ویندوز ۲۰۰۸) به بعد، قابل نصب است. لازم به ذکر است که اسم پراسس PowerShell از نسخه ۷ به بعد از powershell.exe به pwsh.exe تغییر نام یافته است. بنابراین به صورت side-by-side در کنار PowerShell 5.1 قابل نصب است.  </div> <div> <br/> </div> <div> <p style="margin-left: auto; margin-right: auto;"> <img src="/img/dntips/2c4702b727dca022bab9.png" style="display: block; margin-left: auto; margin-right: auto; cursor: default; height: 289px;"/> </p> </div> <div> <br/> </div> <div>ISE یا همان Integrated Scripting Environment در واقع همان IDE برای نوشتن اسکریپت‌های چندخطی PowerShell است. از نسخه ۷ به بعد، PowerShell دیگر با ISE ارائه نمیشود و فقط برای ویندوز و در support mode است: <br/> </div> <div> <br/> </div> <div> <div> <p style="margin-left: auto; margin-right: auto;"> <img src="/img/dntips/e6d71d884c9a4660180b.png" style="display: block; margin-left: auto; margin-right: auto; cursor: default; height: 549px;"/> </p> </div> <div> <br/> </div> <div>برای نوشتن اسکریپت‌های PowerShell بهتر است extension رسمی آن را نصب کنید (<a href="https://marketplace.visualstudio.com/items?itemName=ms-vscode.PowerShell">+</a>). با نصب این extension، محیط VSCode ظاهری شبیه به ISE پیدا خواهد کرد (البته به صورت پیش‌فرض فعال نیست و باید بعد از نصب theme را تغییر دهید). همچنین از Language Server مربوط به PowerShell نیز استفاده میکند که نوشتن و دیباگ کردن اسکریپت‌های PowerShell را به مراتب ساده‌تر خواهد کرد: </div> <div>   <br/> </div> <p style="margin-left: auto; margin-right: auto;"> <img src="/img/dntips/28e9390aab4fc9bb064d.png" style="display: block; margin-left: auto; margin-right: auto; cursor: default; height: 575px; width: 781.117px;"/> </p> <div>همچنین قابلیت <span style='color: rgb(51, 51, 51);Segoe UI Web (West European)", "Segoe UI", -apple-system, "system-ui", Roboto, "Helvetica Neue", sans-serif; text-align: left;'>IntelliSense  </span>را نیز ارائه میدهد:</div> <div> <br/> </div> <div> <p style="margin-left: auto; margin-right: auto;"> <img src="/img/dntips/539f9a67f98815295184.png" style="display: block; margin-left: auto; margin-right: auto; cursor: default; height: 573px;"/> </p> </div> <div> <div>یکسری قابلیت‌های دیگر هم به همراه این extension به VSCode اضافه میشوند؛ به عنوان مثال PowerShell Script Analyzer نیز نصب خواهد شد که برای بررسی کیفیت کدها بسیار مفید است.</div> <div> <br/> </div> <div> <p style="margin-left: auto; margin-right: auto;"> <img src="/img/dntips/432d0a8c81f15e9bd913.png" style="display: block; margin-left: auto; margin-right: auto; cursor: default; height: 306px;"/> </p> </div> <div> <br/> </div> <div>در <a href="https://github.com/PowerShell/PSScriptAnalyzer/tree/master/docs/Rules">اینجا</a> میتوانید لیست کامل این ruleها را مشاهده کنید. از دیگر قابلیت‌های این extension میتوان به موارد زیر اشاره کرد: </div> <div> <ul style='box-sizing: border-box; color: rgb(51, 51, 51);Segoe UI Web (West European)", "Segoe UI", -apple-system, "system-ui", Roboto, "Helvetica Neue", sans-serif;'> <li style="box-sizing: border-box;">Syntax highlighting</li> <li style="box-sizing: border-box;">Code snippets</li> <li style="box-sizing: border-box;">IntelliSense for cmdlets and more</li> <li style="box-sizing: border-box;">Rule-based analysis provided by <a href="http://github.com/PowerShell/PSScriptAnalyzer" style="box-sizing: border-box; text-decoration-line: none; cursor: pointer;">PowerShell Script Analyzer</a> </li> <li style="box-sizing: border-box;">Go to Definition of cmdlets and variables</li> <li style="box-sizing: border-box;">Find References of cmdlets and variables</li> <li style="box-sizing: border-box;">Document and workspace symbol discovery</li> <li style="box-sizing: border-box;">Run selected selection of PowerShell code using F8</li> <li style="box-sizing: border-box;">Launch online help for the symbol under the cursor using Ctrl+F1</li> <li style="box-sizing: border-box;">Local script debugging</li> <li style="box-sizing: border-box;">Extension Terminal support</li> <li style="box-sizing: border-box;">PowerShell ISE color theme  </li> </ul> </div> </div> <div> <br/> </div> <div> <p style="margin-left: auto; margin-right: auto;"> </p> </div> <div> <b>نصب PowerShell بر روی macOS  <br/> </b>
نصب PowerShell به چند طریق قابل انجام است که در اینجا میتوانید مشاهده کنید؛ به عنوان مثال برای نصب PowerShell روی macOS تنها کافی است دستور زیر را وارد کنید:  <br/> </div> <div> <div align="left" dir="ltr" style="direction: ltr;">
<pre language="CSharp" name="code">brew install --cask powershell</pre>
 </div>
سپس دستور pwsh قابل استفاده خواهد بود:  <br/> </div> <div> <div align="left" dir="ltr" style="direction: ltr;">
<pre language="CSharp" name="code">❯ pwsh&#10;PowerShell 7.2.6&#10;Copyright (c) Microsoft Corporation.&#10;&#10;https://aka.ms/powershell&#10;Type 'help' to get help.&#10;&#10;PS /&gt;</pre>
 </div> </div> <div> <br/> </div> <div>در قسمت‌های بعدی، مقدمات کار با PowerShell را توضیح خواهیم داد.</div> </div> </div></div>
