2012-04-16 8 views
3

Windows Server 2008 R2マシンがあり、Power Shell v1.0があります。 Power Shellを使ってC#でMS 365オンラインサービスに接続したいと思っていました。 Office 365コマンドレットとMicrosoft Online Servicesサインインアシスタントをインストールしました。 (参考:http://onlinehelp.microsoft.com/en-us/office365-enterprises/hh124998.aspx#BKMK_installOffice 365:Power Shellスクリプトを使用してOffice Online 365サービスに接続するスクリプトの問題

私のスクリプトは次のとおりです。

$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 

私は正常にパワーシェルコマンドウィンドウでこのスクリプトを実行することができます。しかし、私は問題が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(); 
      }     
     } 
    } 

:ここ

は、私のC#のコードである

用語「接続-Msolservice」は、コマンドレット、関数、スクリプトファイルの名前として認識されていない、または操作可能なプログラム。名前のスペルを確認するか、パスが含まれている場合は、パスが正しいことを確認してから、もう一度やり直してください。

には何か不足しているものがありますか?

おかげ

答えて

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

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

まあおかげで。私はあなたの提案も試みます。しかし、私はそれが "Connect-Msolservice"コマンドを認識しなかった理由を発見しました。理由は簡単でした。私は私の開発マシンがMicrosoft Server 2008 64bitであり、私がMS Online Serviceモジュール(64bit)をインストールしている間、Platformターゲットがx86であるコンソールアプリケーションを作成しました。プラットフォームターゲットを任意のCPUに変更することで、この問題を解決できます。 – Prakash

+0

こんにちはDavid、私は上記の解決策を試しましたが、同じ結果(成功しませんでした)。 BTW。 MS Onlineサービスモジュール(64ビット)のコマンドレットは、64ビットプロセス/アプリケーションから実行/実行する必要があるようです。これは私が経験したことです。あなたがこれについて何か考えている場合は、共有してください。 – Prakash

+0

共有してくれてありがとう、Prakash。私は同じ問題に遭遇した。 – ACR

0

あなたは物事次インストールされていることを確認してください。コメントを

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