我试图建立一个PowerShell session ,以对本地主机上的Exchange服务器运行几个Exchange命令。我不断收到以下错误:
New-PSSession : [<HOSTNAME>] Connecting to remote server <HOSTNAME> failed with the following error message
: Access is denied. For more information, see the about_Remote_Troubleshooting Help topic.
At line:1 char:12
+ $session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri 'h ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : OpenError: (System.Manageme....RemoteRunspace:RemoteRunspace) [New-PSSession], PSRemotin
gTransportException
+ FullyQualifiedErrorId : AccessDenied,PSSessionOpenFailed
我的代码是Microsoft Technet Article的复制粘贴。它适用于远程计算机,但是每当我针对要运行的计算机定位时,都会出现上述错误。
到目前为止,我已经尝试过:
about_remote_troubleshooting
帮助主题。那里没有任何与“访问被拒绝”错误有关的信息。 net use
和net session
,以确保我没有具有相同凭据问题的奇怪的多个连接。 (我没有看到任何指示)一些快速注意事项:
我输入的特定命令是:
$cred = Get-Credential
$session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri 'http://<HOSTNAME>/Powershell' -Credential $cred
我应该能够像这样连接到本地主机吗?还是不被支持?
在这一点上,我完全不知所措。任何帮助,甚至为我指明正确的方向,都将不胜感激。
编辑:我应该添加,我已经尝试使用与上述相同的命令从另一台计算机连接到此本地主机,并且没有问题。因此,我认为这不是本地配置问题。
最佳答案
因此,上周下半年,我偶然发现了该解决方案。似乎与所使用的身份验证有关。我将“-Authentication”参数留为空白,目的是让New-PSSession命令挑选出最佳方法。
显然,这默认为“协商”身份验证方法,该方法将针对远程计算机选择Kerberos,但否则将选择NTLM(或者至少是我观察到的/假定的行为)。请参阅this Microsoft description的身份验证方法。
指定一种特定的身份验证方法(“Kerberos”和“基本”均有效,“协商”无效,我对此不做过多修改)清除了该问题,并允许我连接到本地交换实例。
因此,而不是这样:
$session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri 'http://<HOSTNAME>/Powershell' -Credential $cred
做这个:
$session = New-PSSession -Authentication Kerberos -ConfigurationName Microsoft.Exchange -ConnectionUri 'http://<HOSTNAME>/Powershell' -Credential $cred
为什么行得通?我没有任何线索。我将它留给比我了解更多的人来解释。
关于powershell - 尝试远程连接到本地主机上的Exchange服务器时出现"Access Is Denied"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30492236/