【问题标题】:c# programatically exporting transport rule - exchange 2010c# 以编程方式导出传输规则-exchange 2010
【发布时间】:2013-04-15 18:31:47
【问题描述】:

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

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

我的代码如下(我已尝试同时给予 windows 身份验证或用户身份验证谁是交换管理员):

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。

知道我应该做什么更正吗?

【问题讨论】:

    标签: c# powershell powershell-cmdlet


    【解决方案1】:

    来自 Export-TransportRuleCollection 的文档:

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

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

    【讨论】:

    • 您好,感谢您的回复,如果您看到我的代码,我已经在使用 cmdlet 但无法通过编码使其工作,想知道如何拆分命令以使其生效通过 c# 代码工作。问候,阿米特
    • 您确定您使用的凭据属于具有执行此操作所需权限的 Exchange RBAC 组吗?如果他们不这样做,Exchange 将不会为他们提供在会话中使用的 cmdlet。
    • 您似乎正在为此连接到 Exchange 远程会话。这是一个受限的无语言会话,无法访问 Exchange 服务器上的文件系统。通常要使用这些会话,您需要创建一个本地会话,然后连接到远程会话功能并将其导入该本地会话(隐式远程处理)。
    • 您好,使用New-PSSession后问题解决,可以远程调用脚本,感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-23
    相关资源
    最近更新 更多