Parse MOF with PowerShell

I am looking for a way to read a MOF file in a structured way within PowerShell. Specifically I am looking to find all the module references within a given MOF file. I’m assuming there might be something built in since DSC generates and reads/compiles MOFs.

I can’t speak for how well this works, but a quick web search turned up GitHub - KingslandConsulting/Kingsland.MofParser: A C# library for parsing the contents of Managed Object Format (MOF) files

I wrote up a pretty simple module for this as well.

I cheated a little, not really parsing but assuming that the instances are all sorta like a hashtable …

$Content = Get-Content -Path $Path | Out-String 
$Content = $Content -replace '/\*','' 
$Content = $Content -replace '= (NULL|TRUE|FALSE)','= $$$1' 
$Content = $Content -replace 'instance of .+\n','[PSCustomObject][Ordered]@' 
$Content = $Content -replace '\\\\','\' 
 
$Instances = @(Invoke-Expression -Command $Content)