The Windows Server 2003 Resource Kit Tools contains a utility called ADM File Parser, aka admx.msi.
According to Microsoft,
“(AdmX) is a command-line tool that enables an administrator to export Group Policy settings to a tab-delimited text file. The administrator can then use the text produced by ADM File Parser (AdmX) to find changes for the policy settings between different versions of the operating systems.”
“The AdmX.exe tool runs on Windows 2000, Windows Server 2003, and Windows XP Professional. AdmX.exe also requires the Microsoft .NET Framework 1.0.”
My Windows XP SP2 machine already had the .NET framework 2.0 installed, so I figured installation would be no problem. I was wrong.
I installed the Windows Server 2003 Resource Kit Tools to their default location of C:\Program Files\Windows Resource Kits\Tools and then ran C:\Program Files\Windows Resource Kits\Tools\admx.msi to start the ADMx installer and received the following message:
To run this application, you must first install one of the following versions of the .NET Framework:
Contact your application publisher for instructions about obtaining the appropriate version of the .NET Framework.
I was majorly bummed, since my administrative machine was running perfectly and the last thing I wanted was to mess it up by installing some archaic version of the .NET framework that was released back in 2003. I was desperate for a workaround.
The GPOGUY suggested using ORCA to remove the .NET version dependency check for a similar situation, but I didn’t have much luck in the ten minutes I tried to figure out where the dependency was at (btw, if anyone can help here, I’d love to know how to do it).
My next approach was to try to fool admx.msi into thinking .NET 1.0 was installed by modifying the registry. KB 318785, How to determine which versions of the .NET Framework are installed and whether service packs have been applied showed that version 1.0.3705 was the original .NET 1.0 RTM revision.
Next I checked out KB 315291, How to detect the installed version of the .NET Framework in a Visual Studio Setup and Deployment package, which showed the following registry keys were generally checked for determining the .NET version.
I did not have the HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\policy\v1.0 key, so I created it, then created a new string with a value name of 3705 with value data of 3321-3705 per KB 315291.
I was sure this method was going to work, so I started doing my Superior Dance prior to starting the admx.msi installation – only to see it fail once again, reporting it still needed .NET 1.0.
Copying the C:\WINDOWS\Microsoft.NET\Framework\v1.0.3705 directory from a Windows XP SP2 machine that did have .NET 1.0 installed to my administrative machine didn’t make a difference either.
I finally decided I spent long enough trying to fool the installer into thinking I had .NET 1.0 installed, so I finally downloaded and installed it. It’s coexisted with .NET 2.0 just fine so far, I’m happy to report.
Incidently, once admx.msi installed I was able to parse the .adm settings to a tab delimited text file using the following syntax:
Syntax: admX <admfilename> [/Output:<filename>] [/DIFF:<filename>] [/All] [/TIT
<admfilename> Specifies path to .adm tempate file to be parsed.
‘.adm’ extension must be included.
This is a required parameter.
/Output:<filename> Specifies path to text file to write output info
If no output parameter,
text is written to the console.
/DIFF:<filename> Performs a diff between the admfile and the
specified diff .adm filename filename.
‘.adm’ extension must be included.
/ALL Prints all parsed information for the policy to
the console or the output file
/TITLE:<title text> Adds the title text to output file.
Title text must be inside double quotes.
Here’s an example of the syntax I used to parse the system.adm file located at s:\zenworks\policies\media\adm\ and saved the data to media.txt with a title of “media system.adm” (type as all one line)
admx.exe s:\zenworks\policies\media\adm\system.adm /output:media.txt /Title:”media system.adm”