【发布时间】:2020-07-16 04:39:24
【问题描述】:
这是我的第一篇文章。我专门为这个问题创建了一个帐户,因为我非常困惑。
基本上,我遇到的问题与我在这里找到的问题完全相同,但没有发布解决方案。 https://www.reddit.com/r/AZURE/comments/8sz7s8/can_anyone_help_access_denied_with_azure/
我在尝试使用自动化帐户中的服务帐户连接到 Exchange Online 时收到此错误。我认为问题也可能是我的 $credential 变量没有传递到我的 $session 变量中,但我想不出任何原因会发生这种情况。
New-PSSession : [ps.outlook.com] Connecting to remote server ps.outlook.com failed with the following error message : Access is denied. For more information, see the about_Remote_Trouble
如果我在本地运行它,我不会遇到任何问题。我已使用此服务帐户登录 Exchange 以确认密码有效。我已检查它是否具有 Exchange 管理员访问权限。我知道凭据和权限很好。奇怪的是,我在旧订阅中的另一个自动化帐户上使用了相同的脚本。我完全复制了设置(或者至少我认为我这样做了),并认为我可以重复使用此运行手册。
我的联系电话与我分享的链接中的电话非常相似。
$credential = Get-AutomationPSCredential -Name 'Admin-ExchangeOnline'
$session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri 'https://outlook.office365.com/powershell-liveid/' -Credential $credential -Authentication Basic -AllowRedirection
Import-Module (Import-PSSession -Session $session -DisableNameChecking -AllowClobber) -Global
任何帮助将不胜感激!
【问题讨论】:
-
来自the docs:2020 年 1 月 23 日将不再支持此用于 Azure 自动化的 PowerShell 命令。 Azure 自动化已弃用 Azure 服务管理模型,并将在该日期禁用。请使用Az.Automation中支持Azure资源管理模型的命令。
-
哇,我真的很傻,没有注意到这一点!我将尝试使用新的 cmdlet。非常感谢!
-
我希望你能用新命令修复它。抱歉,我自己无法测试。
-
所以现在我可以使用
$credential = Get-AzAutomationCredential -ResourceGroupName 'resource-group' -AutomationAccountName 'AccountName' -Name 'Credential-Asset'创建一个凭据对象,但是现在当我尝试将它通过管道传输到我的 $Session 变量时,我收到了一个新错误。New-PSSession : Cannot process argument transformation on parameter 'Credential'. userName在我看来,对象中有 cmdlet 无法识别的参数名称。我会研究如何调和。 -
解决了这个问题。真傻。我错误地输入了凭证资产的用户名。一旦我这样做了,我的原始脚本就起作用了。但是,正如人们所知道的那样,我尝试使用 get-AzAutomationCredential cmdlet 进行连接的尝试没有奏效。我能够使用 cmdlet 创建一个 $credential 对象,它似乎可以正常工作,但我认为该对象的结构与连接到 Exchange Online 的传统方式不兼容。
标签: azure powershell automation exchange-server