全部產品
Search
文件中心

:如何解決 Windows 執行個體出現身分識別驗證錯誤及更正 CredSSP

更新時間:Oct 26, 2022

問題描述

通過微軟的 RDP 協議用戶端 遠端連線 Windows 執行個體時報錯:出現身分識別驗證錯誤,要求的函數不受支援(The function requested is not supported)。

問題原因

微軟官方 2018 年 5 月更新了憑據安全性支援提供者協議(CredSSP)相關補丁和身分識別驗證請求方式。當出現以下任一情景時會出現該串連錯誤:
  • 情景一:用戶端未更新該補丁,伺服器端已更新該補丁且加密 Oracle 修正的策略為強制更新的用戶端。
  • 情景二:用戶端已更新該補丁且加密 Oracle 修正的策略為強制更新的用戶端,伺服器端未更新該補丁。
  • 情景三:用戶端已更新該補丁且加密 Oracle 修正的策略為緩解,伺服器端未更新該補丁。
    註:
    • 未更新該補丁指沒有更新自2018年5月起至今的任意版本補丁(包括最新版本補丁)。
    • 已更新該補丁指更新過自2018年5月起至今的任意版本補丁或者所有版本補丁(包括最新版本補丁)。
    • 加密 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系統 -> 此電腦,按右鍵 此電腦,選擇 更多 -> 屬性
  3. 在系統控制台中,單擊 遠程設定,在彈出的 遠端桌面 選項中取消選擇 僅允許運行使用網路層級驗證的遠端桌面的電腦串連(建議) 並單擊 確定
    警告:此操作將允許較低安全層級的遠端桌面連線。為了保證您的資訊安全,建議採用方法二

方法二 :Windows安全更新

  1. 通過 遠端連線功能 登入 Windows 執行個體。
    註:如果您的用戶端是 Windows 系統,請同樣執行如下操作。
  2. 搜尋並開啟 Windows 更新
  3. 單擊 檢查更新 下載積累的更新。
  4. 等待更新下載和安裝。
  5. 重啟執行個體以完成安裝更新。
您也可以根據自己的作業系統,在 Windows 執行個體和用戶端上安裝 CredSSP 對應的安全更新安裝包:

方法三:修改註冊表

針對已經更新 CredSSP 相關補丁的用戶端或者伺服器端,您可以手動修改註冊表,也可以運行我們為您準備的 PowerShell 指令碼。
警告
  • 使用登錄編輯程式或其他方法修改註冊表不當,可能會出現嚴重問題,您需要自行承擔修改註冊表風險。修改註冊表之前,建議您先通過 建立快照 備份資料,以免資料丟失。
  • 本方法會降低您本機電腦或執行個體的安全性,我們建議您使用 方法二

手動修改

  1. 登入執行個體或者本機電腦。
  2. 單擊 開始 -> 運行,輸入 regedit,單擊 確定
  3. 定位到 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters 鍵,如果 CredSSP 或者 Parameters 鍵不存在,請建立 CredSSP 或者 Parameters 鍵。
  4. 在 Parameters 鍵下建立 DWORD 值 AllowEncryptionOracle,並設定資料為 2
  5. 重啟執行個體或者本機電腦。

指令碼修改

  1. 登入執行個體或者本機電腦。
  2. 以管理員身份運行Windows PowerShell。
  3. 執行如下指令碼。
    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
    
  4. 重啟執行個體或者本機電腦。
    註:若您優先使用本方法修改了註冊表,隨後又更新了用戶端和ECS執行個體安全補丁,我們建議您將 AllowEncryptionOracle 的值設為 0 或者 1 以獲得更高的安全性。

相關文檔