2010-11-18 4 views
4

以下のようにC#コード内でExchange Powershellコマンドを実行するアプリケーションがあります。これは、私がpowershellコマンドを実行するために使用する関連する行の例です。C#のエラーでpowershellコマンドを実行すると、 "現在のホストが実装していないためこの関数を呼び出せません"

  RunspaceConfiguration rsConfig = RunspaceConfiguration.Create(); 
     PSSnapInException snapInException = null; 

     //load Exchange shell 
     rsConfig.AddPSSnapIn("Microsoft.Exchange.Management.PowerShell.E2010", out snapInException); 
     Runspace runSpace = RunspaceFactory.CreateRunspace(rsConfig); 

     //open runspace 
     runSpace.Open(); 

     //setup pipeline 
     Pipeline pipeLine = runSpace.CreatePipeline(); 
     String sScript = "get-mailbox -identity 'rj'"; 

     //add script to pipeline 
     pipeLine.Commands.AddScript(sScript); 

     //run the script 
     pipeLine.Invoke(); 
     pipeLine.Dispose(); 

このコードは、これまでのすべてのケースで完璧に動作します。上記の代わりに実行しようとしているスクリプトは、メールボックスのRetentionPolicyを設定することです。私はこのようなルックスを実行しようとしていますスクリプト:-Identity「RJ」-RetentionPolicy「メインキャンパス保持ポリシー」

-メールボックスを設定し、私はPowerShellを自分自身でこれを実行すると、私がしようとすると、それは完璧に動作しますが、以下のコードを使用して実行します。「現在のホストが実装していないため、この関数を呼び出せません」というエラーが表示されます。

このエラーから、C#で実行されるコマンドはRetentionPolicyコマンドを実行できないようですが、それはあまり意味がありません。私はこれをGoogledし、すべてのことを試してみましたが運がない。

なぜこのようなことが起こっているか知っていれば、非常に役に立ちます。

答えて

11

そのコマンドが正常に確認のため促すなら、あなたはどちらかにする必要があります:

  • がセットメールボックスを呼び出す前に$ConfirmPreference = "None"を設定します(そしておそらく(おそらく-Force同様と)

    • 設定するパラメータとして-Confirm:$falseあまりに-Force
    • ホストを作成し、あなたが-Foでそれを釘付け確認機能;-)
  • +0

    を実装rce。私がそれを加えたら、それは完璧に働いた。ヘルプありがとう、これらの要件を完了します。驚くばかり! –

    +0

    チャームのように働いた!ありがとう –

    +0

    完全なソースコードサンプル?ホストを作成するにはあまりにも完全なソースかもしれません。 – Kiquenet

    関連する問題