موارد بعدی در PowerShell 7.1 – CloudSavvy IT


PowerShell 7.1 ممکن است در نگاه اول تغییر بزرگی به نظر نرسد ، اما موارد بسیار بیشتری از آنچه انتظار می رود در زیر کاپوت اتفاق می افتد. همچنین تعدادی از ویژگی ها و ابزارهای بسیار مفید وجود دارد که می توانند اسکریپت های شما را بهبود بخشیده و به شما در ایجاد اسکریپت های بهتر نیز کمک کنند. PowerShell 7.1 در تاریخ 11/11/2020 منتشر شد و به سرعت توسط بسیاری از جامعه IT پذیرفته می شود. این مقاله تعدادی از پیشرفت ها و پیشرفت ها را مورد بحث قرار می دهد ، اما به هیچ وجه مجموعه ای جامع از تمام پیشرفت ها نیست.

تغییرات معماری

بزرگترین پیشرفت مربوط به PowerShell 7.1 است که بر روی NET 5 تازه ساخته شده ساخته شده است. این یک نسخه اصلی است که به سمت وحدت ادامه می یابد. NET با هسته های NET و .NET سنتی روبرو شده است. با NET 5 اولین گام ها برای یک هسته واحد تحقق می یابد. PowerShell 7.1 از بسیاری از بهبودهای عملکرد و زبان بهره مند است.

ماژول های کلیدی به روز شده و پیشرفت های بوت

PowerShell 7.1 شامل چندین به روزرسانی در ماژول های اصلی است. نکته قابل توجه ، PSReadLine 2.1.0 اکنون شامل IntelliSense پیش بینی شده است که مکانیزم پیش بینی نحوی شبیه پوسته ماهی است. علاوه بر این ، تنظیمات زیادی در حالت vi و توانایی اضافه شده در تنظیمات وجود دارد MaximumHistoryCount از پروفایل کاربری

برای پیشرفت WinCompat ماژول های در حال بارگذاری ، اکنون ماژول های PowerShell 7 با اولویت بیشتری رفتار می شوند. این مانع از رونویسی تصادفی ماژول های اصلی هنگام استفاده می شود WinCompat حالت برای فعال کردن ماژول های PowerShell 7 بومی در نسخه به روز شده PowerShell.

ویژگی های جدید موتور

البته چند ویژگی اساسی جدید نیز وجود دارد که مفید هستند. سه مورد اصلی عبارتند از:

  • PSNullConditionalOperators
  • PSUnixStat
  • پشتیبانی از TLS 1.3

عملگرهای صفر شرطی در واقع در PowerShell 7 معرفی شدند ، اما به عنوان یک ویژگی آزمایشی. این ویژگی اکنون به صورت پیش فرض است و به صورت پیش فرض در PowerShell 7.1 فعال است. دو اپراتور جدید وجود دارد ?? و ??=.

# This typically replaces an if null statement and will run the output if the value is null.
$Object ?? '$object contains a $null value'

# When the value of the conditional is null then, assign that object to the value on the right of the conditional.
$Object ??= 'This value is assigned on a $null $object'

پس ما داریم PSUnixStat گزینه ، این پرونده بیان می کند که قبلاً از حالت آزمایشی منتقل شده است ، اما گاهی اوقات ممکن است همچنان آزمایشی به نظر برسد. این ویژگی فقط برای سیستم های لینوکس در دسترس خواهد بود. با انجام موارد زیر می توانید از وضعیت آن مطلع شده و عملکرد را روشن کنید.

# Make sure this feature is enabled, will need to restart the PowerShell session
Get-ExperimentalFeature -Name 'PSUnixFileStat' | Enable-ExperimentalFeature

این ویژگی ویژگی جدیدی به شما می دهد UnixMode خاصیتی که اطلاعات یونیکس را نمایش می دهد stat تیم این برای کسانی که عادت به کار با مجوزهای سنتی لینوکس دارند بسیار مفید است.

سرانجام ، پشتیبانی از TLS 1.3 اکنون در دستورات مختلف وب مانند موارد دیگر موجود است Invoke-RestMethod و Invoke-WebRequest. برای کسانی که می خواهند از عملکرد و پیشرفت های امنیتی که در این نسخه جدید TLS موجود است و می توانند با یک نقطه پایانی که قادر به انجام این کار است تعامل داشته باشند ، استفاده کنند ، این یک افزودنی بسیار مفید خواهد بود. اگر سایت از TLS 1.3 پشتیبانی کند ، محتوا بازگردانده می شود و توسط نسخه جدید پروتکل توافق می شود.

Invoke-RestMethod -Uri '<https://mysite.com>' -SslProtocol Tls13

پیشرفت های بیشتر

چندین ویژگی و پیشرفت اضافی وجود دارد که به بهبود قابلیت ها و ساختار اسکریپت شما کمک می کند.

  • در وسط ویندوز ، Start-Process اکنون به طور پیش فرض شامل تمام متغیرهای محیط از جلسه فعلی است. فقط هنگام استفاده UseNewEnvironment پارامتر با متغیرهای فرآیند جدید ایجاد می شود.
  • ForEach-Object -Parallel دستور از فضاهای اجرا استفاده مجدد می کند. این کار باعث بهبود استفاده و عملکرد حافظه می شود. برای کسانی که علاقه مند نیستند حداکثر عایق کاری در فضای کار حاصل نشود ، این پارامتر است UseNewRunspace قبلاً برای ایجاد یک فضای کاری کاملاً جدید برای هر تکرار خط لوله در نظر گرفته شده است.
  • Get-Random این فرمان از قبل شامل می شود Shuffle پارامتر. این یک مجموعه را می گیرد Get-Random یا از طریق InputObject و همان مجموعه را برگردانید ، اما به ترتیب تغییر مکان داد.
  • پارامتر را اضافه کنید AsUTC به Get-Date تیم این نرم افزارهای تبدیل سنتی را ساده می کند ، مانند [DateTime] هدف – شی.
  • کاربرد Stop-Computer cmdlet برای سیستم های لینوکس و macOS. این به باینری متکی است /sbin/shutdown در دسترس. اگر سیستم عامل لینوکس باشد ، این استدلال منتقل می شود now و اگر سیستم عامل macOS باشد ، بحث این است -P now.
  • شبیه به Stop-Computer، Restart-Computer اکنون در سیستم های Linux و macOS اعمال می شود. این از باینری استفاده می کند /sbin/shutdown و بحث را به -r now.

تغییرات نگران کننده

سرانجام ، تعداد انگشت شماری از تغییرات مهم وجود دارد. موارد بیشتری در این لیست وجود دارد ، اما این دو مورد بیشتر از دیگران می توانند روی اسکریپت ها تأثیر بگذارند.

  • تغییر نام FromUnixTime به UnixTimeSeconds بر Get-Date cmdlet برای اجازه دادن به زمان ورودی یونیکس ممکن است روی اسکریپت هایی که از این ویژگی استفاده می کنند تأثیر بگذارد و باید به روز شود.
  • نتیجه برگشت داده را به داخل نپیچید PSObject هنگام تبدیل ScriptBlock به نوع تفویض اختیار. این یک مورد شدید است که یک بلوک اسکریپت پرتاب می شود و شما می خواهید نوع بازگشتی همان شی object اصلی باشد و به PSObject منتقل نشود.

نتیجه

PowerShell 7.1 به نظر نمی رسد که ویژگی های جدید بسیار بزرگی را ارائه کرده باشد ، اما بسیاری از پیشرفت های اضافی و پیشرفت های عمده در زمینه باطن وجود دارد. زبان اکوسیستم و PowerShell با هر تکرار همچنان بهبود می یابد و به سرعت در حال تبدیل شدن به یک زبان محبوب و اصلی برای مدیران سیستم در همه جا است.


منبع: khabar-mehman.ir

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

Comment
Name*
Mail*
Website*