Windows遠程桌面連接提示:出現身份驗證錯誤,要求的函數不受支持。解決辦法
The function requested is not supported
詳細報錯信息:
出現身份驗證錯誤
要求的函數不受支持
遠程計算機:IP
這可能是由於CredSSP加密Oracle修正。
若要了解詳細信息,請訪問https://go.microsoft.com/fwlink/?linkid=866660
錯誤截圖:
問題原因:
微軟官方2018年5月更新了憑據安全支持提供程序協議(CredSSP)相關補丁和身份驗證請求方式。當出現以下任一情景時會出現該連接錯誤:
情景一:本地客戶端未更新該補丁,服務器端已更新該補丁且加密Oracle修正的策略為強制更新的客戶端。
情景二:本地客戶端已更新該補丁且加密Oracle修正的策略為強制更新的客戶端,服務器端未更新該補丁。
情景三:本地客戶端已更新該補丁且加密Oracle修正的策略為緩解,服務器端未更新該補丁。
- 說明
- 未更新該補丁指沒有更新自2018 年5 月起至今的任意版本補丁(包括最新版本補丁)。
- 已更新該補丁指更新過自2018 年5 月起至今的任意版本補丁或者所有版本補丁(包括最新版本補丁)。
- 加密Oracle修正的策略路徑為計算機配置> 管理模板> 系統> 憑據分配> 加密Oracle修正。
解決方法一:服務器端允許任意版本的遠程桌面連接
警告此操作將允許較低安全級別的遠程桌面連接。為了保證信息安全,建議先使用方法一快速登錄服務器,再採用方法二,最後將方法一的配置做反向修改,關閉允許運行任意版本遠程桌面的計算機連接(較不安全)特性。
Windows Server 2008 R2
通過控制台遠程連接功能登錄Windows實例。如果是獨立服務器就讓服務商來登錄。
打開開始,右鍵單擊計算機,選擇屬性。
在系統控制面板中,單擊遠程設置,在彈出的遠程桌面選項中選擇允許運行任意版本遠程桌面的計算機連接(較不安全)並單擊確定。
Windows Server 2012 R2
通過控制台遠程連接功能登錄Windows實例。如果是獨立服務器就讓服務商來登錄。
在開始界面,右鍵單擊這台電腦,選擇屬性。
在系統控制面板中,單擊遠程設置,在彈出的遠程桌面選項中取消選擇僅允許運行使用網絡級別身份驗證的遠程桌面的計算機連接(建議)並單擊確定。
Windows Server 2016
通過控制台遠程連接功能登錄Windows實例。如果是獨立服務器就讓服務商來登錄。。
打開開始> Windows系統>此電腦,右鍵單擊此電腦,選擇更多>屬性。
在系統控制面板中,單擊遠程設置,在彈出的遠程桌面選項中取消選擇僅允許運行使用網絡級別身份驗證的遠程桌面的計算機連接(建議) 並單擊確定。
解決方法二:下載Windows安全更新
通過控制台遠程連接功能登錄Windows實例。如果是獨立服務器就讓服務商來登錄。
說明如果本地客戶端是Windows系統,請同樣執行如下更新操作。
搜索並打開Windows更新。
單擊檢查更新下載積累的更新。
等待更新下載和安裝。
重啟實例以完成安裝更新。
也可以根據自己的操作系統,在Windows實例和本地客戶端上直接安裝CredSSP對應的安全更新安裝包:
- Windows Server 2008 32位下載
- Windows Server 2008 R2 64位安全更新下載
- Windows Server 2008 R2 64位質量和安全更新下載
- Windows Server 2012 R2 64位安全更新下載
- Windows Server 2012 R2 64位質量和安全更新下載
- Windows Server 2016 64位下載
- Windows Server 1709 64位下載
解決方法三:修改註冊表
針對已經更新CredSSP相關補丁的本地客戶端或者服務器端,可以手動修改註冊表,也可以運行PowerShell腳本。
- 警告
- 使用註冊表編輯器或其他方法修改註冊表不當,可能會出現嚴重問題,您需要自行承擔修改註冊表風險。修改註冊表之前,建議您先通過創建快照備份數據,以免數據丟失。
手動修改
登錄實例或者本地計算機。
單擊開始>運行,輸入regedit,單擊確定。
定位到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters鍵,如果CredSSP或者Parameters鍵不存在,就新建CredSSP或者Parameters鍵。
在Parameters鍵下新建DWORD值AllowEncryptionOracle,並設置數據為2。
重啟實例或者本地計算機。
使用腳本修改註冊表
登錄服務器或者本地計算機。
以管理員身份運行Windows PowerShell。
執行如下腳本。
- New – Item – Path HKLM :\Software\Microsoft\Windows\CurrentVersion\Policies\System – Name CredSSP – For ce
- New – Item – Path HKLM :\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP – Name Parameters – For ce
- Get – Item – Path HKLM :\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters | New – ItemProperty – Name AllowEncryptionOracle – Value 2 – PropertyType DWORD – For ce
重啟服務器或者本地計算機。
說明若優先使用本方法修改了註冊表,隨後又更新了本地客戶端和ECS實例安全補丁,建議將AllowEncryptionOracle的值設為0或者1以獲得更高的安全性。