Intercambie comandos PowerShell a través de C #

Estoy usando C # para enviar comandos de PowerShell interactuando con Exchange. Tengo un metodo llamadoinitconnection Lo que configura mi conexión a Exchange.

Tengo otro método al que llamo cuando hago clic en un botón que enviará un comando a powershell después de que se establezca la conexión. Sin embargo no puedo continuar la conexión creada. Cuando intento ejecutar un comando, dice que no se encontró el comando. Es más que probable porque no tiene los cmdlets de intercambio.

<code>Runspace runspace = System.Management.Automation.Runspaces.RunspaceFactory.CreateRunspace();

runspace.Open();

Pipeline pipeline = runspace.CreatePipeline();
pipeline.Commands.AddScript("Set-ExecutionPolicy Unrestricted -Scope process -Force;$password = ConvertTo-SecureString -AsPlainText -Force " + password + ";$mycred = new-object -typename System.Management.Automation.PSCredential -argumentlist " + username + ",$password;$LiveCred = Get-Credential -Credential $mycred; $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell/ -Credential $LiveCred -Authentication Basic –AllowRedirection; Import-PSSession $Session");
// pipeline.Commands.Add("Out-String");

pipeline.Invoke();
mpeAdd.Hide();
</code>

Este es el método de iniciación que crea la conexión.

<code>protected void Get_Mailboxes(object sender, EventArgs e) {

    PowerShell powershell = PowerShell.Create();
    PSCommand command = new PSCommand();
    command = new PSCommand();
    command.AddCommand("Get-Mailbox");

    powershell.Commands = command;
    powershell.Runspace = runspace; //Also it says runsapce doesn't exist in this context.
    Collection<PSObject> commandResults = powershell.Invoke();

    StringBuilder sb = new StringBuilder();

    ArrayList boxesarray = new ArrayList();

    foreach (PSObject ps in commandResults)
    {
        boxesarray.Add(ps.Properties["Alias"].Value.ToString());
    }

    boxes.DataSource = boxesarray;
    boxes.DataBind();
}
</code>

Este es mi método al que llamo cuando hago clic en un botón después de crear la conexión, pero no funciona.

Respuestas a la pregunta(2)

Su respuesta a la pregunta