观察以下 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 功能不一定会安装所有需要或推荐的附加组件以使该功能正常工作。