如何使用 DSC 在非服务器机器上安装 .NET Windows 功能?

如何使用 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 中表达它的正确方法是什么?

答案1

DSCWindowsFeature资源基于Install-WindowsFeaturecmdlet,并且仅在服务器上可用。

要在 Windows 客户端(即非服务器)上启用功能,您需要使用Windows 可选功能资源,通过 DISM 工作。

要枚举特定版本的功能列表,您可以Get-WindowsOptionalFeature -Online从命令行使用或 DISM dism.exe /online /get-features:。

您询问过NET-Framework-45-Core。例如,这不是 Windows 10 客户端上可单独安装/删除的功能。

要识别任何特定 Windows Server 功能的 DISM 功能,您可以查看 的结果(Get-WindowsFeature <name>).AdditionalInfo.InstallName。例如, 的 DISM 功能NET-Framework-45-CoreNetFx4

请注意,虽然 DISM.exe 也可以WindowsOptionalFeature在 Windows Server 上运行,但不建议这样做,因为 Server 中功能之间的关系更复杂,并且这些关系由通过 *-WindowsFeature cmdlet 公开的附加元数据以及服务器管理器和 WMI 提供程序来理解和管理。直接安装如上所述发现的 DISM 功能不一定会安装使该功能正常运行所需的或推荐的附加组件。

相关内容