2012-04-16 10 views
3

J'ai une machine Windows Server 2008 R2 avec Power Shell v1.0. Je voulais me connecter au service en ligne MS 365 en utilisant Power Shell avec C#. J'ai installé les cmdlets Office 365 et l'Assistant de connexion Microsoft Online Services. (Ref: http://onlinehelp.microsoft.com/en-us/office365-enterprises/hh124998.aspx#BKMK_install)Office 365: Connexion au service Office Online 365 à l'aide du script Power Shell

Mon script est:

$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 

je peux courir avec succès ce script dans la fenêtre de commande Shell Power. Mais j'ai un problème pour exécuter ce script dans l'application C#.

Voici mon code C#:

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(); 
      }     
     } 
    } 

Je reçois l'exception suivante:

Le terme 'Connect-MsolService' est pas reconnu comme le nom d'une applet de commande, fonction, fichier de script, ou programme opérationnel. Vérifiez l'orthographe du nom ou, si un chemin a été inclus, vérifiez que le chemin est correct et réessayez.

Y at-il quelque chose qui manque?

Merci

Répondre

1
InitialSessionState iss = InitialSessionState.CreateDefault(); 
iss.ImportPSModule(new string[] { "MSOnline" }); 

using (Runspace runspace = RunspaceFactory.CreateRunspace(iss)) 
{ 
// blah 
} 
+2

merci bien pour le commentaire. Je vais essayer avec votre suggestion aussi. Cependant, j'ai trouvé la raison pour laquelle il n'a pas reconnu la commande "Connect-Msolservice". La raison était simple. J'avais créé une application de console dont la cible de plateforme est x86 pendant que ma machine de dev est Microsoft Server 2008 64bit où j'ai installé le module de MS Online Service (64bits). En changeant la cible de la plate-forme à n'importe quel processeur, résolvez le problème. – Prakash

+0

Salut David, j'ai essayé avec la solution ci-dessus mais le même résultat (pas de succès). BTW. Il semble que les cmdlets du module de service MS Online (64 bits) doivent être exécutées/exécutées à partir du processus/application 64 bits. C'est ce que j'ai vécu. S'il vous plaît partager si vous avez une idée à ce sujet. – Prakash

+0

Merci pour le partage, Prakash. J'ai rencontré le même problème. – ACR

0

S'il vous plaît assurez-vous que vous avez installé les choses suivantes:

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