DSC文件资源文件未复制PDB文件

时间:2015-11-10 20:21:48

标签: powershell dsc

我正在使用DSC文件资源使用最新版本更新应用程序服务器。除了.PDB文件之外,这很有用。这些从未得到更新。我只用一个文件重现了这种行为。这是一个示例配置

Configuration FileTestConfiguration {
    param($HostName)

    Node $HostName {
        File AppDirectory {
        SourcePath = "c:\temp\dsc\source"
        DestinationPath = "c:\temp\dsc\target"
        Type = 'Directory'
        Checksum ='SHA-256'
        Recurse = $true
        MatchSource = $true
    }
    File PdbFile {
        SourcePath = "c:\temp\dsc\pdbSource\MyNetHelpers.pdb"
        DestinationPath = "c:\temp\dsc\pdbTarget\MyNetHelpers.pdb"
        Checksum ='SHA-256'
        Recurse = $true
        MatchSource = $true
    }
}

}

运行上面的配置后,目录target将反映目录源,但.pdb文件除外。与PdbFile块中的单个文件相同的行为

我已经通过重命名文件运行了许多测试,但这没有任何影响。它似乎与.PDB格式有关。

有没有人见过这种行为,知道是什么原因造成的,或者知道上面的配置是不正确的?

1 个答案:

答案 0 :(得分:0)

我只是偶然发现了这个问题。对我来说,完美的解决方法是:Archive

这很好,至少对我而言

样品:

Archive ArchiveSourcezip
{
    Ensure = 'Present'
    Path = '\\Source\Directory\source.zip'
    Destination = 'C:\ExtractionPath'
}

Log LogExample
{
    Message = 'Archive source.zip was transferred.'
}

修改 另一种选择:使用 modifiedDate als Checksum 测试!这似乎是最可靠的。

File ScriptsPowerShellPath {
    Ensure = 'Present'
    Type = 'Directory'
    Recurse = $true
    SourcePath = '\\Server\share'
    DestinationPath = $env:SystemDrive+'\directrory\target'
    Force = $true
    Checksum = 'modifiedDate'
    MatchSource = $true
    DependsOn = '[File]ScriptsPath'
}

您可能还想使用Log-Resource:

Log LogFileScriptsPowerShellPath {
    Message = 'Created and filled ScriptsPowerShellPath'
    DependsOn = '[File]ScriptsPowerShellPath'
}

这可能有用。