views:

19

answers:

1

How can I get the return value of only the Name Variable?

RunspaceConfiguration rsConfig = RunspaceConfiguration.Create(); PSSnapInException snapInException = null; PSSnapInInfo info = rsConfig.AddPSSnapIn("Microsoft.Exchange.Management.PowerShell.Admin", out snapInException); Runspace myRunSpace = RunspaceFactory.CreateRunspace(rsConfig); myRunSpace.Open();

//Create pipeline and feed it the script text Pipeline pipeline = myRunSpace.CreatePipeline();

string strScript = "Get-MailboxDatabase";

//Add the command to the Commands collection of the pipeline. pipeline.Commands.AddScript(strScript)

Collection results = pipeline.Invoke();

A: 

There are a few different ways to do this. Alter your script:

string strScript = "Get-MailboxDatabase | select -expand name"

with this, results[0].BaseObject will be a plain string. Or you can retrieve the Name property from the PSObject wrapping the mailbox database instance:

string name = results[0].Properties["Name"].Value

or you can grab it from the mailboxdatabase Type (sorry, I don't know what that actually is) by casting results[0].BaseObject to this Type and accessing the property in a strongly-typed fashion.

-Oisin

x0n