Monday 8 September 2008

Component Based Servicing (CBS) - A voyage of discovery

With the first steps of any great journey there is a sense of nervous excitement, possibly some trepidation and for some, pure cold-sweat fear. Where will this journey take me? What will happen along the way? And, for me the question always arises, "Will I be different when I get there?"

And the journey I am now referring to is the quest to really, properly, fully and completely understand how Microsoft updates, manages installs, and makes changes to Vista and Windows 2008 desktop and server platforms. I understand from reliable sources that the starting point for this epic quest is Microsoft's "Component Based Servicing" or CBS which is turn part of the setup architecture.

Here is a handy (but possibly too simplistic) diagram/view of the Setup Infrastructure for Windows Server 2008 and Vista.

As a personal note, you can tell about a lot about me and my friends because we started at the bottom of the diagram... Instead a nice high-level starting point, we go for the deep dive straight away.

Now let's try to find out about each component...

From the Microsoft reference website, there are some good high-level descriptions for each "block" in the diagram above including;

  • Optional Component Setup: "Optional Component Setup (OCSetup.exe) is a command-line tool that installs and uninstalls Windows optional components. This tool replaces Sysocmgr.exe. You can use OCSetup.exe to install, update, and remove Windows Installer (MSI) components and Component-Based Servicing (CBS) components."Further information is found here:
  • Package Manager: "The Package Manager is a tool that installs or removes packages or Windows components. It is called by Windows Setup during normal installation, including unattended installation, and runs transparently while updating or installing Windows. Further information can be found here:
  • Language Pack Installation: Language Packs help with the display of dialog boxes, wizards, menus and help documentation in different languages.
  • Component Based Servicing: This is a critical component to installing, updating and removing applications on the Vista and Windows Server 2008 Platforms. The Microsoft Component-Based Servicing (CBS) is part of the servicing stack which is defined by Microsoft as "a set of files and resources that are required to service a Windows image or operating system"

OK, so what is the big deal? Sounds simple enough.

Well, I just can't get enough information on Microsoft's Component Based Servicing for the following reasons;

  1. There aren't any publicly available API's (maybe there is - can you help?
  2. No clear cut definition of what a "component" is
  3. No documentation on how "I" (meaning anyone) might create a component
  4. No clear description on what happens when you update, remove or install a component

As Won Yoo said in his IIS blog ( , "when it comes to servicing, a component is the smallest unit of measure and this creates an interesting patching behaviour. A component may contain several files. So, even if a fix for a particular bug is localized to one file, if the file belongs to a component that consists of other files, the patch will contain all files in the component."

Yes, quite.

I read an MSDN article that indicated that CBS was the most important management advance in Vista and that CBS was really, very important. OK, I have downloaded the Windows Automated Installation Kit (WAIK. Found here: and did not find any further documentation on CBS.

For a laugh, have a laugh and have a read of the Microsoft CBS "documentation" found here:

To really drive the point, here is a screen-grab of the page.

For the definition of sparse, look here; To experience it in real life, to live it, is to search for CBS.

No comments: