Andrew February 2016

Running PowerShell commands from C#

I have powershell script which connects to exchange online and performs tasks like creating shared mailboxes, calendars, adding licenses etc.

The thing is that when I run those commands from C# class I get the error.

This is my connection:

 string schemaURI = "http://schemas.microsoft.com/powershell/Microsoft.Exchange";
        Uri connectTo = new Uri("https://outlook.office365.com/powershell-liveid/");

        var securePassword = new SecureString();

        foreach (char c in password)
        {
            securePassword.AppendChar(c);
        }

        this.credential = new PSCredential(login, securePassword);
        WSManConnectionInfo connectionInfo = new WSManConnectionInfo(connectTo, schemaURI, credential);
        connectionInfo.MaximumConnectionRedirectionCount = 5;
        connectionInfo.AuthenticationMechanism = AuthenticationMechanism.Basic;


            this.remoteRunspace = RunspaceFactory.CreateRunspace(connectionInfo);
            this.remoteRunspace.Open();

This is my PowerShell which is working fine:

  PowerShell powershell = PowerShell.Create();
                powershell.Runspace = this.remoteRunspace;
                PSCommand command = new PSCommand();

                command.AddCommand("new-mailbox");
                command.AddParameter("Name", mailboxName);
                command.AddParameter("Shared");
                command.AddParameter("PrimarySmtpAddress", formatedMailboxName);
                powershell.Commands = command;

                powershell.Invoke();

And this is the code which is not working fine:

 PowerShell powershell = PowerShell.Create();
                powershell.Runspace = this.remoteRunspace;
                PSCommand command = new PSCommand();
                command.AddCommand("Connect-MsolService");
                command.AddCommand("Import-Module MSOnline");
                command.AddParameter("Credenti        

Answers


Sdaele February 2016

Might be stupid but have you tried the following?

command.AddCommand("Import-Module 'MSOnline'");

I have had an similar issue but with a skypeforbusiness module. Worked when I added ''.

Can you execute the Import-Module MSOnline command in powershell ise?


Andrew February 2016

I found solution for my question here

Post Status

Asked in February 2016
Viewed 1,692 times
Voted 7
Answered 2 times

Search




Leave an answer