Applies To
Forefront Threat Management Gateway 2010 Enterprise Forefront Threat Management Gateway 2010 Standard

徵狀

請試想下列案例:

  • 系統管理員有表單型驗證 (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 路徑,以解決本文所述的問題。若要啟用這項功能,請依照下列步驟執行:

  1. 複製並貼入 「 記事本 」 中的下列的指令碼,然後使用"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
  2. 其中一項威脅管理閘道的陣列成員上執行指令碼。指令碼變更在威脅管理閘道設定同步處理時才會生效。沒有防火牆服務重新啟動是必要的變更才會生效。

  3. 若要回復變更,並回到原始的行為,您可以在指令碼中找出下面這一行:

    Const SE_VPS_VALUE = 1

  4. 變更在該行如下所示:

    Const SE_VPS_VALUE = 0

  5. 儲存指令碼,並再執行其中一個陣列成員上的 [指令碼。

因應措施

若要解決這個問題,請從使用者的 DN 屬性中移除正斜線或 Active Directory 的特殊字元。

狀態

Microsoft 已確認<適用於>一節中所列的 Microsoft 產品確實有上述問題。

其他相關資訊

逸出特殊字元,在 [Active Directory 屬性如下所示:

  • 逗號 (,)

  • 反斜線 (\)

  • 數字符號 (#)

  • 加號 (+)

  • 小於符號 (<)

  • 大於符號 ()

  • 分號 (;)

  • 引號 (')

  • 等號 (=)

  • 前置或尾端空格

使用者帳戶屬性的範例:

sAMAccountName: JeffSmithdisplayName: 姓氏在前,Jeff / TMGdistinguishedName: CN = Smith\,Jeff / TMG、 OU = 支援 (哥倫比亞特區) = Fabrikam,DC = com注意事項

  • 反斜線逸出字元 (\) 會自動加入的 dn。

  • 這個使用者帳戶的辨別名稱不正確屬性包含正斜線 (/) 和 Active Directory 的特殊字元逗號 (,)。

參考

如需詳細資訊,請參閱下列各項:

請參閱術語Microsoft 用來描述軟體更新。

Need more help?

Want more options?

探索訂閱權益、瀏覽訓練課程、瞭解如何保護您的裝置等等。