PowerShell DSC を使用して複数のファイル コピーを実行しようとしています。私の構成には、コピーする必要があるソース/ターゲット ファイルのリストがあります。ただし、リソースへの依存関係を作成できるように、File リソースには一意の名前が必要です。
私は PowerShell を初めて使用し、ファイル リソースの foreach を許可する DSC スクリプト (.ps1) の適切な形式を見つけようとしています。現在、ファイル リソースが一意の名前を取得していないように見えるため、私のコードでは "Duplicate Resource Identifier" エラーが表示されます。
構成 (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
}
}