如果使用者名稱已變更,LsaLookupSids 函式可能會傳回舊的使用者名稱,而不是新的使用者名稱

適用於: Microsoft Windows XP ProfessionalMicrosoft Windows Server 2003 Service Pack 2Windows Vista 旗艦版

狀況


請考慮下列情況:
  • 在網域成員電腦上,應用程式會呼叫LsaLookupSids函式,若要翻譯的使用者名稱的安全性識別項 (SID)。
  • 使用者名稱已變更網域控制站上。
在這個案例中, LsaLookupSids函式可能會傳回舊的使用者名稱,而不是新的使用者名稱。這種行為可能會導致應用程式無法正常運作。

原因


本機安全性授權 (LSA) 會快取的 SID 和網域成員電腦上的本機快取中的使用者名稱之間的對應。快取的使用者名稱與網域控制站不同步。LSA 在網域成員電腦上的會先查詢本機 SID 快取。如果現有的對應已經是本機的 SID 快取中,LSA 就會傳回快取的使用者名稱資訊,而不會查詢的網域控制站。這種行為被要改善效能。

快取項目執行逾時時間,不過機會,週期性的查詢,由應用程式保留現有的快取項目還活著的快取項目的最大存留期。

因應措施


若要解決這個問題,請停用本機的 SID 快取中,網域成員電腦上。若要執行這項操作,請參考下列步驟:
  1. 開啟 [登錄編輯程式]。

    若要在 Windows XP 中,或在 Windows Server 2003 中,請執行這項操作,按一下 [開始],按一下 [執行、 輸入regedit,然後按一下[確定]

    若要在 Windows Vista 中和較新,請執行這項操作,請按一下 [開始],開始搜尋] 方塊中輸入regedit ,然後按 ENTER 鍵。
  2. 找出並用滑鼠右鍵按一下下列登錄子機碼︰
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa
  3. 指向 [新增],然後按一下 [ DWORD 值
  4. 輸入LsaLookupCacheMaxSize,然後再按 ENTER 鍵。
  5. 以滑鼠右鍵按一下LsaLookupCacheMaxSize,,,然後按一下 [修改]
  6. 在 [數值資料] 方塊中,輸入0,然後按一下[確定]
  7. 結束登錄編輯程式。
注意LsaLookupCacheMaxSize 登錄項目設定可以儲存在本機的 SID 快取的快取對應的最大數目。預設的上限為 128。LsaLookupCacheMaxSize 登錄項目設為 0 時,會停用本機的 SID 快取。

狀態


行為是經過設計規劃。

更多的資訊


的 LSA 維護的 SID 快取,網域成員電腦上。此快取會儲存 Sid] 和 [使用者名稱之間的對應。如果 SID 資訊存在於本機快取,LSA 就會傳回快取的使用者名稱資訊,而非檢查是否已變更的使用者名稱。

本機的 SID 快取可以降低網域控制站的工作負載和網路流量。不過,本機快取和網域控制站之間的不一致可能會發生。

參考


TechNet 有涵蓋 Sid 名稱解析方法,包括此快取的詳細的說明的文章︰

http://technet.microsoft.com/en-us/library/ff428139(WS.10).aspx

如需有關LsaLookupSids函式,請造訪下列 Microsoft 網站︰