我正在使用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格式有关。
有没有人见过这种行为,知道是什么原因造成的,或者知道上面的配置是不正确的?
答案 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'
}
这可能有用。