c#以编程方式导出传输规则 - 交换2010

时间:2013-04-15 08:24:37

标签: c# powershell cmdlets

我正在尝试以编程方式导出传输规则。

我的代码适用于get-exchangeserver和get-TransportRule等简单命令,但是如果我尝试将命令导入规则赋予某个文件,则会给出错误,即给定的命令不会被识别为cmdlet,script。

我的代码如下(我已尝试同时提供Windows身份验证或用户身份验证,即Exchange管理员):

WSManConnectionInfo connectionInfo = new WSManConnectionInfo(serverUri, SHELL_URI, creds);
try
{
    using (Runspace rs = RunspaceFactory.CreateRunspace(connectionInfo))
    {
        PowerShell psh = PowerShell.Create();
        psh.Runspace = rs;
        rs.Open();
        psh.AddCommand("$file = Export-TransportRuleCollection -ExportLegacyRules" +"Set-Content -Path " + @"C:\LegacyRules3.xml" + "-Value file.FileData -Encoding Byte");
        psh.Invoke();

我使用的是C#和Exchange Server 2010,PowerShell版本是1.0。远程操作系统是Winodws 7。

知道我应该做些什么改动吗?

1 个答案:

答案 0 :(得分:0)

来自Export-TransportRuleCollection的文档:

在Exchange 2010中,必须将规则集合导出到变量,然后使用Set-Content cmdlet将数据写入XML文件。有关更多信息,请参阅Set-Content。

http://technet.microsoft.com/en-us/library/bb124410(v=exchg.141).aspx