Windows Server 2012 R2引入了新版本的PowerShell。PowerShell 4.0版本讓人感覺終於成熟了,事實證明該版本攜帶了很多有助於管理員的新功能,包括更改預設執行政策和一些新的參數。
期望狀態配置
PowerShell 4.0最大的變化是引入了新的Windows PowerShell期望狀態配置,該機制通過集中管理執行類似功能的電腦,來控制電腦的配置方式。
期望狀態配置功能是完全基於PowerShell的——沒有GUI介面。要使用該功能,管理員必須專門針對計算角色或功能建立一個PowerShell指令碼。該指令碼定義了節點應該應用哪些配置,節點上需要安裝的角色和其他配置資料。
指令碼運行時建立微軟操作架構(MOF)檔案。這時,MOF檔案可以配置指定的節點。MOF檔案是一個用來轉移Windows管理規範設定或電腦之間WMI對象的機制。
預設執行政策的改變
微軟做出的第一個比較大的變化就是改變預設執行政策。以前所有PowerShell版本預設禁用執行政策。過去,PowerShell指令碼不能運行,除非管理員選擇運行不同的執行政策。
PowerShell 4.0的預設執行政策在Windows Server 2012 R2中是遠程登入的。但Windows 8.1仍是禁用的。這意味著Windows伺服器管理員不必改變執行政策,只要指令碼是署名的,就能運行PowerShell指令碼。Windows 8.1將繼續禁用執行策略,以減少使用者受PowerShell指令碼攻擊的機會。
PowerShell 4.0參數
微軟還添加了許多新的PowerShell 4.0參數,包括RepeatIndefinitely。另外微軟還建立了RunNow參數,與Register-ScheduledJob和Set-ScheduledJob cmdlets關聯。該參數簡化了預定任務的立即執行過程。
另一個新參數PipelineVariable,對構建PowerShell指令碼的管理員尤其有用。PipelineVariable參數建立在建築的概念之上,將一系列管道命令結果放到一個變數。PipelineVariable作為常見的PowerShell參數。這個變數的內容之後可以在指令碼中引用。
另一個有用的新參數Passthru用於建立PowerShell指令碼,它允許PowerShell顯示任何通過命令已修改的對象。Passthru參數在Enable-JobTrigger和Disable-JobTrigger cmdlets中使用。
PowerShell 4.0最初只相容Windows Server 2012 R2和Windows 8.1,但有傳言稱4.0版本最終會相容一些早期的Windows版本。
你可以下載PowerShell 4.0預覽版作為Windows管理架構預覽的一部分;但是要注意,Windows管理架構安裝時與Exchange伺服器、SharePoint伺服器、Windows小企業伺服器和一些系統中心產品有嚴重的相容性問題。微軟可能會在未來發布補丁來解決這些不相容性。