徵狀
請試想下列案例:
-
系統管理員有表單型驗證 (FBA) 設定在 Microsoft Forefront 威脅管理閘道 (TMG) 2010年。
-
使用者的辨別的名稱 (DN) 屬性包含正斜線 (/) 和使用中目錄輕量型目錄存取通訊協定 LDAP 定義的特殊字元。
-
使用者嘗試變更他或她的密碼。
在這個案例中,密碼變更],使用者會收到下列的一般錯誤訊息:
使用者名稱或舊密碼不正確,或是新的密碼不符合複雜性的最低需求。請再試一次。
此外,在 TMG 2010 追蹤可能表示ADsOpenObject失敗與 0x80005000 (E_ADS_BAD_PATHNAME) 或 0x80072032 (ERROR_DS_INVALID_DN_SYNTAX) 因為逸出特殊的字元,LDAP 要求中。
原因
為任何 DN 屬性包含 Active Directory 的特殊字元和正斜線字元的 Active Directory 使用者帳戶,就會發生這個問題。
解決方案
若要解決這個問題,安裝彙總套件 4 Forefront 威脅管理閘道 2010 Service Pack 2.您套用此更新之後,您可以設定使用objectguid 資訊屬性,而不是的威脅管理閘道辨別名稱不正確屬性,在使用中目錄的 LDAP 路徑,以解決本文所述的問題。若要啟用這項功能,請依照下列步驟執行:
-
複製並貼入 「 記事本 」 中的下列的指令碼,然後使用"EnableKB2888619.vbs"的檔案名稱儲存:
set curArray = CreateObject("FPC.Root").GetContainingArray()Const SE_VPS_GUID = "{143F5698-103B-12D4-FF34-1F34767DEABC}"Const SE_VPS_NAME = "UseObjectGUIDInLDAPADsPath"Const SE_VPS_VALUE = 1Sub SetValue()' Create the root obect.Dim root ' The FPCLib.FPC root objectSet root = CreateObject("FPC.Root")'Declare the other objects needed.Dim array ' An FPCArray objectDim VendorSets ' An FPCVendorParametersSets collectionDim VendorSet ' An FPCVendorParametersSet object' Obtain references to the array object' and the network rules collection.Set array = curArray Set VendorSets = array.VendorParametersSetsOn Error Resume NextSet VendorSet = VendorSets.Item( SE_VPS_GUID )If Err.Number <> 0 ThenErr.Clear' Add the itemSet VendorSet = VendorSets.Add( SE_VPS_GUID )CheckErrorWScript.Echo "New VendorSet added... " & VendorSet.NameElseWScript.Echo "Existing VendorSet found... value- " & VendorSet.Value(SE_VPS_NAME)End IfIf VendorSet.Value(SE_VPS_NAME) <> SE_VPS_VALUE ThenErr.ClearVendorSet.Value(SE_VPS_NAME) = SE_VPS_VALUEIf Err.Number <> 0 ThenCheckErrorElseVendorSets.Save false, trueCheckErrorIf Err.Number = 0 ThenWScript.Echo "Done with " & SE_VPS_NAME & ", saved!"End IfEnd IfElseWScript.Echo "Done with " & SE_VPS_NAME & ", no change!"End IfEnd SubSub CheckError()If Err.Number <> 0 ThenWScript.Echo "An error occurred: 0x" & Hex(Err.Number) & " " & Err.DescriptionErr.ClearEnd IfEnd SubSetValue
-
其中一項威脅管理閘道的陣列成員上執行指令碼。指令碼變更在威脅管理閘道設定同步處理時才會生效。沒有防火牆服務重新啟動是必要的變更才會生效。
-
若要回復變更,並回到原始的行為,您可以在指令碼中找出下面這一行:
Const SE_VPS_VALUE = 1
-
變更在該行如下所示:
Const SE_VPS_VALUE = 0
-
儲存指令碼,並再執行其中一個陣列成員上的 [指令碼。
因應措施
若要解決這個問題,請從使用者的 DN 屬性中移除正斜線或 Active Directory 的特殊字元。
狀態
Microsoft 已確認<適用於>一節中所列的 Microsoft 產品確實有上述問題。
其他相關資訊
逸出特殊字元,在 [Active Directory 屬性如下所示:
-
逗號 (,)
-
反斜線 (\)
-
數字符號 (#)
-
加號 (+)
-
小於符號 (<)
-
大於符號 ()
-
分號 (;)
-
引號 (')
-
等號 (=)
-
前置或尾端空格
使用者帳戶屬性的範例:
sAMAccountName: JeffSmithdisplayName: 姓氏在前,Jeff / TMGdistinguishedName: CN = Smith\,Jeff / TMG、 OU = 支援 (哥倫比亞特區) = Fabrikam,DC = com注意事項
-
反斜線逸出字元 (\) 會自動加入的 dn。
-
這個使用者帳戶的辨別名稱不正確屬性包含正斜線 (/) 和 Active Directory 的特殊字元逗號 (,)。
參考
如需詳細資訊,請參閱下列各項:
請參閱術語Microsoft 用來描述軟體更新。