特定のソースから Modules ディレクトリをコピーする 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' は、ノード 'Localhost' のリソース 'File' のキー 'DestinationPath' に対して複製されます。キー プロパティがノード内のリソースごとに一意であることを確認してください。
とにかく、ファイル リソースを使用して実行したいのですが、明らかに、スクリプト プロバイダーまたはその他のカスタム リソースを使用すると簡単に実行できます。ご協力いただきありがとうございます。