我正在尝试使用 PowerShell DSC 进行多个文件复制。我的配置有一个需要复制的源/目标文件列表。但是,文件资源需要有一个唯一的名称,以便您可以对资源进行依赖。
我是 PowerShell 的新手,我正在尝试找出 DSC 脚本 (.ps1) 的正确格式,以允许围绕文件资源进行 foreach。目前,我的代码给了我一个“重复的资源标识符”错误,因为它看起来像文件资源没有获得唯一的名称。
配置(psd1文件):
{
AllNodes = @(
@{
NodeName = '*'
BuildOutputRoot = 'C:\_BuildDrop\'
FilesToCopy = @(
@{
SourcePath = 'C:\_BuildDrop\SampleConfig.xml'
TargetPath = 'C:\SampleCode\SampleConfig.xml'
},
@{
SourcePath = 'C:\_BuildDrop\SampleConfig2.xml'
TargetPath = 'C:\SampleCode\SampleConfig2.xml'
},
DSC 的 Powershell ps1 文件(片段):
Configuration MachineToolsFilesAndDirectories
{
# Copy files on all machines
Node $AllNodes.NodeName
{
foreach ($FileToCopy in $Node.FilesToCopy)
{
File $FileToCopy$Number
{
Ensure = "Present"
Type = "File"
Recurse = $false
SourcePath = $FileToCopy.SourcePath
DestinationPath = $FileToCopy.TargetPath
}
}