powershell – 尝试远程访问localhost上的Exchange服务器时出现“访问被拒绝”错误

前端之家收集整理的这篇文章主要介绍了powershell – 尝试远程访问localhost上的Exchange服务器时出现“访问被拒绝”错误前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试建立Power Shell会话以对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

我的代码是来自Microsoft Technet Article的复制粘贴.它适用于远程机器,但无论何时我瞄准我运行的机器,我都会收到上述错误.

到目前为止我尝试了什么:

>检查了about_remote_troubleshooting帮助主题.那里没有与Access Denied错误有关的任何内容.
>使用与收到“拒绝访问”错误相同的凭据的目标远程计算机. (没有问题连接)
>已验证我的PowerShell会话是以管理员身份运行的. (它是)
>已验证Exchange命令行管理程序是否能够成功启动. (它是)
>尝试没有凭据,看看是否可行. (它没有)
>检查网络使用和网络会话,以确保我没有具有相同凭据问题的奇怪的多个连接. (我没有看到任何迹象表明)
>从导致问题的脚本和手动键入命令到PowerShell控制台中尝试了这一点. (两种方式都得到了相同的结果.为了保持一致性)
>在多个系统上尝试过这个. (各地的结果相同)

一些快速说明:

>这是在Windows Server 2012上运行的Exchange 2013.这是一个基本安装,只是一个测试环境,除了安装和启用远程处理之外,其数据和配置都很少.
>使用的凭据用于域管理员,域管理员还具有必要的Exchange权限,可以执行我需要执行的任何操作.即,只要我的机器不是我正在运行的机器,我就没有任何问题,没有其他任何改变我连接的方式.此外,这是一个测试域,其中域管理员的访问权限没有受到任何限制或调整,因此它应该完全和完全访问所有内容.

我输入的具体命令是:

$cred = Get-Credential
$session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri 'http://<HOSTNAME>/Powershell' -Credential $cred

连接到localhost这样的东西,我应该能做什么?还是只是不支持

在这一点上我完全失败了.任何帮助,即使指出我正确的方向,将不胜感激.

编辑:我应该补充一点,我尝试使用与上面相同的命令从另一台机器连接到本地主机,并且它没有问题.所以,我认为这不是本地配置问题.

所以,我上周末偶然发现了解决方案.它似乎与正在使用的身份验证有关.我把“-Authentication”参数留空了,打算让New-PSSession命令找出哪种方法最好.

显然,这默认为“Negotiate”身份验证方法,它将针对远程计算机选择Kerberos,但是否则将选择NTLM(或者至少,这是我的观察/假设行为)​​.请参见this Microsoft description的身份验证方法.

指定一个特定的身份验证方法(“Kerberos”和“Basic”都工作,“Negotiate”没有,我没有过多地修改过这个)清除问题并允许我连接到本地交换实例.

所以,而不是这个:

$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

为什么这样做?我没有线索.我会把它留给那些比我更了解的人来解释它.

猜你在找的Windows相关文章