Я создал ресурс DSC для копирования каталога модулей из определенного источника. Я тестирую его для более широкого развертывания в своей среде. Ресурс отлично справляется с задачей обеспечения наличия всех файлов и их соответствия исходному контенту, пока все хорошо ...
Проблема вот в чем; Я хочу убедиться, что если в целевом или целевом объекте есть какие-либо дополнительные файлы, они будут удалены из папки.
Вот мой код:
Configuration TestRun
{
Param
(
$ComputerName = 'Localhost'
)
Node $ComputerName
{
File LoadModules
{
Ensure = 'Present'
Type = 'Directory'
Force = $true
Recurse = $true
SourcePath = "C:\git\Modules"
DestinationPath = 'C:\users\Jason\Documents\WindowsPowerShell\Modules'
Checksum = "SHA-256"
MatchSource = $true
}
}
}
Я тестировал, создав файл в каталоге назначения после первого запуска конфигурации с именем Deleteme.flag. Пока мне не удалось его удалить.
Я попытался добавить дополнительное требование к поставщику файлов для удаления каталога перед его запуском:
File RemoveModules
{
Ensure = 'absent'
Type = 'Directory'
Force = $true
Recurse = $true
DestinationPath = 'C:\users\Jason\Documents\WindowsPowerShell\Modules'
}
К сожалению, это не удается из-за следующей ошибки:
Комбинация ключевых свойств «C: \ users \ Jason \ Documents \ WindowsPowerShell \ Modules» дублируется для ключей «DestinationPath» ресурса «File» в узле «Localhost». Убедитесь, что ключевые свойства уникальны для каждого ресурса в узле.
В любом случае, я бы хотел сделать это с файловым ресурсом, но, очевидно, это было бы легко сделать с помощью поставщика сценариев или какого-либо другого настраиваемого ресурса. Заранее спасибо за вашу помощь!
File
, в идеале. - person julealgon   schedule 31.10.2014