我正在尝试使用远程桌面登录托管在 Azure 中的 Dynamics 365 AOS 服务器,使用RDP 文件和凭据显示在环境低碳船页。
Dynamics 365 AOS 服务器是一个Windows Server 2016 Datacenter Edition
盒子。
通过服务器访问时Windows Server 2012 R2
(即通过 RDP 连接到服务器,然后从 LCS 下载 DFO365 RDP 文件到该机器并在“代理”服务器上运行 RDP 客户端),一切正常,但尝试直接从我的Windows 7 SP1
机器访问会失败。一位同事也在运行Windows 7 SP1
,也遇到了同样的问题。
我的公共 IP(即访问时看到的)我的IP) 已列入 RDP 白名单(通过 LCS Maintain
> Enable Access
)。
直到上周中旬,我和我的同事都能够通过 RDP 访问该 VM。
通过“代理”服务器,我能够查看远程 Dynamics 365 AOS 服务器上的事件日志。查看Microsoft-Windows-RemoteDesktopServices-RdpCoreTS/Operational
事件日志,我可以看到我的连接尝试到达此服务器,因为有警告消息指出:The server security layer detected an error (0x80090304) in the protocol stream and the client (Client IP:
123.45.67.89) has been disconnected.
(在哪里123.45.67.89与我的公共 IP 地址匹配)。警告两侧还有其他几个信息事件:
- 信息
The server accepted a new TCP connection from client 123.45.67.89:58177.
- 信息
Connection RDP-Tcp#4 created
- 信息
Interface method called: PrepareForAccept
- 信息
Interface method called: SendPolicyData
- 信息
PerfCounter session started with instance ID 4
- 警告
The server security layer detected an error (0x80090304) in the protocol stream and the client (Client IP:123.45.67.89) has been disconnected.
- 信息
Interface method called: OnDisconnected
- 信息
The server has terminated main RDP connection with the client.
- 信息
During this connection, server has not sent data or graphics update for 0 seconds (Idle1: 0, Idle2: 0).
- 信息
Channel rdpinpt has been closed between the server and the client on transport tunnel: 0.
- 信息
Channel rdpcmd has been closed between the server and the client on transport tunnel: 0.
- 信息
Channel rdplic has been closed between the server and the client on transport tunnel: 0.
- 信息
The disconnect reason is 14
这些事件重复 3 次,意味着 MSTSC 在报告失败之前尝试了 3 次连接。
在网上浏览时,我看到有人提到证书和关键问题。我注意到,下有 120,078 个文件C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys
,包括一个以f686aace6942fb7f7ceb231212eef4a4_(TSSecKeySet1)。不过,我还没有尝试删除或修改其中任何一个,因为不知道会有什么影响/没有看到任何解释为什么这样的修复应该有效。我的直觉是,该目录中的文件数量可能与该问题有关。
问题
是否有人知道是什么阻止了这些连接尝试/需要什么才能允许连接通过?
答案1
更新时间2018-04-30:适用于 Dev/Build 环境的解决方案不适用于 Sandbox 环境。
对于沙盒(第 2 层)环境
总结
升级客户端 RDP 协议以包含 DTLS 和 RDP 8.0(可能只需要第一部分;未经测试)。
细节
- 检查您的 RDP 协议版本
- 按住
Windows key
并按下R
以调出运行提示 - 键入
MSTSC
然后单击OK
- 右键单击标题栏并选择
About
- 文本的底行将显示
Remote Desktop Protocol #.# supported
。如果低于 8.0,则需要升级(对我来说是 6.1)
- 按住
- 升级 RDP
- 现在您应该能够成功地通过 RDP 连接到远程服务器。
注意:RDP 8.1 也可用(KB2923545);然而这不是必需的/对我来说不会安装(大概还有其他未记录的先决条件)。
对于 DEV/Build(第 1 层)环境,此解决方案有效:
总结
重新部署环境。
细节
从平台更新 12 开始,MS 不再支持使用管理员帐户。概述如下:https://blogs.msdn.microsoft.com/lcs/2017/10/31/restricted-admin-access-with-platform-12-updates/
相反,我们需要使用标准用户帐户;但是我们的实例上不存在该帐户。要获取此帐户,我们需要重新部署环境,步骤如下:https://community.dynamics.com/enterprise/b/dynamicsaxand365/archive/2017/04/30/tips-and-tricks-to-successfully-set-up-your-dynamics-365-for-operations-platform-part-5-environments-set-up(注意:部署可能需要最多 48 小时才能完成;而不是帖子/评论中所说的 12 小时)。
重新部署环境后,我们就有了正确的帐户,并且可以使用User###
而不是Admin###
RDP 帐户(列在本地用户而不是本地管理员部分。
目前还不清楚为什么我们可以从“代理”服务器访问,但不能从我们的本地机器访问...我最好的猜测是,我们数据中心的服务器以某种方式受益于拥有与同一 LAN 中可能已经有开放连接的其他设备相同的外部 IP 地址;因此没有被阻止...但这纯粹是猜测。
感谢 Microsoft 支持部门向我们指出原因/解决方案。