問題描述
通過微軟的 RDP 協議用戶端 遠端連線 Windows 執行個體時報錯:出現身分識別驗證錯誤,要求的函數不受支援(The function requested is not supported)。
問題原因
微軟官方 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 對應的安全更新安裝包:
方法三:修改註冊表
針對已經更新 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 -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
以獲得更高的安全性。