3

I have Windows Server 2008 R2 machine and it has Power Shell v1.0. I wanted to connect to MS 365 online service using Power Shell with C#. I have installed Office 365 cmdlets and Microsoft Online Services Sign-In Assistant. ( Ref: http://onlinehelp.microsoft.com/en-us/office365-enterprises/hh124998.aspx#BKMK_install )

My script is:

$password = ConvertTo-SecureString "xxxxx" -AsPlainText –Force $credential = New-Object System.Management.Automation.PsCredential("[email protected]",$password) $cred = Get-Credential -cred $credential Import-Module MSOnline Connect-Msolservice -cred $cred 

I can successfully run this script in the Power Shell Command window. But I have problem running this script in c# application.

Here is my c# code:

 public void RunScript() { StringBuilder ss = new StringBuilder(); ss.AppendLine("$password = ConvertTo-SecureString \"" + pwd + "\" -AsPlainText –Force"); ss.AppendLine("$credential = New-Object System.Management.Automation.PsCredential(\"" + userName + "\",$password)"); ss.AppendLine("$cred = Get-Credential -cred $credential"); ss.AppendLine("Import-Module MSOnline"); ss.AppendLine("Connect-Msolservice -cred $cred"); using (Runspace runspace = RunspaceFactory.CreateRunspace()) { Collection<PSObject> results = null; try { runspace.Open(); Pipeline pipeline = runspace.CreatePipeline(); pipeline.Commands.AddScript(ss.toString()); results = pipeline.Invoke(); } finally { runspace.Close(); } } } 

I get the following exception:

The term 'Connect-Msolservice' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.

Is there anything missing?

Thanks

2 Answers 2

1
InitialSessionState iss = InitialSessionState.CreateDefault(); iss.ImportPSModule(new string[] { "MSOnline" }); using (Runspace runspace = RunspaceFactory.CreateRunspace(iss)) { // blah } 
Sign up to request clarification or add additional context in comments.

4 Comments

Well thanks for the comment. I will try with your suggestion also. However, I have found the reason why it didn't recognize the "Connect-Msolservice" command. The reason was simple. I had created a console application whose Platform target is x86 while my dev machine is Microsoft Server 2008 64bit where I have installed MS Online Service module (64bits). By changing the Platform target to any cpu solve the issue.
Hi David,I tried with the above solution but the same result (no success). BTW. It seems that cmdlets of MS Online service module (64bits) has to be executed/run from the 64bits Process/application. This is what I have experienced. Please share if you have any idea on this.
Thanks for sharing, Prakash. I ran into the same issue.
I was having problems, then, on my 64-bit Windows 10 machine, in Project properties, I set Build -> Platform Target to x64 and the script imported the module successfully.
0

Please make sure you have installed following things:

 1. SharePoint Online Management Shell 2. Microsoft Online Services Sign-In Assistant version 7.0 or greater version 3. Windows Azure Active Directory Module 

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.