远程连接Windows实例时出现身份验证错误的处理方法

最近更新时间: 2026-08-18 11:56:44

问题描述

通过微软的RDP协议客户端,远程连接Windows实例时,系统提示“出现身份验证错误,要求的函数不受支持(The function requested is not supported)”错误。

问题原因

微软官方2018年5月,更新了凭据安全支持提供程序协议(CredSSP)相关补丁和身份验证请求方式。当遇到如下一种情景时,就会出现该连接错误。

  • 情景一:客户端未更新该补丁,服务器端已更新该补丁且加密Oracle修正的策略为强制更新的客户端。
  • 情景二:客户端已更新该补丁且加密Oracle修正的策略为强制更新的客户端,服务器端未更新该补丁。
  • 情景三:客户端已更新该补丁且加密Oracle修正的策略为缓解,服务器端未更新该补丁。

解决方案

方法一 :服务器端允许任意版本的远程桌面连接

由于Windows Server系统版本较多,且各版本之间操作略有差异,此处分别以Windows Server 2008 R2、Windows Server 2012 R2和Windows Server 2016三个主流版本为例,步骤如下。

Windows Server 2008 R2系统版本

  1. 通过 VNC远程连接 登录Windows实例,打开 开始 ,右键单击 计算机,选择** 属性**。
  2. 在系统控制面板中,单击** 远程设置**,在弹出的** 远程桌面 **选项中选择 允许运行任意版本远程桌面的计算机连接(较不安全) 并单击 确定


Windows Server 2012 R2系统版本

  1. 通过 VNC远程连接 登录Windows实例,打开 开始 ,右键单击 计算机,选择** 属性**。
  2. 在系统控制面板中,单击 远程设置,在弹出的 远程桌面 选项中取消选择 仅允许运行使用网络级别身份验证的远程桌面的计算机连接(建议) 并单击 确定


Windows Server 2016系统版本

  1. 通过 VNC远程连接 登录Windows实例,打开 开始 ,右键单击 计算机,选择** 属性**。
  2. 在系统控制面板中,单击 远程设置,在弹出的 远程桌面 选项中取消选择 仅允许运行使用网络级别身份验证的远程桌面的计算机连接(建议) 并单击 确定

## 方法二 :Windows安全更新 1. 通过 [VNC远程连接](https://developer.qiniu.com/qvm/manual/6864/use-the-management-terminal-vnc-connection-windows-instance) 登录Windows实例,搜索并打开 **Windows 更新** 页面,单击 **检查更新** 下载更新。 ![](https://dn-odum9helk.qbox.me/Fidn1ViQZSPmyzGRMFJRBqgZSQPl) 1. 等待更新下载和安装。如果需要手动安装CredSSP对应安全更新包,请参考[微软官网地址](https://www.microsoft.com/zh-cn/windows/?spm=a2c4g.11186623.2.25.6a554c07N27Vca)进行选择对应版本的安全更新下载。 2. 重启实例或重启本地计算机以完成安装更新。
## 方法三:修改注册表

提示:此处以Windows Server 2016系统版本为例,其他Windows系统版本操作类似。

手动修改

当客户端或服务器端完成CredSSP相关补丁的更新后,请选择以下一种方式修改其注册表。如果修改注册表不当,可能会出现严重问题,您需要自行承担修改注册表风险。修改注册表之前,建议您先通过创建快照备份数据,以免数据丢失。

  1. 登录Windows实例或者本地计算机,单击 开始 > 运行,输入regedit,单击 确定。
  2. 单击 HKEY_LOCAL_MACHINE > SOFTWARE > Microsoft > Windows > CurrentVersion > Policies > System > CredSSP > Parameters
  3. 如果 CredSSP 项或者 Parameters 项不存在,请新建 CredSSP 项或者 Parameters 项,在 Parameters 项下新建 REG_DWORD 类型的 AllowEncryptionOracle 值,并设置数据为2。
  4. 重启实例或重启本地计算机。

脚本修改

  1. 登录Windows实例或者本地计算机,以管理员身份运行Windows PowerShell,执行如下脚本。
  2. 重启实例或重启本地计算机。

脚本:

New-Item -Path HKLM:\Software\Microsoft\Windows\CurrentVersion\Policies\System -Name CredSSP -Force
New-Item -Path HKLM:\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP -Name Parameters -Force
Get-Item -Path HKLM:\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters | New-ItemProperty -Name AllowEncryptionOracle -Value 2 -PropertyType DWORD -Force

注:若您优先使用本方法修改了注册表,随后又更新了客户端和ECS实例安全补丁,我们建议您将AllowEncryptionOracle的值设为0或者1以获得更高的安全性。

以上内容是否对您有帮助?