【发布时间】:2011-05-12 06:29:52
【问题描述】:
我有一个应用程序,用于在 C# 代码中运行 Exchange Powershell 命令,如下所示。这是我用于运行 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。我尝试运行的脚本如下所示:
Set-Mailbox -Identity 'rj' -RetentionPolicy '主校区保留政策'
当我在 powershell 本身中运行它时,它运行良好,但是当我尝试使用下面的代码运行它时,我收到错误,“无法调用此函数,因为当前主机没有实现它。”
从这个错误来看,在 C# 中运行的命令似乎无法运行 RetentionPolicy 命令,但这并没有多大意义。我已经用谷歌搜索并尝试了所有建议但没有运气。
如果有人知道为什么会这样,那将非常有帮助。
【问题讨论】:
标签: c# .net asp.net powershell exchange-server