如何使用 DSC 在非伺服器機器上安裝 .NET windows 功能?
觀察以下 DSC 配置:
Configuration Example { Import-DscResource –ModuleName PSDesiredStateConfiguration node localhost { WindowsFeature 'NetFramework45' { Name = 'NET-Framework-45-Core' Ensure = 'Present' } } }
它在 Windows Server 上啟用 .NET 4.5。但 WindowsFeature 資源僅適用於伺服器。現在,我想在非伺服器機器上達到同樣的效果。在 PowerShell DSC 中表達它的正確方法是什麼?
WindowsFeature
DSC 資源基於cmdletInstall-WindowsFeature
,並且僅在伺服器上可用。要在 Windows 客戶端(即非伺服器)上啟用功能,您需要使用WindowsOptionalFeature資源,該資源在 DISM 上執行。
要列舉特定版本的功能列表,您可以
Get-WindowsOptionalFeature -Online
從命令行使用 DISM 或 DISMdism.exe /online /get-features
:.你問了關於
NET-Framework-45-Core
. 例如,這不是 Windows 10 客戶端上可單獨安裝/可移除的功能。要辨識任何特定 Windows Server 功能的 DISM 功能,您可以查看
(Get-WindowsFeature <name>).AdditionalInfo.InstallName
. 例如,DISM 功能NET-Framework-45-Core
是NetFx4
.請注意,雖然 DISM.exe
WindowsOptionalFeature
也可以在 Windows Server 上執行,但不建議這樣做,因為 Server 中的功能之間的關係更加複雜,並且這些關係可以通過 *-WindowsFeature cmdlet 以及伺服器管理器公開的其他元數據來理解和管理和 WMI 提供程序。如上所述直接安裝發現的 DISM 功能不一定會安裝所有需要或推薦的附加組件以使該功能正常工作。