【发布时间】:2021-12-11 03:27:57
【问题描述】:
我正在开发一个连接到 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?
【问题讨论】:
-
验证用于
New-ExoPSSessioncmdlet 的参数。如果您使用的是数组(例如 $somevalues[3] 且 $somevalues 的长度为 2,则 3 超出范围。这是发生此类错误的示例。 -
感谢您的回复。 New-ExoPSSession 是一个内部 cmdlet(它在 Connect-ExchangeOnline 中),我不调用此方法。所有变量都是字符串,而不是数组,除了 $MyCert 是证书类型。
标签: powershell powershell-4.0 microsoft365 office365-exchange