معرفی PowerShell 7
معرفی PowerShell 7
مقدمه
پاورشل (PowerShell) ابزار اسکریپت نویسی قدرتمند سیستم عامل ویندوز مایکروسافت است که توسط آن میتوان بخش های مختلف ویندوز و نیز سرویس های مختلف شبکه های مایکروسافتی را به صورتی حرفه ای مدیریت نمود.
همچنین توسط پاورشل میتوان امور پیچیده ای که در محیط گرافیکی ویندوز ابزاری برای انجام آنها وجود ندارد را توسط دستورات و اسکریپت های قدرتمند انجام داد که برخی از آنها را در پکیج آموزش MCSE 2012 بیان نموده ایم.
علاوه بر آن پاورشل ابزاری ضروری و حیاتی در کار با تمامی نرم افزارهای حرفه ای مایکروسافت از جمله System Centers و Exchange و SharePoint و Skype For Business می باشد. همچنین در سرویس های کلود مایکروسافت و نیز در تکنولوژی RDS و VDI مایکروسافت ضروری می باشد. انجام بسیاری از امور و تنظیمات در نرم افزارهای فوق بدون وجود پاورشل امکان پذیر نمی باشد که مثال هایی از آن امور را را در پکیج آموزش remote App بیان نموده ایم.
PowerShell 1.0 نام اولین نسخه پاورشل بود در November 2006 (آبان 1385) برای Windows XP SP2 و Windows Server 2003 SP1 و Windows Vista ارائه شد. پس از آن همراه با ارائه نسخه های بعدی ویندوز از جمله ویندوز 7 ، 8 ، 8.1 ، و ویندوز 10 به تدریج نسخه های بعدی پاورشل همراه با بهبودها و امکاناتی جدید ارائه شد.
اما در یکی دو سال اخیر کمپانی مایکروسافت یک تغییر بنیادین در طراحی پاورشل ایجاد نمود: مایکروسافت پاورشل را به یک تکنولوژی Cross-platform به جای یک محصول انحصاری برای سیستم عامل ویندوز تبدیل نمود و نسل جدید پاورشل را PowerShell Core نامگذاری کرد. اگر در جریان تغییرات نسخه های مختلف پاورشل نبوده اید باید بدانید که آخرین نسخه نسل قبلی پاورشل که صرفاً مختص سیستم عامل ویندوز بود و به صورت built-in درون ویندوز 10 ارائه شده است PowerShell 5.1 می باشد و با اجرای دستور زیر در محیط ویندوز 10 می توانید آنرا مشاهده نمائید:
توقف پروژه Windows PowerShell و آغاز پروژه PowerShell Core
طی سال های اخیر با فراگیر شدن محیط های مبتنی بر Cloud و شبکه های Hybrid (ترکیبی) که در آن سیستم عامل ها و پلتفرم های مختلفی از جمله ویندوز و Linux و Mac OS به کار گرفته شده اند نیاز به یک ابزار اسکریپت نویسی مشترک که بتوان توسط آن میان این پلتفرم های مختلف ارتباط ایجاد کرد بیش از پیش احساس شد.
در خصوص Windows PowerShell 5.1 و تمام نسخه های قبل از آن، به این دلیل که همگی آنها کاملا مبتنی بر Microsoft .Net Framework طراحی شده بودند، امکان استفاده از آن ها در سیستم عامل های دیگر (ویژگی Cross-Platform) وجود نداشت.
لذا مایکروسافت بعد از ارائه Windows PowerShell 5.1 ، کلاً پروژه تولید محصول Windows PowerShell را متوقف نمود و سیاست خود را برای طراحی نسخه های بعدی پاورشل تغییر داد و شروع به طراحی نسل جدید پاورشل بر اساس تکنولوژی .Net Core (به جای Microsoft .Net framework ) نمود و آنرا PowerShell Core نامگذاری کرد.
PowerShell Core در واقع یک محصول Cross-platform می باشد به این معنی که صرفاً مختص سیستم عامل ویندوز نبوده و در پلتفرم های غیر ویندوزی مانند Linux و Mac OS نیز قابل نصب و استفاده می باشد تا بدین طریق این سیستم عامل های متفاوت بتوانند با یکدیگر ارتباط برقرار نمایند.
پس میتوان گفت که PowerShell Core محصولی Open-Source می باشد که به خصوص برای محیط ها و شبکه های Hybrid (ترکیبی) که سیستم عامل های مختلفی با یکدیگر در ارتباط هستند بسیار کاربردی می باشد.
PowerShell Core 6.0 اولین نسخه این نسل جدید پاورشل بود که در 10 ژانویه 2018 (20 دی 1396) به صورت عمومی عرضه شد و در سیستم عامل های ویندوز، لینوکس و Mac OS قابل نصب و استفاده می باشد.
در خصوص نسل قبلی پاورشل یعنی Windows PowerShell 5.1 اگرچه مایکروسافت دیگر آنرا توسعه نخواهد داد اما اعلام نموده است که همچنان برای آن پچ ها و وصله های امنیتی ارائه خواهد کرد.
نقطه ضعف PowerShell Core
با وجود نقاط مثبت ذکر شده در خصوص نسل جدید پاورشل که PowerShell Core 6.0 نام داشت و همانطور که گفتیم در ژانویه 2018 ارائه شده بود این نکته را باید ذکر کرد که PowerShell Core 6.0 بر پایه dot Net Core 2 طراحی شده بود و لذا نقطه ضعف مهم آن این بود با ماژول هایی که در نسخه های قبلی پاورشل (windows PowerShell) استفاده می شدند سازگاری نداشت !
این عدم انطباق باعث بروز محدودیت هایی در استفاده کاربرانِ سیستم عامل ویندوز از PowerShell Core 6 شد و بسیاری از دستوراتی که در نسخه های قبلی پاورشل وجود داشت و به استفاده از آنها عادت کرده بودند در PowerShell Core 6.0 وجود نداشت !
به گزارش مایکروسافت طی دو سال اخیر (2017 و 2018) میزان استفاده کاربران از PowerShell Core (نسخه های 6.0 و 6.1 و 6.2) افزایش چشمگیری داشته است اما نکته قابل توجه این است که این افزایش استفاده، فقط در سیستم عامل های Linux و Mac OS رخ داده است! اما میزان استفاده کاربران سیستم عامل ویندوز از PowerShell Core افزایش زیادی نداشته است و دلیل آن همانطور که ذکر نمودیم این بود که در PowerShell Core (به خصوص نسخه اولیه 6.0) بخشی از ماژول های Windows PowerShell و دستوراتی که کاربران ویندوزی به استفاده از آنها در نسخه های قبلی پاورشل عادت کرده بودند وجود نداشت.
ارائه 7 PowerShell (جدیدترین نسل پاورشل )
اگر چه مایکروسافت در PowerShell Core 6.1 و 6.2 سعی نمود تا حدی ماژول ها و دستورات قبلی را اضافه نماید و این سازگاری را ایجاد نماید اما پس از ارائه PowerShell Core 6.2 که بر پایه Net Core 2.1 بود، مایکروسافت یک تصمیم بنیادین اتخاذ کرد و برای رفع کامل این مشکلات، به طراحی جدیدترین نسل پاورشل بر پایه NET Core 3.0 روی آورد و در اوایل آوریل 2019 (فروردین 1398 ) تیم طراحی پاورشل مایکروسافت اعلام نمود که این نسل جدید پاورشل ، PowerShell 7 نام دارد.
ذکر این نکته الزامیست که در PowerShell Core 6 تمرکز مایکروسافت بر ایجاد سازگاری و هماهنگی میان پلتفرم های مختلف (cross-platform compatibility) بوده است، اما در PowerShell 7 تمرکز مایکروسافت بر ایجاد هماهنگی و سازگاری بیشتر با ماژول های نسخه های قبلی Windows PowerShell است تا بدین ترتیب با پشتیبانی از ماژول ها و دستورات قبلیِ Windows PowerShell ، کاربران سیستم عامل ویندوز نیز بیشتر به استفاده از نسل جدید پاورشل ترغیب شوند.
به گفته مایکروسافت در حال حاضر سازگاری PowerShell 7 با ماژول های قبلی Windows PowerShell به 90 درصد رسیده است.
این نکته مثبت باعث میشود که تمامی ادمین ها به استفاده از PowerShell 7 روی آورند و برای استفاده از دستورات مربوط به ماژول های قبلی پاورشل نیاز به استفاده از ورژن های قبلی مانند windows PowerShell 5.1 نداشته باشند. همچنین API هایی که توسط Windows PowerShell modules استفاده می شدند به NET Core 3.0 runtime افزوده شده اند که این نیز سازگاری بیشتری را باعث می شود. به عنوان یک مثال امکان استفاده از دستوراتی مانند Out-GridView در PowerShell 7 مجدداً فراهم شده است.
اولین نسخه پاورشل 7 (PowerShell 7 First Preview Release)
PowerShell 7 Preview.1 اولین نسخه از جدیدتریت نسل پاورشل می باشد که در 30 می 2019 (9 خرداد 1398) ارائه شد که می توانید ویژگی های کامل آنرا در این لینک سایت GitHub مشاهده و نیز آنرا دانلود نمائید.
توجه نمائید که PowerShell 7 فعلی نسخه preview هست و به تدریج امکانات زیادی به آن اضافه خواهد شد. طبق گفته مایکروسافت PowerShell 7 به صورت ماهیانه به روز رسانی خواهد شد و لذا قبل از ارائه عمومی نسخه نهایی، شاهد انتشار تعدادی preview release خواهیم بود.
طبق اعلام مایکروسافت پس از ارائه نسخه نهایی .Net Core 3.0 ( که حدود سپتامبر 2019 خواهد بود )، حدود یک ماه بعد نسخه نهایی PowerShell 7 به صورت عمومی ارائه خواهد شد .
همچنین مایکروسافت وعده داده است که در آینده نزدیک و در یکی از آپدیت های آینده ویندوز 10 ، PowerShell 7 را در کنار windows PowerShell 5.1 به صورت built-in درون ویندوز قرار خواهد داد تا کاربران نیاز به دانلود مجزا و نصب مجزای PowerShell 7 در ویندوز 10 آن نداشته باشند.
در حال حاضر جدیدترین نسخه ارائه شده PowerShell 7 Preview.3 می باشد که ویژگی های کامل آنرا در این لینک سایت GitHub مشاهده و نیز آنرا دانلود نمائید.
PowerShell 7 را همانند PowerShell core 6.0 می توانید در کنار PowerShell 5.1. که به صورت built-in در سیستم عامل ویندوز 10 وجود دارد، نصب و استفاده نمائید. توجه به این نکته ضروریست که برای بهره گیری از سازگاری ماژول ها در PowerShell 7 می بایست جدیدترین Build ویندوز 10 و یا ویندوز سرو 2019 را نصب نموده باشید.
ویژگی های جدید دیگر در PowerShell 7
PowerShell 7 علاوه بر عملکرد و performance بالاتر، مزایای زیر را نیز به همراه دارد :
1- اضافه شدن API های جدید و سازگاری بیشتر با ماژول های قبلی
تعدادی API جدید از جملهWPF (Windows Presentation Foundation) و (WinForms (Windows only اضافه شده اند.
2- بهبودهای امنیتی (Secure Credentials Management)
هدف استفاده از پاورشل ممکن است اتوماتیک کردن انجام برخی از امور در محیط شبکه داخلی و یا در محیط های کلود و یا Hybrid باشد. در همه این سناریوها شما نیاز دارید که یوزر پسودهای متفاوتی برای دسترسی به منابع مختلف تعریف نمائید اما بهترین توصیه همواره این است پسورد خود را داخل اسکریپت های پاورشل درج نکنید. در PowerShell 7 در خصوص دسترسی به منابع لوکال و نیز منابع ریموت، مکانیسم جدیدی ارائه خواهد شد تا نیاز به درج پسوردها درون اسکریپت های پاورشل نداشته باشیم.
3- بهبود در ثبت و جمع آوری لاگ ها (Logging Off the Box)
بسیاری از مواقع از جمله جهت مانیتورینگ و عیب یابی نیاز داریم که با استفاده از دستورات پاورشل، event ها و Log های یک سیستم را به سرور مقصد ارسال کنیم. تنظیمات مربوط به فرایند ارسال Log ها در پلتفرم ها و سیستم عامل های مختلف متفاوت می باشد. در PowerShell 7 این امکان مهیا خواهد شد تا پاورشل را به گونه ای کانفیگ نمائیم که به صورت اتوماتیک فارغ از نوع سیستم عامل و پلتفرم، توسط مکانیسمی یکسان و استاندارد Log ها را به سرور مقصد ارسال نماید.
4- توجه ویژه به فیچیرها و امکانات درخواستی
در تولید PowerShell 7 مایکروسافت به پیشنهادات افراد و ویژگی های درخواستی آنها توجه ویژه ای دارد. طبق اعلام مایکروسافت تعداد فیچرهای درخواستی دریافت شده زیاد است که در زیر به برخی از مهمترین آنها که مایکروسافت بر روی آنها کار خواهد نمود اشاره شده است:
Improve the default formatting of errors
Ubiquitous -OnError {ScriptBlock} parameter
Control operators for chaining commands
Ternary conditionals
Null conditional assignment
Parallel For-Each-Object
مزایا و امکانات PowerShell 7 به موارد فوق محدود نمی شوند. برای مشاهده لیست تمام امکانات و بهبودهایی که در PowerShell 7 ارائه شده است و جزیات آنها، به لینک های سایت Github در پاراگراف قبل مراجعه نمایید.
نصب PowerShell 7
همانطور که اشاره شد در حال حاضر PowerShell 7 نسخه Preview می باشد و برای نصب آن می توانید به دو روش زیر اقدام نمائید :
روش اول دانلود سورس PowerShell 7 Preview از سایت GitHub و نصب آن فایل می باشد.
روش دوم که ساده تر می باشد نصب آن از طریق اجرای یک خط دستور پاورشل می باشد که این روش اصطلاحاً one-liner نام دارد :
iex “& { $(irm https://aka.ms/install-PowerShell.ps1) } -UseMSI -Preview”
توسط دستور فوق همواره جدیدتریننسخه PowerShell 7 Preview ( که در حال حاضر PowerShell Preview 7.3 می باشد ) به طور اتواتیک دانلود و نصب خواهد شد.
توجه : توسط همان دستور فوق و بدون پارامتر -preview میتوانید ورژن قبلی پاورشل که PowerShell core 6 بود را نصب نمائید که دستور مربوطه به شکل زیر است :
iex “& { $(irm https://aka.ms/install-powershell.ps1) } -UseMSI”
در واقع افزودن پارامتر preview- در انتهای دستور فوق باعث نصب جدیدترین نسخه PowerShell 7 Preview به جای PowerShell Core 6 می شود.
پس از نصب PowerShell 7 preview می بایست PowerShell Get and the Package Management module را نیز آپدیت نمائید.
آینده تکنولوژی دات نت
همانطور که در این مقاله اشاره شد جدیدترین نسخه فعلی .Net Core 3.0 می باشد اما طبق اعلام مایکروسافت در این لینک در آینده نزدیک نسل جدیدی به نام .Net 5 جایگزین تمام نسل ها و نسخه های Dot Net خواهد شد.
علت حذف لغت Core پرهیز از پیچیدگی است و نیز علت عدم ارائه نسخه 4 این است که با Microsoft .Net framework 4 اشتباه نشود.
Microsoft .Net framework نیز به کل منسوخ خواهد شد.
.Net 5 در واقع یک unified Platform خواهد بود که تکنولوژی .Net core و .net framework و Mono و Xamarin در آن ادغام شده اند و تنها تکنولوژی خواهد بود که در سال های آینده تمامی کمپانی ها بر توسعه آن سرمایه گذاری خواهند نمود.
لینک های مرتبط :
https://www.petri.com/what-you-need-to-know-about-PowerShell -7
پسورد فایل : adminportal.ir گزارش خرابی لینک
دیدگاهتان را بنویسید
برای نوشتن دیدگاه باید وارد بشوید.