// part of a sql server CLR function, and example of hosting MSH in sql server 2005
[Microsoft.SqlServer.Server.SqlFunction]
public static SqlString sqlmsh(string input)
{
string output;
Runspace runspace = RunspaceFactory.CreateRunspace();
runspace.Open();
Pipeline pipeline = runspace.CreatePipeline(input);
MshObject myobj = pipeline.Invoke()[0];
if (myobj.BaseObject is XmlDocument)
{
output = (myobj.BaseObject as XmlDocument).InnerXml;
} else
output = myobj.ImmediateBaseObject.ToString();
runspace.Close();
return new SqlString(output);
}