远程登入Windows报错:The function requested is not supported(出现身份验证错误,要求的函数不受支持)
文章最后更新时间:2021年12月02日已超过209天没有更新。
本文提供通过微软的RDP协议本地客户端远程连接Windows实例时报错:出现身份验证错误,要求的函数不受支持(The function requested is not supported)的解决方法。
问题原因
微软官方2018年5月更新了凭据安全支持提供程序协议(CredSSP)相关补丁和身份验证请求方式。当出现以下任一情景时会出现该连接错误:
情景一:本地客户端未更新该补丁,服务器端已更新该补丁且加密Oracle修正的策略为强制更新的客户端。
情景二:本地客户端已更新该补丁且加密Oracle修正的策略为强制更新的客户端,服务器端未更新该补丁。
情景三:本地客户端已更新该补丁且加密Oracle修正的策略为缓解,服务器端未更新该补丁。
解决方法一:服务器端允许任意版本的远程桌面连接
Windows Server 2008 R2
1.通过远程连接功能登录Windows实例。
2.打开开始,右键单击计算机,选择属性
3.在系统控制面板中,单击远程设置,在弹出的远程桌面选项中选择允许运行任意版本远程桌面的计算机连接(较不安全)并单击确定。
Windows Server 2012 R2
1.通过远程连接功能登录Windows实例。
2.在开始界面,右键单击这台电脑,选择属性。
3.在系统控制面板中,单击远程设置,在弹出的远程桌面选项中取消选择仅允许运行使用网络级别身份验证的远程桌面的计算机连接(建议)并单击确定。
Windows Server 2016
1.通过远程连接功能登录Windows实例。
2.打开开始 > Windows系统 > 此电脑,右键单击此电脑,选择更多 > 属性。
4.在系统控制面板中,单击远程设置,在弹出的远程桌面选项中取消选择仅允许运行使用网络级别身份验证的远程桌面的计算机连接(建议) 并单击确定。
解决方法二:下载Windows安全更新
1.搜索并打开Windows更新。
2.单击检查更新下载积累的更新。
3.等待更新下载和安装。
4.重启实例以完成安装更新
解决方法三:修改注册表
针对已经更新CredSSP相关补丁的本地客户端或者服务器端,您可以手动修改注册表,也可以运行我们为您准备的PowerShell脚本。
手动修改
登录实例或者本地计算机。
1.单击开始 > 运行,输入regedit,单击确定。
2.定位到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters键,如果CredSSP或者Parameters键不存在,请新建CredSSP或者Parameters键。
3.在Parameters键下新建DWORD值AllowEncryptionOracle,并设置数据为2。
4.重启实例或者本地计算机。
脚本修改
登录实例或者本地计算机。
以管理员身份运行Windows PowerShell。
执行如下脚本。
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以获得更高的安全性。
转载来自阿里云 地址https://help.aliyun.com/knowledge_detail/71931.html?spm=a2c4g.11186631.2.15.1a89e9686shZnx