PowerShell 7 即將帶來的5 大亮點
上個月PowerShell 7發布了第5個預覽版,離最終正式版本又更進了一步。本文介紹一下PowerShell 7將帶來的5大變化,主要是一些大方向上的特性。16年開源之前(PowerShell 5.1),PowerShell僅支持Windows,並且基於.NET框架,開源之後(PowerShell Core 6)基礎框架修改為.NET Core,.NET Core支持所有操作系統,使得PowerShell支持Linux與macOS。
.NET Core 3.0
PowerShell 7 的一項重大工作是將PowerShell Core 6 代碼庫移植到.NET Core 3.0,所以PowerShell 的發佈時間取決於使用.NET Core 3.0 完成PowerShell 的集成和驗證。
微軟表示為了讓PowerShell 7 與.NET Core 時間軸保持一致,因此GA 版本將在.NET Core 3.0 發布GA 之後再推出。
另外,值得一提的是,PowerShell上一個大版本是PowerShell Core 6.2,新版本不是PowerShell Core 6.3而變成PowerShell 7是因為在過去兩年裡,PowerShell Core的使用率顯著增加,其中大部分增長來自Linux平台,這對於將PowerShell打造成跨平台工具是一個可喜的數據,但是Windows版本的使用量並沒有顯著增長,微軟表示這可能與Windows平台上版本(PowerShell 5.1)的功能缺失有關,由於不支持的模塊、程序集和API,現有的PowerShell用戶無法利用PowerShell Core的新功能、性能增強和bug修復。為了解決這個問題,微軟決定在PowerShell 7中完全替換Windows PowerShell 5.1。
Windows 兼容性
PowerShell 7 的主要目標之一是縮小PowerShell 與PowerShell Core 之間可用cmdlet 數量的差距,目標是提高與模塊的兼容性,以在這些版本之間實現奇偶校驗,以便管理員可以無縫地完全遷移到PowerShell Core。
長期支持(LTS)
微軟將為PowerShell 採用新的生命週期,發布LTS 和非LTS 版本的PowerShell 7,使其與.NET Core 支持的生命週期緊密保持一致。每月將提供預覽版本,以便儘早獲得反饋。與當前發行版相比,LTS 發行版將在最初發行後的三年內得到支持,而當前發行版僅在隨後的當前發行版或LTS 發行後的三個月內得到支持。
安全憑證管理
腳本編寫通常可以通過自動化任務來簡化IT 管理員的工作,但是隨著對本地、雲和混合資源的依賴越來越大,這可能導致需要多個憑據的資源無法正常運行。PowerShell 擁有用於在一定程度上保護憑據的方法,以在某種程度上避免在腳本中嵌入純文本形式的憑證。
更進一步,微軟正在努力創建憑據存儲,該存儲將充當安全存儲庫,存儲本地或遠程維護管理員憑據,用戶不必以不安全的方式輸入憑據。
集中記錄
PowerShell 的日誌記錄功能僅限於本地計算機,執行腳本和cmdlet 生成的日誌都會保留在運行cmdlet 的本地設備上。這樣可以對日誌進行排序,以獲取有關問題的反饋,但卻非常耗時,需要用戶分別查看所有設備。PowerShell 7.0 通過策略將日誌收集標準化,該策略會將所有日誌定向到目標系統(或syslog 類型的服務器),以進行OS 無關的集中式管理。
本文參考了“ 5 changes coming to PowerShell 7.0 ”,關於PowerShell更多相關內容可以查看: