我目前已设置节点以从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将导致不同的错误。
答案 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请求