I've been looking at what MSHB3 does to the registry on installation. The installation program creates a new key HKLM\Software\Microsoft\MSH\1\ with two subkeys: MshEngine, and ShellIds, illustrated below (click on the pic for one full size):
The \MshEngine subkey has 5 Reg_Sz value entries:
* ApplicationBase - where you load Monad
* ConsoleHostAssemblyName - S.M.A.ConsoleHost Assembly
* ConsoleHostMOduleName - S.M.A.CnsoleHost DLL file
* MshVersion - "1.0!
* RuntimeVersion - the version of .NET needed, V2.0.50727
The \ShellIds key has a subkey per Shell. By default, there's just one shell and the subkey is Microsoft.Management.Automation.MSH, which has two Reg_Sz value entries:
* ExectionPolicy => how to run scripts
* Path - the path to Msh.
If you create new shells using the Make-Shell make kit, you end with additional subkeys under ShellIds. Additional registry entries are used to support MSH snap-ins, which I plan to cover in later blog posts.