How can I do a "content compare" of two (or more) MSI files and see what is actually different inside the files - instead of doing a useless binary compare? (which obviously only tells me if I am dealing with copies of the same file or not).
Stein Åsmul's questions
The size of the MSI cache folder (C:\Windows\Installer
) has grown substantially, and is now taking up way too much disk space on my (domain) computers. Can this folder be eliminated or shrunk?
Same question goes for:
C:\WINDOWS\WinSxS
(%SystemRoot%\WinSxS
)C:\System32\DriverStore
(%SystemRoot%\System32\DriverStore
)
The Windows Installer Service keeps triggering a repair operation (self-repair) of a package installed on my desktop. I am unable to find the cause and resolve the problem permanently.
How do I find out what is triggering the repair? Is there a list of likely causes somewhere?
When installing and uninstalling Windows Installer packages, or MSI files as they are called, the progress of the installation appears signifiantly slower than with other installation packages.
Why is this the case, and what can I do to speed things up?
SMS 2003 contained a great feature for automation via the excellent dll: Microsoft.SystemsManagementServer.Automation.dll. It allowed automating SMS using intuitive objects, properties and methods such as:
SMSProvider.Packages.Create("NewPackage");
In SCCM 2007, it seems this great dll has been deprecated in favor of more WMI style "dog's breakfast" code:
var conn = new WMIConnection(@"\\Server\root\sms\site_a", usr, pass);
var queryResults = conn.ExecuteQuery("SELECT * FROM SMS_Package WHERE
Name='" + packageName + "'");
foreach (ManagementObject obj in queryResults)
{
packageID = (string)obj.GetPropertyValue("PackageID");
}
I am tempted to write my own skeleton classes around these wmi calls. All that seems needed for basic automation would seem to be: SccmServer, SccmPackage, SccmProgram and SccmTaskSequence.
The question is: does anyone have wrapper, skeleton classes like this available, or know of any open source projects that I can use or adapt? I hate reinventing the wheel for mundane stuff like this.