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_install)Office 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」は、コマンドレット、関数、スクリプトファイルの名前として認識されていない、または操作可能なプログラム。名前のスペルを確認するか、パスが含まれている場合は、パスが正しいことを確認してから、もう一度やり直してください。
には何か不足しているものがありますか?
おかげ
まあおかげで。私はあなたの提案も試みます。しかし、私はそれが "Connect-Msolservice"コマンドを認識しなかった理由を発見しました。理由は簡単でした。私は私の開発マシンがMicrosoft Server 2008 64bitであり、私がMS Online Serviceモジュール(64bit)をインストールしている間、Platformターゲットがx86であるコンソールアプリケーションを作成しました。プラットフォームターゲットを任意のCPUに変更することで、この問題を解決できます。 – Prakash
こんにちはDavid、私は上記の解決策を試しましたが、同じ結果(成功しませんでした)。 BTW。 MS Onlineサービスモジュール(64ビット)のコマンドレットは、64ビットプロセス/アプリケーションから実行/実行する必要があるようです。これは私が経験したことです。あなたがこれについて何か考えている場合は、共有してください。 – Prakash
共有してくれてありがとう、Prakash。私は同じ問題に遭遇した。 – ACR