【问题标题】:Enumeration yielded no results for PowerShell Invoke枚举没有为 PowerShell 调用产生任何结果
【发布时间】:2020-02-25 21:28:01
【问题描述】:

我正在用 C# 代码执行 PowerShell 命令。该代码在 O365 中添加了一个电子邮件地址分发列表。 PowerShell 能够将用户添加到分发列表,但它也给出异常。为什么?

        using (powershell = PowerShell.Create())
        {
            command = new PSCommand();
            command.AddCommand("Invoke-Command");
            string DLGroupName = "UnsubscribersList";
            command.AddParameter("ScriptBlock",
                System.Management.Automation.ScriptBlock.Create(
                    "Add-DistributionGroupMember -Identity '" + DLGroupName + "' -Member " + txtEmail.Text + ""));
            command.AddParameter("Session", session);
            powershell.Commands = command;
            powershell.Runspace = runspace;
            result = powershell.Invoke();
            if (powershell.Streams.Error.Count > 0 || result.Count != 1)
            {
                throw new Exception("Fail to establish the connection");
            }
        }

错误:

powershell.Streams.Error 正在抛出
枚举没有结果
result.Count 为 0

【问题讨论】:

    标签: c# powershell office365


    【解决方案1】:

    结果将始终为 0

    当你运行 PowerShell 时,它会执行脚本并返回 退出代码 0 告诉你 PowerShell.exe 成功运行 无论如何实际上发生在你的脚本中

    如果您希望结果传播到“PowerShell.exe”实例之外,您必须在脚本中有一个命令以使用已知的退出代码显式退出(退出代码 0 通常表示成功),或者将结果保存到HDD/SQL/或其他可以读取的地方。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多