PowerShell 7 چندین ویژگی را ارائه می دهد که در PowerShell پیش فرض ویندوز در دسترس نیستند. آیا ارزش ارتقا دارد؟ بیایید در مورد آن صحبت کنیم!
Windows PowerShell بخشی جدایی ناپذیر از سیستم عامل ویندوز است. این یک پوسته خط فرمان و یک زبان برنامه نویسی است که برای خودکارسازی کارهای تکراری وقت گیر، ساخت ابزارهای مدیریت سفارشی، و ساخت، آزمایش و استقرار راه حل هایی برای مشکلات مختلف دیگر استفاده می شود.
نسخه پیشفرض PowerShell که به صورت پیشفرض در سیستم عامل ویندوز عرضه میشود، PowerShell 5.1 یا به سادگی Windows PowerShell است. اما با توجه به اینکه PowerShell 7 در حال حاضر منتشر شده و پایدار است، آیا برای سیستم عامل ویندوز منطقی نیست که از آخرین نسخه PowerShell استفاده کند؟ به هر حال PowerShell 7 چه مزایایی دارد؟ و آیا ارزش ارتقا دارد؟ بیایید در مورد آن صحبت کنیم!
PowerShell 7 چیست؟
PowerShell 7 آخرین نسخه منتشر شده LTS PowerShell است. این نسخه از PowerShell از طریق فریم ورک جدیدتر دات نت Core توسعه یافته است، که چندین به روز رسانی اصلی را که کاربران قدرتمند ویندوز مفید می دانند، امکان پذیر می کند.
PowerShell 7 تحت مجوز MIT ثبت و دارای مجوز است. اکنون این نرم افزار منبع باز است، که در آن افراد می توانند آزادانه کد منبع نرم افزار را مشاهده، اصلاح و توزیع کنند. توسعه دهندگان همچنین می توانند با پیوستن به صفحه رسمی GitHub PowerShell در نسخه های رسمی PowerShell مشارکت کنند.
با پشتیبانی جامعه خود، این نسخه از PowerShell اکنون چند پلتفرمی است! به این معنی که اکنون می توان آن را در ویندوز، macOS و لینوکس نصب و استفاده کرد. در اینجا لیستی از سیستم عامل x64 پشتیبانی شده است:
- ویندوز 8.1، 10، 11
- ویندوز سرور 2012، 2012 R2، 2016 و 2019
- macOS 10.13+
- Red Hat Enterprise Linux (RHEL) / CentOS 7
- فدورا 30+
- دبیان 9
- اوبونتو LTS 16.04+
Alpine Linux 3.8+ PowerShell 7 همچنین در توزیعهای مختلف ARM32 و ARM64 Debian، Ubuntu و ARM64 Alpine Linux پشتیبانی میشود. برای علاقه مندان، بسته های پشتیبانی نشده برای Arch و Kali Linux نیز وجود دارد.
ویژگی های جدید در PowerShell 7 چه هستند؟
پاورشل 7 علاوه بر چند پلتفرم بودن و منبع باز بودن، دارای بسیاری از ویژگی های جدید دیگر است که بهره وری را بیشتر می کند. در اینجا چند مورد از قابل توجه تر آمده است:
1. سازگاری به عقب بهبود یافته است
با تفاوت در فریم ورک، نسخه های Windows PowerShell و PowerShell با استفاده از فریم ورک NET Core ناسازگاری خواهند داشت. برای سهولت در انتقال افراد، PowerShell 7 اکنون ماژول WindowsCompatibility را ادغام می کند. این ماژول به گونه ای طراحی شده است که به ماژول های Windows PowerShell و بسیاری از دستورات محبوب CMD اجازه می دهد تا در PowerShell 7 کار کنند.
2. موازی سازی خط لوله با ForEach-Object
PowerShell 7 اکنون دارای یک پارامتر Parallel است. در Windows PowerShell، هر شیء لوله شده با استفاده از cmdlet ForEach-Object یکی یکی اجرا می شود. اما با پارامتر جدید Parallel، همه آبجکت های لوله شده به طور همزمان اجرا می شوند. این به شدت عملکرد را بهبود می بخشد که می تواند در وقت شما صرفه جویی کند.
3. اپراتورهای سه تایی
شرطی های PowerShell ویندوز از طریق دستورهای if-else انجام می شود. PowerShell 7 با معرفی عملگرهای سه تایی که اساساً نسخه های ساده شده ای از دستورات if-else با استفاده از “?” هستند، این کار را حتی ساده تر می کند. و “:” در نحو. این ویژگی امکان تجربه اسکریپت نویسی سریعتر و تمیزتر را فراهم می کند.
4. اپراتورهای زنجیره ای خط لوله
اپراتورهای Pipeline یکی از ویژگی های مهم Windows PowerShell هستند. این به شما امکان می دهد با گرفتن خروجی یک cmdlet و استفاده از آن در cmdlet دیگر، عبارات پیچیده بسازید. با این حال، این محدود است زیرا Windows PowerShell نمی تواند عبارات شرطی را با استفاده از عملگرهای خط لوله معمولی پردازش کند.
PowerShell 7 این مشکل را با معرفی عملگرهای زنجیره خط لوله که «&&» و «||» هستند برطرف می کند. این اپراتور خط لوله جدید به PowerShell اجازه می دهد تا دستورات را با عبارات شرطی اجرا کند.
عملگر && برای اجرای فرمان خط لوله سمت راست تنها در صورتی استفاده می شود که دستور قبل از اپراتور موفقیت آمیز باشد. در حالی که اپراتور || فقط در صورتی دستور خط لوله سمت راست را اجرا می کند که دستور قبل از اپراتور از کار بیفتد.
چرا PowerShell 7 در ویندوز پیش فرض نیست؟
PowerShell 7 یک نرم افزار چند پلتفرمی منبع باز است که ویژگی هایی را ارائه می دهد که می تواند عملکرد و سرعت اسکریپت را به شدت بهبود بخشد. پس چرا مایکروسافت آن را پاورشل پیش فرض در ویندوز قرار نمی دهد؟
PowerShell فعلی که با سیستم های ویندوز جدیدتر از قبل نصب شده است PowerShell 5.1 است. این آخرین نسخه PowerShell است که از چارچوب دات نت استفاده می کند. اگرچه درست است که نسخههای بعدی آن ویژگیهای بهتری را ارائه میدهند، Windows PowerShell هنوز یک مزیت دارد که PowerShell جدیدتر ندارد، سازگاری کامل با عقب.
اولین PowerShell در 14 نوامبر 2006 منتشر شد. این زمانی بود که ویندوز ویستا و XP هنوز آخرین سیستم عامل ویندوز بودند. طبق تحقیقات enlyft، ایالات متحده به تنهایی دارای بیش از 46000 شرکت است که هنوز از ویندوز XP استفاده می کنند. این شرکتها به سادگی نمیتوانند به جدیدترین PowerShell ارتقاء دهند، زیرا این امر باعث ایجاد مشکلات ناسازگاری عقب مانده حتی با ماژول WindowsCompatibility یکپارچه PowerShell 7 میشود.
برای شرکتهای بزرگ و زیرساختهای حیاتی مختلف (دستگاههای خودپرداز، تامینکنندگان انرژی، راهآهن، بیمارستانها و غیره)، تعویق خدمات برای هفتهها تا ماهها فقط برای بازسازی، آزمایش و استقرار اسکریپهایی که قبلاً با PowerShell 5.1 کار میکردند، گزینهای نیست. به تمام اشکالاتی که ممکن است در ساعات کاری واقعی ظاهر شوند اهمیت ندهید.
از آنجایی که PowerShell 5.1 جدیدترین PowerShell ساخته شده بر روی چارچوب دات نت است، تضمین شده است که با تمام نسخه های قبلی PowerShell حتی نسخه منتشر شده در سال 2006 کار می کند.
آیا باید به PowerShell 7 ارتقا دهید؟
PowerShell 7 بسیاری از بهروزرسانیهای مفید را ارائه میکند که رابط خط فرمان و اسکریپتنویسی را با پشتیبانی چند پلتفرمی آسانتر، سریعتر و راحتتر میکند. در مقابل، Windows PowerShell سازگاری کامل با تمام پاورشل های قدیمی را قبل از PowerShell 6 فراهم می کند. بنابراین، آیا باید به استفاده از Windows PowerShell ادامه دهید یا به PowerShell جدیدتر ارتقا دهید؟
خوبی PowerShell 7 این است که برای همزیستی با Windows PowerShell 5.1 طراحی شده است. علاوه بر ماژول WindowsCompatibility یکپارچه، PowerShell 7 همچنین مسیر نصب جداگانه، نام اجرایی، PSModulePath و گزارش رویدادها را برای اطمینان از عدم تداخل با Windows PowerShell از قبل نصب شده ارائه می دهد.
بنابراین، برای اکثریت بزرگ افرادی که میخواهند ویژگیهای جدید PowerShell 7 را امتحان کنند، مطمئناً میتوانند این کار را در حالی که Windows PowerShell پیشفرض خود را حفظ میکنند، انجام دهند. اگر کنجکاو هستید که آیا پاورشل جدیدتر برای شما مناسب است، پس حتما باید پاورشل جدیدتر را امتحان کنید.
اگرچه PowerShell 7 سازگاری خوبی را ارائه می دهد، اما به دلیل تفاوت آنها در چارچوب، همیشه برخی از اختلافات وجود خواهد داشت. اگر در شرکت یا سازمانی کار می کنید که به شدت به ابزارها و برنامه های سفارشی ساخته شده از Windows PowerShell متکی است، انتقال سیستم شرکت به PowerShell 7 ممکن است ایده خوبی نباشد.
PowerShell 7 بهروزرسانیهای زیادی را ارائه کرد، اما تعداد زیادی ماژول قدیمی و cmdlet را نیز حذف کرد. اگر فردی هستید که قبلاً از PowerShell پیشفرض راضی بودهاید، واقعاً دلیلی برای مهاجرت وجود ندارد، به خصوص اگر زمان لازم برای خواندن اسناد را ندارید.
PowerShell 7 اسکریپت را سریعتر می کند
PowerShell 7 یکی از جدیدترین نسخه های پایدار PowerShell با پشتیبانی طولانی مدت (LTS) است. این یک راه سریعتر و ساده تر برای استفاده از PowerShell، حتی در صورت استفاده از سیستم عامل های دیگر مانند macOS یا Linux، ارائه می دهد. اگرچه ممکن است خواندن اسناد آن کمی طول بکشد، اما در نهایت زمانی که با بهروزرسانیهای جدید مهارت پیدا کردید، در زمان بیشتری صرفهجویی خواهید کرد.