Jgr*_*aum 8 powershell access-denied powershell-remoting windows-server-2012 exchange-server-2013
我正在尝试建立PowerShell会话以对localhost上的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
Run Code Online (Sandbox Code Playgroud)
我的代码是Microsoft Technet文章的副本粘贴.它适用于远程机器,但无论何时我瞄准我运行的机器,我都会收到上述错误.
到目前为止我尝试过的:
about_remote_troubleshooting
帮助主题.与Access Denied错误相关的任何内容均无效.net use
并net session
确保我没有具有相同凭据问题的奇怪的多个连接.(我没有看到任何迹象表明)一些快速说明:
我输入的具体命令是:
$cred = Get-Credential
$session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri 'http://<HOSTNAME>/Powershell' -Credential $cred
Run Code Online (Sandbox Code Playgroud)
连接到localhost这样的东西,我应该能做什么?还是只是不支持?
在这一点上我完全失去了.任何帮助,即使指出我正确的方向,将不胜感激.
编辑:我应该补充一点,我尝试使用与上面相同的命令从另一台机器连接到本地主机,并且它没有问题.所以,我认为这不是本地配置问题.
所以,我上周晚些时候偶然发现了解决方案。这似乎与使用的身份验证有关。我将“-Authentication”参数留空,打算让 New-PSSession 命令找出最佳方法。
显然,这默认为“协商”身份验证方法,该方法将针对远程计算机选择 Kerberos,但否则将选择 NTLM(或者至少,这是我观察到/假设的行为)。请参阅Microsoft对身份验证方法的说明。
指定特定的身份验证方法(“Kerberos”和“Basic”都有效,“Negotiate”没有,我没有对此做太多修改)可以解决问题并允许我连接到本地交换实例。
所以,而不是这样:
$session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri 'http://<HOSTNAME>/Powershell' -Credential $cred
Run Code Online (Sandbox Code Playgroud)
做这个:
$session = New-PSSession -Authentication Kerberos -ConfigurationName Microsoft.Exchange -ConnectionUri 'http://<HOSTNAME>/Powershell' -Credential $cred
Run Code Online (Sandbox Code Playgroud)
为什么这样有效?我没有任何线索。我将把它留给比我更了解的人来解释。
归档时间: |
|
查看次数: |
46992 次 |
最近记录: |