많은 WAN 및 도메인 컨트롤러 시스템 상태 백업을 수행 하는 경우 CPU 사용

이 문서는 Microsoft 기계 번역 소프트웨어를 이용하여 번역되었으며 Microsoft Community에 의한 Community Translation Framework(CTF) 기술 혹은 사람이 번역한 내용에 의하여 사후 편집될 수 있습니다. Microsoft는 Knowledge Base에 있는 모든 문서에 다양한 언어로 접근할 수 있도록 하기 위하여 기계 번역, 사람에 의한 번역 및 커뮤니티가 편집한 내용을 모두 제공합니다. 번역된 문서는 어휘, 구문 및/혹은 문법에 오류가 있을 수 있습니다. Microsoft는 번역 오류로 인한 부정확성, 오류 및/또는 손해와 이를 고객이 사용하는 데에 대하여 책임을 지지 않습니다.

이 문서의 영문 버전 보기:2789917

Active Directory 도메인 컨트롤러에서 시스템 상태 백업은 Active Directory 서비스 인터페이스 (ADSI) 클라이언트가 집계 스키마를 다운로드 하는 참조 특성 전이적으로 업데이트 되는 방법을 설명 합니다. 이 다운로드 프로세스가 잠재적으로 도메인 컨트롤러 역할 컴퓨터와 네트워크에 부하를 증가합니다.
현상
Active Directory 포리스트에 있는 모든 도메인 컨트롤러에서 스키마 파티션의 시스템 상태 백업을 수행할 때 다음과 같은 문제가 나타날 수 있습니다.
  • 쿼리 참조 Windows 기반 컴퓨터에서 Active Directory 특성을 하는 경우 도메인 컨트롤러 역할 컴퓨터의 증가 된 CPU 사용량은 다음과 같은 용도로 사용 됩니다.
    • 집계 스키마 업데이트를 검색 하려면
    • 검색 도메인 컨트롤러 변경에서 집계 스키마를 복사 하려면
  • ADSI 클라이언트는 도메인 컨트롤러에서 집계 스키마의 내용을 복사 하는 경우 네트워크 트래픽을 경량 디렉터리 액세스 프로토콜 (LDAP)를 증가 합니다.
원인
스키마 명명 컨텍스트 (NC 스키마) DSA 서명 특성이 업데이트 됩니다 때문에이 문제가 발생 하면 Windows Server 2003 서비스 팩 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 스크립트입니다.

컴파일 및 설정 또는 스키마 NC의 DSA 서명 속성에 DRA_INHIBIT_BACKUP_AUTO_STAMP 플래그를 취소 하려면 다음 예제 코드를 실행할 수도 있습니다.

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 스키마 캐시를 다운로드할 수 있는 동일한 컴퓨터를 발생할 수 있습니다.

대체에 REG DWORD 단위 HKLM\SYSTEM\CurrentControlSet\Services\ADSI\Cache 레지스트리 경로 값이 1로 설정 하 여 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 스키마의 모든 가능한 변경을 고유 하 게 식별, 프록시 특성 Windows 기반 컴퓨터는 클라이언트의 해당 도메인의 도메인 컨트롤러에서 네트워크를 통해 집계 스키마의 업데이트 된 복사본에 복사 해야 하는 시기를 결정 하는 데 사용 됩니다. ADSI 응용 프로그램의 예는 다음과 같습니다.
  • Active Directory 관리 센터 Microsoft 관리 콘솔 (MMC) 스냅인
  • Active Directory 도메인 및 트러스트 MMC 스냅인
  • Active Directory 사이트 및 서비스 MMC 스냅인
  • Active Directory 사용자 및 컴퓨터 MMC 스냅인
  • ADSI 편집 MMC 스냅인
  • DHCP MMC 스냅인
  • DNS 관리자 MMC 스냅인
  • Exchange 관리 콘솔
  • 그룹 정책 관리 MMC 스냅인
  • Squery.exe

집계 스키마의 변경 내용을 검색 하는 데 사용 되는 특성

다음 표에서 각 Windows 버전에 대 한 집계 스키마 변경 내용을 검색 하는 데 사용 되는 특성에 대 한 개요를 제공 합니다.

ADSI 클라이언트 운영 체제 버전ADSI 스키마 캐시 다운로드에 대 한 조건
Windows XP
Windows Server 2003
Windows Server 2003 R2
Windows Vista / Windows Server 2008
Windows 7 / Windows Server 2008 r 2
집계 스키마 개체의 modifyTimeStamp 특성을 업데이트
Windows 8 / Windows Server 2012
8.1 Windows / Windows Server 2012 R2
WhenChanged 스키마 특성 업데이트
프록시 속성에서 변경이 감지 되 면 ADSI 클라이언트 집계 스키마의 새 복사본을 다운로드 합니다.

Windows Server 2012 나 Windows 8 운영 체제를 실행 하는 컴퓨터 집계 스키마에서 modifyTimeStamp 특성을 쿼리 합니다. ModifyTimeStamp 업데이트 되어 Active Directory 서비스를 다시 시작 하 여 도메인 컨트롤러를 다시 시작 하거나 일부 ADSI 클라이언트 정식 스키마 변경 없음 발생 하는 경우 도메인 컨트롤러에서 집계 스키마 캐시를 다운로드할 수 인해 Active Directory 서비스를 다시 시작 합니다. 이것은 그다지 중요 한 문제를 초기에 Active Directory가 Windows Server 2008에서 다시 시작할 수 있는 서비스 때문에.

Windows 8, Windows Server 2012 또는 이후 버전을 실행 하는 컴퓨터 whenChanged 특성 스키마 NC 헤드에 쿼리 합니다. WhenChanged 특성에 영향을 주는 시스템 상태 백업 스키마 명명 컨텍스트에 대 한 DSA 서명 특성이 업데이트 될 때 업데이트 됩니다. 이 차례로 whenChanged 특성 스키마 NC 헤드에 타임 스탬프를 업데이트합니다.

도메인 컨트롤러에서 프록시 특성을 집계 스키마를 업데이트 하는 이벤트

다음 표에서 운영 체제 버전 및 특성 업데이트를 트리거하는 작업에 따라 업데이트 되는 참조 특성에 대 한 개요를 제공 합니다.

도메인 컨트롤러의 운영 체제 버전ModifyTimeStamp 집계 스키마 특성 의 업데이트에 대 한 조건WhenChanged 스키마 특성 의 업데이트에 대 한 조건
Windows Server 2003
Windows Server 2003 R2
Windows Server 2008
Windows Server 2008 R2
도메인 컨트롤러 또는 NT 디렉터리 서비스 (NTDS) 시작 스키마 확장 시스템 상태 백업 /
Windows Server 2008 r 2와 KB 2671874
Windows Server 2012
Windows Server 2012 R2
스키마 확장 시스템 상태 백업 /스키마 확장 시스템 상태 백업 /
변경이 감지 되 면 ADSI 스키마 캐시에서 다운로드를 합니다. 시스템 상태 백업에서 스키마 업데이트 whenChanged 타임 스탬프는 스키마 명명 컨텍스트의 DSA 서명 속성에 데이터를 씁니다.

ADSI 클라이언트에서 집계 스키마 캐시 업데이트를 검색합니다.

사용 하 여 CPU 사용 및 네트워크 사용을 감지 하는 네트워크 모니터 3.4 네트워크 사용을 누른 다음 결과 분석 하려면 다음이 단계를 수행 하는 도구:
  1. 도구에서는 Windows 운영 체제에 따라 다음 표시 필터 중 하나를 사용 합니다.

    참고: 이러한 필터에는 문자열을 대체 하십시오 "CN = 스키마, CN = 구성, DC = Contoso, DC = 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

    WhenChanged 또는 modifyTimeStamp 특성에 시간이 레지스트리에 저장 된 값 보다 늦은 경우 클라이언트는 업데이트 스키마 캐시를 다운로드 합니다. (이 특성은 클라이언트 운영 체제에 따라 다릅니다.)

    다음은 샘플 스크린 샷을 도구입니다.

    이 스크린샷에 예로 레지스트리에 저장 된 값 보다는 있는 경우에 modifyTimeStamp 또는 whenChanged 특성에

    촬영 화면에서 다음을 볼 수 있습니다.
    • ADSI 클라이언트 이름 8 프레임의에서 도메인 컨트롤러에 바인딩합니다.
    • 스키마 변경된 프록시 특성에 대 한 LDAP 검색 바인드를 수행 하는 초기 LDAPSASLBuffer 프레임 중 하나에 저장 됩니다.
    • 여러 LDAPSASLBuffer 프레임에서 LDAP 트래픽을 암호화 (대상 DC에서 포트 389 TCP =).
    • 도메인 컨트롤러가 계속 1460의 TCP 페이로드 길이가 많은 TCP 프레임 위에 추가 암호화 된 데이터를 보냅니다.
  2. 올바른 대화를 확인 한 후이 동작 현상이 있는 네트워크 추적에서 클라이언트에서 사용 하는 TCP 포트를 필터링 할 수 있습니다. 예제에서는 대화 65237 TCP 포트를 통해 클라이언트에서 시작 됩니다. 네트워크 모니터와 같은 필터 "tcp.port = = 65237" 사용할 수 있습니다 관련 된 프레임을 격리 시킬 수 있습니다.
  3. 이 대화에서 Microsoft Excel로 붙여넣기 모든 프레임을 복사 하는 경우 기본 집계 스키마 복사본 전송 TCP 페이로드 크기는 2 메가바이트 (MB)의 데이터에 있는지 확인할 수 있습니다. 기본 집계 스키마의 파일 크기는 인코딩 후 약 4MB입니다.

클라이언트 프로세스를 연결합니다.

이 대화를 시작 하는 클라이언트에 대 한 프로세스를 확인 하려면 시스템 모니터 (Sysmon)를 사용할 수 있습니다. Sysmon 설치 되어 있고 LDAP 연결을 로그에 기록 하도록 구성 된 경우 이벤트 ID 3 Sysmon-Windows-Microsoft 작업 이벤트 로그에 기록 됩니다. 따라서 원본 IP 및 포트 ProcessID와 이미지 이름 함께 기록 하기 때문에 네트워크 트래픽이 클라이언트 프로세스에 관련 된 수 있습니다.


로그 이름: Microsoft Windows-Sysmon/작동
원본: Microsoft Windows Sysmon
날짜: 날짜
이벤트 ID: 3
작업 범주: 네트워크 연결을 찾을 수 (규칙: 네트워크)
수준: 정보
키워드:
사용자: 시스템
컴퓨터: 컴퓨터
설명:
네트워크 연결을 찾을 수 있습니다.
일련번호: 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 &gt;컴퓨터
<Security UserID=" userid=""></Security UserID=">사용자 Id" />

<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을 기록한 경우에 기록 된 프로세스 ID를 프로세스 모니터 로그를 필터링 합니다.

스크린샷 이벤트 Sysmon에 의해 로그에 기록 하는 프로세스 ID를 프로세스 모니터 로그를 필터링 합니다.

원하는 작업을 찾을 수 있습니다.
작업경로
RegOpenKeyHKLM\SYSTEM\CurrentControlSet\Services\ADSI\Cache
RegQueryValueHKCU\Software\Microsoft\ADs\Providers\LDAP\CN = CN 집계 = 스키마, CN = 구성, DC =자식 도메인DC =루트 도메인DC = com\Time
TCP 수신호스트 이름&gt;: 포트-> <DCName> </DCName>: LDAP
RegCreateKeyHKCU\SOFTWARE\Microsoft\ADs\Providers\LDAP\CN = CN 집계 = 스키마, CN = 구성, DC =자식 도메인DC =루트 도메인DC = com
WriteFile<username>\AppData\Local\Microsoft\Windows\SchCache\</username> C:\Users\자식 도메인.루트 도메인. com.sch
참고: Windows 기반 컴퓨터 집계 스키마 캐시의 로컬 복사본을 업데이트 하는 여부를 확인 하는 한 가지 방법은 ADSI 클라이언트의 로컬 파일 시스템에 있는 *.sch 파일의 날짜 스탬프의 변경 내용을 조사 하는 것.

프로세스 모니터 로그를 매우 큰 필터를 구체화할 수 다음 해당에서 데이터를 사용할 수 있습니다.

추가 선택적 필터:
관계
경로포함SchCache
작업WriteFile
스크린 샷에서 프로세스 모니터 필터

Sysmon LDAP 연결을 로그에 기록 하도록 구성

  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 플래그를 사용 하면 한 가지 단점은 ID 2089가 잘못 표시 스키마 파티션에 시스템 상태 백업을 만드는 포리스트에 캡처되는 이벤트입니다.

샘플 이벤트 ID 2089 다음과 유사한 응용 프로그램 로그에 기록 됩니다.


이벤트 종류: 경고
이벤트 원본: NTDS 복제
이벤트 범주: 백업
이벤트 ID: 2089
날짜: 날짜
시간: 시간
사용자: 사용자 이름
컴퓨터: 컴퓨터 이름
설명:

이 디렉터리 파티션의 하지 백업 된 후에 최소한 다음 일 수 있습니다.

디렉터리 파티션:

CN = 스키마, DC = 포리스트 루트 dns 응용 프로그램 파티션

참고: 이벤트 ID 2089 기록 되지 않습니다 다른 주요 파티션의 같은 CN = 구성 도메인 디렉터리 파티션을 파티션 별 백업을 수행 하는 방법이 없기 때문에 또는. 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조 하십시오.
914034 Windows Server 2003 SP1 및 최신 도메인 컨트롤러를 백업 하지 않습니다 주어진된 시간 동안에서 NTDS 복제 이벤트 2089 기록

경고: 이 문서는 자동으로 번역되었습니다.

속성

문서 ID: 2789917 - 마지막 검토: 07/29/2015 21:13: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 KbMtko
피드백