使用配置名称为

时间:2016-05-05 20:01:01

标签: powershell powershell-v5.0 dsc

我目前已设置节点以从http pull服务器(实验室环境)提取其配置。这些节点的LCM使用配置名称来查找其mofs。如果我手动将mof修改为与配置名称相同的名称并更改mof数据以应用于所有计算机,则它们可以正常工作。我找不到的是从cmdlet生成这样的mofs的简单方法。

生成的mof:servername.mof

@TargetNode='servername'...

修改后的mof:configurationname.mof

@TargetNode='*'...

如果我尝试在未指定节点名称的情况下生成mof并在配置脚本中使用Node * {...},则会收到以下错误:

  

out-file:无法执行操作,因为通配符路径。\ configurationname / * .mof未解析为文件。

如果我创建该目录并在其中放入一个mof,则cmdlet将覆盖它并将@TargetNode更改为通配符。目录中的多个mofs将导致不同的错误。

2 个答案:

答案 0 :(得分:1)

Credit to Alfano Greg on Powershell.org:  在我编写的部分配置中,我使用配置的名称(在您的情况下" Partial2")作为节点的名称。 node的值将确定.mof文件的名称。

Configuration Partial2 {

    Node ('Partial2') {

        File Test {

            Ensure          = "Present"
            DestinationPath = "C:\some\path"
            Type            = "Directory"
        }
    }
}
爱德华:财政部将拥有' Partial2'作为注释标题中的TargetNode,但LCM似乎在编译pending.mof时覆盖或忽略此值,因此它不是问题。

参考文献:
  - PowerShell Magazine (2014) - Partial Configurations in Windows Mangement Framework (WMF) 5.0
  - Official Partial Configuration documentiation

答案 1 :(得分:0)

如果您的配置包含多个节点,并且您希望将生成的mofs用作部分配置,则只有使其工作的方法是重命名mof中的配置名称并更改文件名以匹配它。但是,您可以划分配置,使每个配置有1个节点。这样,您可以对所有这些配置使用相同的configurationData。您还可以针对此问题@ https://windowsserver.uservoice.com/forums/301869-powershell

提交uservoice请求