【问题标题】:Errors when creating an Exchange mailbox using PowerShell commands and parameters使用 PowerShell 命令和参数创建 Exchange 邮箱时出错
【发布时间】:2020-02-26 01:42:24
【问题描述】:

以下 PowerShell 脚本尝试为具有 (a) 保留策略和 (b) 存档配额的用户创建 Exchange 邮箱:

PSCommand command = new PSCommand();

command.AddCommand("Enable-Mailbox");
command.AddParameter("Alias", K2.ProcessInstance.DataFields["Account-ADAlias"].Value.ToString());
command.AddParameter("Identity", K2.ProcessInstance.DataFields["Account-ADAlias"].Value.ToString());
command.AddParameter("Database", K2.ProcessInstance.DataFields["Account-MailboxDatabase"].Value.ToString());

command.AddCommand("Enable-Mailbox");
command.AddParameter("Identity", K2.ProcessInstance.DataFields["Account-ADAlias"].Value.ToString());
command.AddParameter("Archive");

command.AddCommand("Set-Mailbox");
command.AddParameter("Identity", K2.ProcessInstance.DataFields["Account-ADAlias"].Value.ToString());
command.AddParameter("Database", K2.ProcessInstance.DataFields["Account-MailboxDatabase"].Value.ToString());
command.AddParameter("ArchiveQuota", "2GB");
command.AddParameter("ArchiveWarningQuota", "1.8GB");
command.AddParameter("RetentionPolicy", "No Archive Delete after 10years");

powershell.Commands = command;

脚本运行时产生如下错误:

无法使用指定的命名参数解析参数集。

注意:以“K2.ProcessInstance.Datafields”开头的变量均已验证有效。

我不知道如何解决这个错误。我已经查阅了 Exchange 的 PowerShell 模块文档。任何指导表示赞赏。

【问题讨论】:

  • 错误消息中是否给出了行号或引用了代码 sn-p,您可以与我们分享吗?如果您提供行号,请告诉我们匹配的行。
  • 此应用程序使用运行此代码的工作流服务器,我正在尝试获取错误日志文件,以便更详细地查看错误

标签: c# .net powershell


【解决方案1】:

Powershell 无法确定您在此特定调用中使用的参数集。

Enable-Mailbox 使用了几个不同的参数集。我认为命令行开关接受 13 种不同的参数集。通过仅提供Alias、Identity 和Database,Powershell 无法确定正在使用哪个参数集,因此它会举手并给您该错误。这是因为这三个参数是列表中几乎每个参数集的一部分(我认为Database 被省略了)。

PowerShell unable the determine which Parameter Set is in use 帖子中描述了该问题(针对不同的用例)

希望这会有所帮助!

A-

【讨论】:

    猜你喜欢
    • 2016-08-24
    • 2010-10-01
    • 2019-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多