我正在尝试以编程方式导出传输规则。
我的代码适用于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。
知道我应该做些什么改动吗?
答案 0 :(得分:0)
来自Export-TransportRuleCollection的文档:
在Exchange 2010中,必须将规则集合导出到变量,然后使用Set-Content cmdlet将数据写入XML文件。有关更多信息,请参阅Set-Content。
http://technet.microsoft.com/en-us/library/bb124410(v=exchg.141).aspx