重裝 WAN 和網域控制站執行系統狀態備份時的 CPU 使用率

請注意--重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,且可能由 Microsoft Community 利用 Community Translation Framework技術或人工進行事後編修。翻譯過程並無專業譯者參與。Microsoft 同時提供使用者人為翻譯、機器翻譯及社群編修後的機器翻譯三種版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,所有翻譯文章都可能不盡完美,內容都可能出現詞彙、語意或文法上的錯誤。就翻譯內容之不正確或錯誤,或客戶因使用翻譯內容所產生的任何損害,微軟不負擔任何責任。Microsoft將依合理的商業努力不斷地更新機器翻譯軟體和工具,以期能為使用者提供更好的服務。

按一下這裡查看此文章的英文版本:2789917

本文說明如何由 Active Directory 網域控制站的系統狀態備份可轉移更新會造成使用中目錄服務介面 」 (ADSI) 用戶端下載彙總的結構描述的參考屬性。此下載程序可能會增加網域控制站角色的電腦和其下的網路上的負載。
徵狀
當您在 Active Directory 樹系中任何網域控制站上執行的架構磁碟分割的系統狀態備份時,可能會發生下列問題:
  • 當 Windows 電腦查詢參考 Active Directory 屬性 (attribute) 網域控制站角色電腦 CPU 使用率的增加適用於下列用途:
    • 若要偵測更新彙總的結構描述
    • 若要複製彙總的結構描述,從網域控制站,如果變更偵測到
  • 當 ADSI 用戶端從網域控制站中複製彙總的結構描述的內容,請增加網路上的輕量型目錄存取通訊協定 (LDAP) 流量。
發生的原因
之所以發生這個問題,是因為DSA 簽章屬性的結構描述命名內容 (架構 NC) 上的更新當您執行正在執行 Windows Server 2003 Service Pack 1 (SP1) 或更新版本的網域控制站的系統狀態備份。

DSA 簽章屬性的更新時的系統狀態備份,會在兩個參考的屬性上更新日期戳記。其中一個屬性位於 nc 表頭,結構描述,另且位於CN = 聚合函數,CN = 結構描述物件。

ADSI 應用程式和指令碼執行的 Windows 用戶端查詢來偵測彙總的結構描述的更新這些參考屬性。當它們偵測到這樣的更新時,ADSI 用戶端會從網域控制站,透過 LDAP 讀取下載彙總的結構描述的更新的複本。

附註
如需有關偵測與 LDAP 查詢和網路 I/O 相關的彙總結構描述的詳細資訊,請參閱 < 其他資訊 > 一節。
因應措施
伺服器端的因應措施和用戶端的因應措施提供部分的浮雕減少,但無法消除的 ADSI 用戶端下載彙總的結構描述的次數。用戶端和伺服器端的因應措施可能會彼此分別獨立實作的。這表示,您可以在同一時間執行的用戶端因應措施只、 伺服器端變更或這兩種因應措施。

伺服器端的因應措施



編輯 DSA 簽章

DSA 簽章屬性的更新時,防止架構磁碟分割的系統狀態備份組成伺服器端的因應措施。DSA 簽章屬性包含DRA_INHIBIT_BACKUP_AUTO_STAMP旗標來判斷系統狀態備份是否更新此屬性。不過,由於DSA 簽章屬性大型的二進位格式儲存,就無法變更輕鬆地藉由使用 LDP 等工具。EXE 或 ADSIEDIT。MSC。

要解決這個問題,請執行 Windows PowerShell 指令碼或更新架構磁碟分割的DSA 簽章屬性時,防止系統狀態備份的可執行檔和依次架構 nc 表頭的whenChanged屬性和whenModified屬性在CN = 彙總物件。

請參閱 編輯 dSASignature 屬性 在 Microsoft 指令碼中心網站上的 PowerShell 指令碼。

您也可以編譯並執行下列的範例程式碼,以設定或清除DRA_INHIBIT_BACKUP_AUTO_STAMP中的旗標架構 NC 的DSA 簽章屬性。

不論是否使用 PowerShell 或以程式設計方式的修正程式,沒有負面的副作用,啟用DRA_INHIBIT_BACKUP_AUTO_STAMP旗標。< 其他資訊 > 一節會詳細說明此副作用。

注意這個範例程式碼必須在網域控制站上的結構描述管理安全性內容下執行。

並確認其定義是最新狀態

最後,您需要確定 thatIPv4 並 IPv6 子網路、 網站和子網路對站台定義是最新的 Active Directory 樹系中涵蓋所有的子網路,您的企業中所有的樹系。這麼做可讓執行 ADSI 應用程式所查詢的 surethat 電腦,並複製彙總的結構描述的更新的版本執行這項操作從最佳站台的網域控制站。如需有關如何設定站台設定的詳細資訊,請前往下列 Microsoft TechNet 網站:

範例程式碼

//+-------------------------------------------------------------------------////// File: dsasignaturemod.c//// This is a sample program for setting or clearing the// DRA_INHIBIT_BACKUP_AUTO_STAMP flag in the dSASignature// attribute on the schema NC.////--------------------------------------------------------------------------#include <windows.h>#include <winldap.h>#include <winber.h>#include <strsafe.h>#include <stdio.h>#include <conio.h>#define CHECKLDAP(result, op) if (result) { printf("%s failed with LDAP error=0x%x(%d)\n", op, result, result); goto Exit; }#define CHECKLDAPLE(result, op) if (!result) { printf("%s failed with LDAP error=0x%x(%d)\n", op, LdapGetLastError(), LdapGetLastError()); goto Exit; }//// Type definitions for the dsaSignature attribute//#define DRA_INHIBIT_BACKUP_AUTO_STAMP (0x1)typedef struct _BACKUP_NC_HEAD_DSA_SIGNATURE_STATE_V1 {DWORD dwFlags;LONGLONG BackupErrorLatencySecs;UUID dsaGuid;} BACKUP_NC_HEAD_DSA_SIGNATURE_STATE_V1;typedef struct _BACKUP_NC_HEAD_DSA_SIGNATURE_STATE {DWORD dwVersion;DWORD cbSize;union{BACKUP_NC_HEAD_DSA_SIGNATURE_STATE_V1 V1;};} BACKUP_NC_HEAD_DSA_SIGNATURE_STATE;// Whether we are setting or clearing the bitBOOL gfSet = FALSE;// Whether we are querying the bitBOOL gfGet = FALSE;// Whether we are automating and want to skip PromptForOK()BOOL skipPrompt = FALSE;// Copy of the schema NC DNLPWSTR pszSchemaNCCopy = NULL;BOOL PromptForOK(){int prompt;BOOL ret = skipPrompt;printf("\n");printf("This program is about to %s the DRA_INHIBIT_BACKUP_AUTO_STAMP flag in\n", gfSet ? "set" : "clear");printf("the dSASignature attribute on the following directory NC:\n");printf("\n");printf(" %S\n", pszSchemaNCCopy);printf("\n");if (!skipPrompt) {printf("Do you wish to continue? (Y\\N)");prompt = _getch();printf("\n");ret = (prompt == 'Y' || prompt == 'y') ? TRUE : FALSE;}return ret;}void Usage(){CHAR szExeName[MAX_PATH];ZeroMemory(szExeName, sizeof(szExeName));GetModuleFileNameA(NULL, szExeName, ARRAYSIZE(szExeName));printf("Usage:\n");printf("\n");printf("%s [/get | /set | /clear] [/auto]\n", szExeName);printf("\n");printf(" /get - queries current state of the DRA_INHIBIT_BACKUP_AUTO_STAMP flag\n");printf(" /set - sets the DRA_INHIBIT_BACKUP_AUTO_STAMP flag\n");printf(" /clear - clears the DRA_INHIBIT_BACKUP_AUTO_STAMP flag\n");printf(" /auto - skips the prompt for proceeding (for automation purposes)\n");printf("\n");}BOOL ParseArgs(int argc, __in char ** argv){BOOL ret = FALSE;if (argc >= 2){if (!_stricmp("/get", argv[1])) {gfGet = TRUE;ret = TRUE;}else if (!_stricmp("/set", argv[1])) {gfSet = TRUE;ret = TRUE;}else if (!_stricmp("/clear", argv[1])) {gfSet = FALSE;ret = TRUE;}if (argc >= 3){if (!_stricmp("/auto", argv[2])) {skipPrompt = TRUE;}}}return ret;} void __cdecl main(int argc, __in char ** argv){BOOL fFoundDSASignature = FALSE;BOOL fFlagSet = FALSE;LDAP* ldap = NULL;ULONG cb = 0;ULONG cch = 0;ULONG result = 0;LPWSTR pszAttrs[2] = { 0 };LPWSTR* ppszSchemaNC = NULL;LDAPMod mod;LDAPMod* mods[2];LDAPMessage* pldapMsg = NULL;LDAPMessage* pldapResults = NULL;struct berval valMod;struct berval* vals[2];struct berval** val = NULL;BACKUP_NC_HEAD_DSA_SIGNATURE_STATE dsaSignature;ZeroMemory(&dsaSignature, sizeof(dsaSignature));if (!ParseArgs(argc, argv)) {Usage();return;}printf("\n");//// Init connection handle//ldap = ldap_init(NULL, LDAP_PORT);CHECKLDAPLE(ldap, "ldap_init");//// Connect to DC//result = ldap_connect(ldap, NULL);CHECKLDAP(result, "ldap_connect");//// Retrieve schema NC name//pszAttrs[0] = L"schemaNamingContext";pszAttrs[1] = NULL;result = ldap_search_sW(ldap,NULL,LDAP_SCOPE_BASE,L"(objectclass=*)",pszAttrs,0,&pldapResults);CHECKLDAP(result, "ldap_search_s for schemaNamingContext");pldapMsg = ldap_first_entry(ldap, pldapResults);CHECKLDAPLE(pldapMsg, "ldap_first_entry");//// Make a copy of the schema NC name//ppszSchemaNC = (LPWSTR*)ldap_get_valuesW(ldap, pldapMsg, L"schemaNamingContext");cch = wcslen(ppszSchemaNC[0]) + 1;pszSchemaNCCopy = (LPWSTR)malloc(cch * sizeof(WCHAR));StringCchCopy(pszSchemaNCCopy, cch, ppszSchemaNC[0]);ldap_value_free(ppszSchemaNC);ppszSchemaNC = NULL;ldap_msgfree(pldapResults);pldapResults = NULL;//// Bind to the DC//result = ldap_bind_s(ldap, pszSchemaNCCopy, NULL, LDAP_AUTH_NEGOTIATE);CHECKLDAP(result, "ldap_bind_s");//// Retrieve current value of the dSASignature attribute//pszAttrs[0] = L"dSASignature";pszAttrs[1] = NULL;result = ldap_search_sW(ldap,pszSchemaNCCopy,LDAP_SCOPE_BASE,L"(objectclass=*)",pszAttrs,0,&pldapResults);CHECKLDAP(result, "ldap_search_s for dSASignature");pldapMsg = ldap_first_entry(ldap, pldapResults);CHECKLDAPLE(pldapMsg, "ldap_first_entry");//// Make a copy of the dSASignature attribute.//val = (struct berval**)ldap_get_values_len(ldap, pldapMsg, L"dSASignature");// Make sure that the value was there and seems to be the correct size.if (val && val[0]) {if (val[0]->bv_len == sizeof(BACKUP_NC_HEAD_DSA_SIGNATURE_STATE)) {memcpy(&dsaSignature, val[0]->bv_val, val[0]->bv_len);fFoundDSASignature = TRUE;}}ldap_value_free_len(val);val = NULL;ldap_msgfree(pldapResults);pldapResults = NULL;//// Sanity check//if (!fFoundDSASignature ||dsaSignature.dwVersion != 1) {printf("The dSASignature attribute was either not\n");printf("found or was in an unexpected format.\n");goto Exit;}//// Cache whether the flag is set already or not//fFlagSet = (DRA_INHIBIT_BACKUP_AUTO_STAMP & dsaSignature.V1.dwFlags) ? TRUE : FALSE;//// If query-only mode, display current setting and leave//if (gfGet) {printf("The target directory %s have the DRA_INHIBIT_BACKUP_AUTO_STAMP set.\n",fFlagSet ? "DOES" : "DOES NOT");goto Exit;}//// If doing a modification, see whether there is anything to do.//if (gfSet && fFlagSet) {printf("The /set operation was specified but the target directory already\n");printf(" has the flag set. Exiting with no changes.\n");goto Exit;}else if (!gfSet && !fFlagSet) {printf("The /clear operation was specified but the target directory already\n");printf(" has the flag cleared. Exiting with no changes.\n");goto Exit;}//// Yes there is work to do; prompt the admin// for approval before you continue.//if (!PromptForOK()) {goto Exit;}//// Set or clear the bit in our local copy//if (gfSet) {dsaSignature.V1.dwFlags |= DRA_INHIBIT_BACKUP_AUTO_STAMP;}else {dsaSignature.V1.dwFlags &= (~DRA_INHIBIT_BACKUP_AUTO_STAMP);}//// Prepare for the modify//ZeroMemory(&valMod, sizeof(valMod));valMod.bv_len = sizeof(dsaSignature);valMod.bv_val = (PCHAR)&dsaSignature;vals[0] = &valMod;vals[1] = NULL;ZeroMemory(&mod, sizeof(mod));mod.mod_op = LDAP_MOD_REPLACE | LDAP_MOD_BVALUES;mod.mod_type = L"dSASignature";mod.mod_vals.modv_bvals = vals;mods[0] = &mod;mods[1] = NULL;//// And do it://result = ldap_modify_s(ldap,pszSchemaNCCopy,mods);CHECKLDAP(result, "ldap_modify_s for dSASignature");printf("\n");printf("Modification succeeded!\n");Exit:if (pszSchemaNCCopy) {free(pszSchemaNCCopy);}if (ldap) {ldap_unbind(ldap);}printf("\n");return;}

範例程式輸出

範例程式輸出如下:
C:\>dsasignaturemod.exe /get The target directory DOES NOT have the DRA_INHIBIT_BACKUP_AUTO_STAMP set.
C:\>dsasignaturemod.exe /set  This program is about to set the DRA_INHIBIT_BACKUP_AUTO_STAMP flag inthe dSASignature attribute on the following directory NC:     CN=Schema,CN=Configuration,DC=rootdomain,DC=com Do you wish to continue? (Y\N) Modification succeeded!
C:\>dsasignaturemod.exe /set /auto  This program is about to set the DRA_INHIBIT_BACKUP_AUTO_STAMP flag inthe dSASignature attribute on the following directory NC:     CN=Schema,CN=Configuration,DC=rootdomain,DC=com  Modification succeeded!
C:\>dsasignaturemod.exe /get The target directory DOES have the DRA_INHIBIT_BACKUP_AUTO_STAMP set.
C:\>dsasignaturemod.exe /clear  This program is about to clear the DRA_INHIBIT_BACKUP_AUTO_STAMP flag inthe dSASignature attribute on the following directory NC:     CN=Schema,CN=Configuration,DC=rootdomain,DC=com Do you wish to continue? (Y\N) Modification succeeded!
C:\>dsasignaturemod.exe /clear /auto  This program is about to clear the DRA_INHIBIT_BACKUP_AUTO_STAMP flag inthe dSASignature attribute on the following directory NC:     CN=Schema,CN=Configuration,DC=rootdomain,DC=com  Modification succeeded!

用戶端因應措施

最佳化的網域控制站選取

有些應用程式明確地連接到特定網域控制站,然後再從這個網域控制站中下載更新的結構描述快取。不過,應用程式通常讓尋找特定的 LDAP 命名內容的最佳的網域控制站的網域控制站定位器。用戶端可能會遇到明顯的延遲,更新架構快取,因為他們透過低速網路連線目標網域控制站。這是有可能發生跨樹系界限。您的目標應該永遠是從最接近的網域控制站,根據網路下載結構描述快取。

因應措施

設定執行 Windows Vista,Windows Server 2008 或用於彙總的結構描述中的每個機器為基礎的存放區的較新版本的電腦組成的用戶端因應措施。

在 Windows xp 的電腦上每台機器存放區使用的彙總結構描述快取。這表示只要任一使用者具有系統管理權限授與共用的彙總的結構描述下載到本機電腦,登入的所有使用者之間,或在檔案系統和登錄的本機存放區有寫入權限授與已驗證的使用者。否則,結構描述快取必須在每個 ADSI 工作階段期間,進入 RAM 下載,而且已被丟棄,ADSI 工作階段結束後。

在 Windows Vista 及之後的版本,ADSI 架構快取中的每個使用者存放區實作。雖然安全性改進每位使用者的快取,遠端桌面通訊協定 (RDP) 或 「 終端機伺服器AQ、 資訊站,或其他多使用者的系統登入的每個唯一使用者可能會導致下載 ADSI 架構快取在同一部電腦。

您可以強制後援,藉由設定登錄 DWORD PerMachine 值為 1 的 HKLM\SYSTEM\CurrentControlSet\Services\ADSI\Cache 登錄路徑中執行 Windows Vista 以及更新版本的電腦上的每台機器存放區設定。此外,您必須將 %systemroot%\SchCache 和 HKLM\Software\Microsoft\ADs\Providers\LDAP 的 「 寫入 」 權限授予經驗證的使用者。如需詳細資訊,請參閱 ADSI 及使用者帳戶控制.

附註使用 「 每台電腦 」 存放區是在使用者登出時,會刪除使用者的漫遊設定檔的情況下特別有用。這類使用者必須建立新的漫遊設定檔,而且可能需要下載彙總的結構描述。會刪除漫遊設定檔的特定案例包括下列各項:
  • 設定為使用強制使用者設定檔登入的使用者。
  • 負責的 [刪除超過所指定天數在系統啟動的使用者設定檔] 原則的使用者。
  • 負責的 [刪除漫遊設定檔的快取的複本] 原則的使用者。
  • 使用者,其快取設定檔已刪除的指令碼或工具,例如 DELPROF。EXE 或同等權限。
其他相關資訊

ADSI 的相關資訊

ADSI 用戶端是要符合元件物件模型 (COM) 存取 Active Directory 的程式設計實作。

ADSI 應用程式和指令碼執行的 windows 電腦會維持彙總的 Active Directory 結構描述的本機複本。在每個 ADSI 用戶端工作階段開始,變更會檢查參考的結構描述屬性。因為沒有明確的屬性,在 Active Directory 中唯一識別所有可能的變更至 Active Directory 的結構描述,則 proxy 屬性用來決定當 Windows 電腦應該從用戶端的個別網域的網域控制站透過網路中複製彙總的結構描述的更新的複本。ADSI 應用程式的範例包括下列各項:
  • 使用中目錄管理中心 Microsoft 管理主控台 (MMC) 嵌入式管理單元
  • 使用中的目錄網域及信任的 MMC 嵌入式管理單元
  • Active Directory 站台及服務 MMC 嵌入式管理單元
  • Active Directory 使用者及電腦 MMC 嵌入式管理單元
  • ADSI 編輯 MMC 嵌入式管理單元
  • DHCP MMC 嵌入式管理單元
  • [DNS 管理員] MMC 嵌入式管理單元
  • Exchange 管理主控台
  • 群組原則管理 MMC 嵌入式管理單元
  • Squery.exe

用來偵測彙總的結構描述變更的屬性

下表提供用來偵測每個 Windows 版本的彙總結構描述變更的屬性的概觀:

ADSI 用戶端作業系統版本ADSI 結構描述快取下載的條件
Windows XP
Windows 2003 Server
Windows Server 2003 R2
Windows Vista / Windows Server 2008
Windows 7 / Windows Server 2008 R2
彙總結構描述物件上的modifyTimeStamp屬性的更新
Windows 8 / Windows Server 2012
Windows 8.1 / Windows Server 2012 R2
WhenChanged結構描述屬性的更新
如果其中一個 proxy 屬性上,偵測到變更,ADSI 用戶端就會下載一份新彙總結構描述。

早於 Windows 8 或 Windows Server 2012 執行作業系統的電腦會查詢彙總的結構描述的modifyTimeStamp屬性。ModifyTimeStamp已更新的 Active Directory 服務重新啟動,以便重新啟動網域控制站,或重新啟動 Active Directory 服務會造成某些 ADSI 用戶端下載彙總結構描述快取從網域控制站上,已經發生沒有合法的結構描述變更時。這在初期,因為 Active Directory 可重新啟動的服務在 Windows Server 2008 中是問題的更少的。

正在執行 Windows 8、 Windows Server 2012 或更新版本的電腦會查詢架構 nc 表頭的whenChanged屬性。WhenChanged屬性會有副作用的系統狀態備份更新結構描述的命名內容的DSA 簽章屬性時正在更新。這個步驟會依序更新結構描述的 nc 表頭的whenChanged屬性上的時間戳記。

更新彙總結構描述 proxy 屬性在網域控制站上的事件

下表提供根據作業系統版本和觸發屬性更新的作業會更新 「 參考 」 屬性的概觀。

網域控制站作業系統版本更新modifyTimeStamp 的彙總結構描述屬性的條件更新的 whenChanged 結構描述屬性的條件
Windows 2003 Server
Windows Server 2003 R2
Windows 2008 Server
Windows Server 2008 R2
網域控制站或 NT 目錄服務 」 (NTDS) 啟動 架構延伸模組 / 系統狀態備份
以 KB 的 Windows Server 2008 R2 2671874
Windows Server 2012
Windows Server 2012 R2
架構延伸模組 / 系統狀態備份架構延伸模組 / 系統狀態備份
如果偵測到變更時,就必須下載 ADSI 架構快取。系統狀態備份將資料寫入DSA 簽章屬性的結構描述未更新的whenChanged時間戳記會導致結構描述命名內容中。

偵測 ADSI 用戶端的彙總結構描述快取更新

若要偵測高 CPU 與網路用量,使用 網路監視器 3.4 擷取網路使用狀況],然後執行下列步驟來分析結果的工具:
  1. 您可以使用其中一個下列的顯示篩選器在工具中,視您的 Windows 作業系統而定。

    注意這些篩選器,請取代的字串"CN = 結構描述,CN = 設定,DC = Contoso (哥倫比亞特區) = com 」 與 [Active Directory 架構命名內容有問題的辨別的名稱 (DN) 路徑。
    Windows 7 和較早的用戶端
    您可以使用下列的顯示篩選查詢的彙總結構描述物件中擷取網路流量的modifyTimeStamp屬性值:
    (LDAPMessage.SearchRequest.BaseObject.OctetStream == "CN=Aggregate,CN=Schema,CN=Configuration,DC=Contoso,DC=com" AND LDAPMessage.SearchRequest.Attributes.Attribute.OctetStream == "modifyTimeStamp") OR(LDAPMessage.SearchResultEntry.ObjectName.OctetStream == "CN=Aggregate,CN=Schema,CN=Configuration,DC=Contoso,DC=com" AND LDAPMessage.SearchResultEntry.Attributes.PartialAttribute.Type.OctetStream == "modifyTimeStamp")
    Windows 8 和更新版本的用戶端

    您可以使用下列的顯示篩選查詢的結構描述中的擷取的網路流量的 nc 表頭的whenChanged屬性值:
    (LDAPMessage.SearchRequest.BaseObject.OctetStream == "CN=Schema,CN=Configuration,DC=Contoso,DC=com" AND LDAPMessage.SearchRequest.Attributes.Attribute.OctetStream == "whenChanged") OR (LDAPMessage.SearchResultEntry.ObjectName.OctetStream == "CN=Schema,CN=Configuration,DC=Contoso,DC=com" AND LDAPMessage.SearchResultEntry.Attributes.PartialAttribute.Type.OctetStream == "whenChanged")
    根據預設,這個值被與下列機碼中的用戶端的登錄中的時間值:

    HKEY_CURRENT_USER\Software\Microsoft\ADs\Providers\LDAP\CN=Aggregate,CN=Schema,CN=Configuration,DC=<root domain>,DC=com

    如果modifyTimeStampwhenChanged屬性中的時間晚於儲存在登錄中的值,用戶端就會下載更新的結構描述快取。(這個屬性取決於用戶端作業系統)。

    以下是此工具的範例螢幕擷取畫面:

    這個螢幕擷取畫面是範例,如果 modifyTimeStamp 或 whenChanged 屬性中的時間是晚於儲存在登錄中的值

    您可以從螢幕擷取畫面中,看到下列項目:
    • ADSI 用戶端繫結至框架名稱 8 的網域控制站中。
    • 結構描述已變更之 proxy 屬性的 LDAP 搜尋儲存在其中一個,請依照下列繫結的早期 LDAPSASLBuffer 框架中。
    • LDAP 傳輸以加密的數個 LDAPSASLBuffer 畫面 (目標在 DC 上的連接埠 = TCP 389 等)。
    • 網域控制站會繼續透過 TCP 裝載長度為 1460年的許多 TCP 框架傳送額外的加密的資料。
  2. 您已找出正確的交談後網路追蹤中,一直發生這種情形,您可以在用戶端正在使用的 TCP 連接埠上篩選]。在範例中,是從用戶端透過 TCP 連接埠 65237 啟始對話。網路監視器篩選器,例如"tcp.port = = 65237" 可以用來找出相關的框架。
  3. 如果您在這個對話並且貼在 Microsoft Excel 中複製所有的框架,您會看到預設的彙總結構描述複製在網路上有 TCP 承載大小為 2 mb 的資料。預設彙總的結構描述的檔案大小是編碼之後的大約 4 MB。

相互關聯至用戶端處理序的網路流量

您可以使用 [系統監視器 (Sysmon) 來決定啟動此交談的用戶端上的處理序。當 Sysmon 已安裝並設定為記錄的 LDAP 連線時,會會 Microsoft-Windows-Sysmon 作業的事件日誌中記錄事件識別碼 3。這可讓您關聯至用戶端處理序的網路流量,因為它會記錄來源 IP 和連接埠,以及其中 ProcessID 和影像名稱。


記錄檔名稱: Microsoft Windows-Sysmon/操作
來源: Microsoft Windows Sysmon
日期: 日期
事件識別碼: 3
工作類別: 網路偵測到的連線 (規則: NetworkConnect)
層級: 資訊
關鍵字:
使用者: 系統
電腦: 電腦
描述:
偵測到的網路連線:
SequenceNumber: 206
UtcTime: UtcTime
ProcessGuid: {ProcessGuid}
其中 ProcessId: 3220
影像: C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
使用者: 使用者名稱
通訊協定: tcp
啟始:,則為 true
SourceIsIpv6: false
SourceIp: SourceIp
SourceHostname: ADSIClient
SourcePort: 65237
SourcePortName:
DestinationIsIpv6: false
DestinationIp: DestinationIp
DestinationHostname: DestinationHostname
DestinationPort: 389
DestinationPortName: ldap
事件的 Xml:

<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<System>
<Provider name="Microsoft-Windows-Sysmon" guid=""></Provider></System></Event>"{提供者名稱}" />
<EventID>3</EventID>
<Version>4</Version>
<Level>4</Level>
<Task>3</Task>
<Opcode>0</Opcode>
<Keywords>0x8000000000000000</Keywords>
<TimeCreated SystemTime=" systemtime=""></TimeCreated SystemTime=">時間" />
<EventRecordID>39</EventRecordID>
<Correlation></Correlation>
<Execution processid="1140" threadid="3492"></Execution>
<Channel>Microsoft Windows-Sysmon/操作</Channel>
<>r >電腦
<Security UserID=" userid=""></Security UserID=">使用者識別碼" />

<EventData>
<Data name="SequenceNumber">206</Data>
<Data name="UtcTime"></Data></EventData>時間
<Data name="ProcessGuid">{</Data>ProcessGuid}
<Data name="ProcessId">3220</Data>
<Data name="Image">C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe</Data>
<Data name="User"></Data>使用者
<Data name="Protocol">tcp</Data>
<Data name="Initiated">則為 true</Data>
<Data name="SourceIsIpv6">false</Data>
<Data name="SourceIp"></Data>SourceIp
<Data name="SourceHostname"></Data>SourceHostname
<Data name="SourcePort">65237</Data>
<Data name="SourcePortName">
</Data>
<Data name="DestinationIsIpv6">false</Data>
<Data name="DestinationIp"></Data>DestinationIp
<Data name="DestinationHostname"></Data>DestinationHostname
<Data name="DestinationPort">389</Data>
<Data name="DestinationPortName">ldap</Data>

登入用戶端的處理程序監視器

登入用戶端的處理程序監視器提供豐富的內容資訊。篩選程序監視器上的記錄檔會記錄在事件 Sysmon 所記錄的處理程序識別碼。

螢幕擷取畫面篩選的處理程序監視器上的記錄檔記錄在 「 事件 Sysmon 所記錄的處理程序識別碼

您會發現下列感興趣的作業。
作業路徑
RegOpenKeyHKLM\SYSTEM\CurrentControlSet\Services\ADSI\Cache
RegQueryValueHKCU\Software\Microsoft\ADs\Providers\LDAP\CN = 聚合函數,CN = 結構描述,CN = 設定,DC =子網域DC =根網域DC = com\Time
TCP 接收主機名稱>: 連接埠-> <DCName> </DCName>: LDAP
RegCreateKeyHKCU\SOFTWARE\Microsoft\ADs\Providers\LDAP\CN = 聚合函數,CN = 結構描述,CN = 設定,DC =子網域DC =根網域DC = com
WriteFileC:\Users\<username>\AppData\Local\Microsoft\Windows\SchCache\</username>子網域.根網域。 com.sch
注意若要檢查 windows 的電腦是否要更新彙總結構描述快取的本機複本的方法之一是要監看的 *.sch 檔案,ADSI 用戶端的本機檔案系統中的日期戳記中的變更。

您可以使用下列表格中的資料,以精簡您的篩選條件,為非常大的處理程序監視器記錄檔。

其他選擇性的篩選器:
資料行關聯
路徑包含SchCache
作業WriteFile
螢幕擷取畫面是處理程序監視器篩選器

若要記錄的 LDAP 連線設定 Sysmon

  1. 下載 Sysmon 在用戶端。
  2. 建立新的文字檔,以便 Sysmon 組態、 將檔案儲存為 Sysmonconfig.xml,並加入下列內容:

    <Sysmon schemaversion="2.0">  <!-- Capture all hashes -->  <HashAlgorithms>*</HashAlgorithms>  <EventFiltering>  <!-- Log all drivers except if the signature -->  <!-- contains Microsoft or Windows -->  <DriverLoad onmatch="exclude">  <Signature condition="contains">microsoft</Signature>  <Signature condition="contains">windows</Signature>  </DriverLoad>  <!-- Do not log process termination -->  <ProcessTerminate onmatch="include" />  <!-- Log network connection if the destination port equal 443 -->  <NetworkConnect onmatch="include">  <DestinationPort>389</DestinationPort><DestinationPort>636</DestinationPort><DestinationPort>3268</DestinationPort><DestinationPort>3269</DestinationPort>  </NetworkConnect>  </EventFiltering></Sysmon>
  3. 執行下列命令以安裝 Sysmon:
    Sysmon-i sysmonconfig.xml

啟用 DRA_INHIBIT_BACKUP_AUTO_STAMP 旗標的副作用

啟用DRA_INHIBIT_BACKUP_AUTO_STAMP旗標的其中一項副作用是該識別碼 2089年會錯誤地表示不會被架構磁碟分割擷取正在建立系統狀態備份的樹系中的事件。

應用程式記錄檔會記錄類似下列的範例事件識別碼 2089年:


事件類型: 警告
事件來源: NTDS 複寫
事件類別目錄: 備份
事件識別碼: 2089年
日期: 日期
時間: 時間
使用者: 使用者名稱
電腦: 電腦名稱
描述:

這個目錄磁碟分割有尚未備份後在最低下列天數。

目錄磁碟分割:

CN = 結構描述,DC = 樹系根 dns 應用程式分割

注意事件識別碼 2089年不會如記錄的其他索引鍵的資料分割CN = 設定,或網域目錄分割,因為沒有執行特定磁碟分割的備份方法。如需詳細資訊,請參閱下列微軟知識庫文件:
914034 如果 Windows Server 2003 SP1 和更新版本的網域控制站不會備份在某特定的期間,會記錄 NTDS 複寫事件 2089

內容

文章識別碼:2789917 - 最後檢閱時間:07/30/2015 00:10:00 - 修訂: 3.0

Windows Server 2012 R2 Datacenter, Windows Server 2012 R2 Standard, Windows Server 2012 R2 Essentials, Windows Server 2012 Datacenter, Windows Server 2012 Standard, Windows Server 2012 Essentials, Windows Server 2008 R2 Datacenter, Windows Server 2008 R2 Enterprise, Windows Server 2008 R2 Standard

  • kbexpertiseadvanced kbsurveynew kbbug kbprb kbtshoot kbmt KB2789917 KbMtzh
意見反應