1

我正在开发一个连接到 Exchange Online Microsoft 365 的脚本,但是当脚本执行 cmdlet“Connect-ExchangeOnline”时,它以错误结束。

具体指令是:

Connect-ExchangeOnline -Organization $myTenant -AppId $AppId -Certificate $myCert

参数中的变量是正确的,错误说:

New-ExoPSSession:索引超出范围。必须是非负数且小于集合的大小。参数名称:索引

我可以成功加载模块。该脚本通过我的机器中安装的证书连接到 Exchange Online,我的脚本可以毫无问题地读取它。

我在 Powershell V4 和 .Net Framework 4.7.1 中运行这个脚本。如果我使用 PowerShell V5.1 在另一台机器上执行相同的脚本,我可以成功连接到 Microsoft 365 Exchange Online。我尝试使用较低版本(ExchangeOnlineManagement 1.0.1),但此版本没有这些参数(组织、AppId 等),我现在使用的是 2.0.3 版本。我不确定您是否可以将 Powershell 升级到 5.1。

有谁知道为什么我无法连接到 Exchange Online?

4

2 回答 2

0

EXO V2仅在 PowerShell 5.1 及更高版本上受支持。如果要使用 PowerShell 4.0 ,则必须使用 EXO V1

我对 EXO 模块不够熟悉,不知道如何或是否可以在当前环境中使用 EXO V1。如果现代 Exchange Online 管理需要 V2,则您需要升级节点以使用 WMF 5.1 或安装 PowerShell Core (7+) 并从那里使用 EXO V2。

PowerShell Core 与 Windows PowerShell 并行安装,因此如果您采用此方法,则影响其他需要 PowerShell 4.0 的代码的风险较小。

于 2021-10-25T16:46:00.177 回答
0

我使用的是 Windows PowerShell 5.1,这似乎是 ExchangeOnlineManagement 2.0.4 版中引入的问题。

降级到 2.0.3 对我有用。

于 2021-10-31T23:06:14.830 回答