This was brought to my attention by a recent acquaintance: heaths dropped some bits on his blog that will dump the contents of an arbitrary shim database (including the system shim database) into an XML file for parsing and manipulation.
I think this is interesting to a point. While you can get most of the same data in a graphical tool by launching Compatibility Administrator with the super-secret /x command line switch, being able to manipulate it and search it can be very useful.
However, what really caught my attention is that it links to some APIs which I had absolutely no idea were documented: the Sdb* APIs.
This could make things interesting. Standard User Analyzer uses these APIs today to create mitigation databases for UAC issues. I wonder what other people can come up with to automate the mapping of problems to solutions.
I've been talking a lot about shims lately here, but it's been rather lopsidedly technical.
Using shims can be extremely helpful in mitigating application compatibility issues and unblocking deployments of Windows Vista. However, there are a few obstacles to navigate before you can really begin using them.
First, you would like to really understand them so you can feel confident regarding the side-effects - explaining the relevant consequences to business and technical decision makers. Hopefully this was a good start, and I typically include this discussion when I talk about shims at conferences as well.
Once you feel comfortable using them, then the next step is learning how to use them. I've been blogging about shims, worked with the ACT team to update the documentation in the help file for ACT 5.0.2, and speaking about it publicly at various events (most recently TechEd IT Forum in Barcelona).
But, assuming that you convince people that it's a good idea to use shims, and you actually know how to use them, you probably want to make sure that you don't end up in a position where they become something that initially isn't well managed, which could lead to trouble later. So, I put together a whitepaper discussing best practices from the customers I have worked with who have leveraged this technology, and how they have built policy around when to shim and how to manage custom shim databases. If you have any feedback, please comment!
Managing Shims in the Enterprise
We have released a new version of the Application Compatibility Toolkit 5.0. Internally we refer to it as the 5.0.2 release, although the actual version number isn't 5.0.2, it's 5.0.5428.1056. (I still haven't fully grasped all of the inputs that drive the choice of version numbers.) Whatever you decide to call it, it's our third drop, and it includes a number of changes based on popular demand by you. I wanted to dive into some of the things that we addressed in this release.
We're going to start the update prompts from ACM itself on November 14, 2007. If you just can't wait, then you can always download manually from here and install it right now!