How to remove all PowerShell DSC configuration documents (MOF files)?


Recently I got question from one developer that uses DSC about DSC configuration documents (MOF files) that are used for current configuration and he did not believe me that MOF file for current configuration is just a file in C:\Windows\System32\Configuration directory.

I would like to present you a simple piece of code that shows you MOF files and process how to remove them. It is possible to remove them using cmdlet Remove-DscConfigurationDocument or you can simply delete them. Remove-DscConfigurationDocument cmdlet could be for example useful in Pester test file to clean all system changes that was done in order to test custom DSC resource.

You can see Current.mof and Previous.mof. I do not have any pending configuration but if I have it then you will see Pending.mof file.

Current.mof

Get-ChildItem -Path 'C:\Windows\System32\Configuration' -File -Force

    Directory: C:\Windows\System32\Configuration


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----       2015-06-01     04:49           2182 Current.mof
-a----       2015-06-01     04:49            558 DSCEngineCache.mof
-a----       2015-06-01     04:51           1006 DSCResourceStateCache.mof
-a----       2015-06-01     04:49           3640 DSCStatusHistory.mof
-a----       2015-06-01     04:24           1332 MetaConfig.mof
-a----       2015-06-01     04:49           2180 Previous.mof

Remove all

Remove-DscConfigurationDocument -Stage Current, Pending, Previous -Verbose

VERBOSE: An LCM method call arrived from computer DSCTESTCOMP with user sid
S-.....................
VERBOSE: [DSCTESTCOMP]: LCM:  [ Start  Remove   ]
VERBOSE: [DSCTESTCOMP]:                            [] Configuration document Current was removed
VERBOSE: [DSCTESTCOMP]:                            [] The Local Configuration Manager did not find configuration
checksum file to remove.
VERBOSE: [DSCTESTCOMP]:                            [] The Local Configuration Manager did not find any pending
configuration to remove.
VERBOSE: [DSCTESTCOMP]:                            [] Configuration document Previous was removed
VERBOSE: [DSCTESTCOMP]: LCM:  [ End    Remove   ]
VERBOSE: [DSCTESTCOMP]: LCM:  [ End    Remove   ]    in  0.0000 seconds.

And check again

Get-ChildItem -Path 'C:\Windows\System32\Configuration' -File -Force

    Directory: C:\Windows\System32\Configuration


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----       2015-06-01     04:52            558 DSCEngineCache.mof
-a----       2015-06-01     04:51           1006 DSCResourceStateCache.mof
-a----       2015-06-01     04:52           4004 DSCStatusHistory.mof
-a----       2015-06-01     04:24           1332 MetaConfig.mof

Leave a Reply

Your email address will not be published. Required fields are marked *

Active Directory Advanced function AlwaysOn Availability Groups AlwaysOn Failover Cluster Instances Building Cloud Cloud Cluster Cmdlet Database Deployment Design DFS Domain Controller DSC Fabric Failover Clustering File Server Group Policy Hardware Profile Host Hyper-V Installation Library Library Asset Library Server Network Operations Manager Orchestrator PowerShell PowerShell User Group PowerShell Workflow Security Service Manager SQL Server Storage System Center Template Time Time Synchronization Tips Virtual Machine Virtual Machine Manager VM Network VM Template Windows Server 2012 R2