C#中的Powershell - 访问Exchange

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#中的Powershell - 访问Exchange相关的知识,希望对你有一定的参考价值。

我在.NET System.Management.Automation *命名空间中使用Powershell类。我需要翻译这个将变量设置为C#语法的cmdlet调用:

$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection

以下是我构建命令的方法:

 List<Command> cList = new List<Command>();
 Command cEx = new Command("Set-ExecutionPolicy");
        cEx.Parameters.Add(new CommandParameter("Scope", "CurrentUser"));
        cEx.Parameters.Add(new CommandParameter("ExecutionPolicy", "Unrestricted"));
        cList.Add(cEx);

稍后,我遍历命令列表并按如下方式执行:

Pipeline pipeline;
        Collection<PSObject> exResults = null;
        foreach (Command cmd in cList)
        {
            pipeline = ps.Runspace.CreatePipeline();
            pipeline.Commands.Add(cmd);
            exResults = pipeline.Invoke();
            foreach (PSObject p in exResults)
            {
                Console.WriteLine(p);
            }
        }

我需要帮助获得设置$ Session变量的第一个命令的语法。这是我尝试过但我不认为是正确的:

 Command c10 = new Command("Set-Variable");
        c10.Parameters.Add(new CommandParameter("Name", "Session"));
        c10.Parameters.Add(new CommandParameter("Value", "New-PSSession"));
        c10.Parameters.Add(new CommandParameter("ConfigurationName", "Microsoft.Exchange"));
        c10.Parameters.Add(new CommandParameter("ConnectionUri", "https://outlook.office365.com/powershell-liveid"));
        c10.Parameters.Add(new CommandParameter("Credential", pCredUser));
        c10.Parameters.Add(new CommandParameter("Authentication", "Basic"));
        c10.Parameters.Add(new CommandParameter("AllowRedirection"));
        cList.Add(c10);

当调用c10命令时,我得到异常:“找不到与参数名称'ConfigurationName'匹配的参数”

答案

问题是尝试连接到Exchange 2010。

这篇文章(和其中链接的文章)是有帮助的 - https://blogs.msdn.microsoft.com/akashb/2010/03/25/how-to-migrating-exchange-2007-powershell-managed-code-to-work-with-exchange-2010/

以上是关于C#中的Powershell - 访问Exchange的主要内容,如果未能解决你的问题,请参考以下文章

在 VBA 访问中运行 powershell

无法访问 Powershell 远程会话中的 UNC 路径

PowerShell 中的环境变量,名称中带有点 (.)

使用 PowerShell 访问 WebView2 中的 cookie

在 PowerShell 脚本中访问 Azure DevOps 管道中的安全文件

作为计划任务运行时,Powershell 脚本无法访问文件