Ruby 为windows\u功能指定厨师提供程序

Ruby 为windows\u功能指定厨师提供程序,ruby,windows-server-2008,chef-infra,Ruby,Windows Server 2008,Chef Infra,我正在尝试使用Chef(Chef solo)来管理我的Windows Server 2008 R2安装。Chef提供了windows\u功能向windows服务器添加角色/功能。默认情况下,windows\u功能使用DISM安装角色。然而,据我所知,并非所有角色(如RDS服务器)都可以通过DISM添加 我可能会使用Chef::Provider::WindowsFeature::ServerManagerCmd(在Windows cookbook自述中标识),但它看起来不像是一个真正的类(浏览那里

我正在尝试使用Chef(Chef solo)来管理我的Windows Server 2008 R2安装。Chef提供了
windows\u功能
向windows服务器添加角色/功能。默认情况下,
windows\u功能
使用DISM安装角色。然而,据我所知,并非所有角色(如RDS服务器)都可以通过DISM添加

我可能会使用
Chef::Provider::WindowsFeature::ServerManagerCmd
(在Windows cookbook自述中标识),但它看起来不像是一个真正的类(浏览那里的源代码)。此外,servermanagercmd已被弃用(尽管它可以工作)

我甚至不介意使用powershell块来添加角色,但我很难确保幂等性。如果命令shell是某种奇怪的mingwin shell,而不是CMD,则似乎
不是

以下是我尝试使用powershell的示例(不起作用):

添加此角色的推荐方法是什么?

您是否尝试过:

windows_feature 'RDS-RD-Server' do
  provider Chef::Provider::WindowsFeature::ServerManagerCmd
end

谢谢你的建议。不幸的是,我在尝试时遇到以下错误:
FATAL:NameError:uninitialized constant Chef::Provider::WindowsFeature::ServerManagerCmd
。您需要在运行列表中包含Windows cookbook,该提供商才能存在。不,他需要将
依赖于“Windows”
添加到他的cookbook的元数据中。rb
windows_feature 'RDS-RD-Server' do
  provider Chef::Provider::WindowsFeature::ServerManagerCmd
end