Using the File provider in DSC – Ensure Destination only contains files from Source

Question:

I’ve created a DSC resource to copy a Modules directory from a certain source. I’m testing it for a broader deployment in my environment. The resource does a great job ensuring all the files are there and that they match the source content, so far so good…

The problem is this; I want to ensure that if there are any additional files in the target, or destination, a folder that they get removed.

Here’s my code:

I’ve been testing by creating a file in the destination directory after running the config the first time called Deleteme.flag. So far I haven’t had any luck getting it actually to be deleted.

I tried adding an additional File provider requirement to remove the directory before it runs:

Unfortunately, this fails with the following error:

The key properties combination
‘C:\users\Jason\Documents\WindowsPowerShell\Modules’ is duplicated for
keys ‘DestinationPath’ of resource ‘File’ in node ‘Localhost’. Please
make sure key properties are unique for each resource in a node.

Anyway, I’d like to do it with the file resource, but obviously, it would be easy to do it with the script provider or some other custom resource. Thanks in advance for all your help!

Answer:

I am new to DSC. Spent the best part of Sunday afternoon looking at the resources and trying to figure out how to solve this. So, I sincerely thank you for that. It was fun looking up on DSC.

I think, this could work:

References:

Source:

Using the File provider in DSC – Ensure Destination only contains files from Source by licensed under CC BY-SA | With most appropriate answer!

Leave a Reply