Controlador WAN e domínio intenso uso da CPU ao executar backups de estado do sistema

IMPORTANTE: Este artigo foi traduzido pelo software de tradução automática da Microsoft e eventualmente pode ter sido editado pela Microsoft Community através da tecnologia Community Translation Framework (CTF) ou por um tradutor profissional. A Microsoft oferece artigos traduzidos automaticamente por software, por tradutores profissionais e editados pela comunidade para que você tenha acesso a todos os artigos de nossa Base de Conhecimento em diversos idiomas. No entanto, um artigo traduzido pode conter erros de vocabulário, sintaxe e/ou gramática. A Microsoft não é responsável por qualquer inexatidão, erro ou dano causado por qualquer tradução imprecisa do conteúdo ou por seu uso pelos nossos clientes.

Clique aqui para ver a versão em Inglês deste artigo: 2789917

Este artigo descreve como backups de estado do sistema por controladores de domínio do Active Directory transitivamente atualizam atributos de referência que fazer com que os clientes do Active Directory Service Interfaces (ADSI) fazer o download do esquema agregado. Esse processo de download potencialmente aumenta a carga nos computadores de função de controlador de domínio e a rede subjacente.
Sintomas
Os seguintes problemas podem ocorrer quando você executar um backup de estado do sistema da partição de esquema em qualquer controlador de domínio em uma floresta do Active Directory:
  • Maior utilização da CPU em computadores de função de controladores de domínio quando a referência de consulta de computadores com o Windows Active Directory atributos que são usados para as seguintes finalidades:
    • Para detectar as atualizações de esquema agregado
    • Para copiar o esquema agregado de controladores de domínio se uma alteração é detectada
  • Maior tráfego Lightweight Directory Access Protocol (LDAP) na rede quando os clientes ADSI copiem o conteúdo do esquema agregado de controladores de domínio.
Causa
Esse problema ocorre porque o atributo de Assinatura DSA é atualizado no contexto de nomeação de esquema (schema NC) quando você executa um backup de estado do sistema de um controlador de domínio que esteja executando o Windows Server 2003 Service Pack 1 (SP1) ou uma versão posterior.

Quando o atributo de Assinatura DSA é atualizado por um backup de estado do sistema, carimbos de data são atualizados em dois atributos de referência. Um desses atributos está localizado no cabeçalho NC esquema e o outro está localizado na CN = agregado, CN = Schema objeto.

Clientes do Windows que execute scripts e aplicativos de ADSI consultam esses atributos de referência para detectar as atualizações de esquema agregado. Quando detectam essas atualizações, o ADSI clientes baixar uma cópia atualizada do esquema agregado de um controlador de domínio por meio de um leitura de LDAP.

Nota
para obter mais informações sobre como detectar o esquema agregado que está relacionado à e/s de rede e de consultas LDAP, consulte a seção "Mais informações".
Soluções alternativas
Uma solução do lado do servidor e do cliente para solucionar esse problema fornecem alívio parcial, reduzindo, mas não elimina o número de vezes que clientes ADSI baixam esquema agregado. As soluções alternativas no lado do cliente e do lado do servidor podem ser implementadas independentemente um do outro. Isso significa que você pode implementar apenas a solução do cliente, a alteração do lado do servidor ou ambas as soluções alternativas ao mesmo tempo.

Solução alternativa do lado do servidor



Editar assinatura DSA

A solução do lado do servidor consiste em impedir que backups de estado do sistema da partição de esquema atualizando o atributo deAssinatura DSA . O atributo de Assinatura DSA contém um sinalizador DRA_INHIBIT_BACKUP_AUTO_STAMP para determinar se um backup de estado do sistema atualizado este atributo. No entanto, como o atributo de Assinatura DSA é armazenado em formato binário grande, ele não pode ser alterado facilmente usando uma ferramenta como o LDP. EXE ou ADSIEDIT. MSC.

Para contornar esse problema, execute um script do Windows PowerShell ou um executável que impede a atualizar o atributo de Assinatura DSA na partição de esquema de backups de estado do sistema e, por sua vez, o whenChanged no cabeçalho NC esquema e o whenModified de atributo no CN = agregado objetos.

Consulte o Editar o atributo dSASignature Script do PowerShell no site Microsoft Script Center.

Você também pode compilar e executar o seguinte código de exemplo para definir ou limpar o sinalizador DRA_INHIBIT_BACKUP_AUTO_STAMP no atributo de Assinatura DSA no esquema do NC.

Independentemente se for usada um PowerShell ou correção através de programação, há um efeito colateral negativo de habilitar o sinalizador DRA_INHIBIT_BACKUP_AUTO_STAMP . Esse efeito colateral está documentado na seção "Mais informações".

Observação: Este código de exemplo deve ser executado em um contexto de segurança de administrador de esquema em um controlador de domínio.

Certificando-se de que as definições estão atualizadas

Finalmente, verifique se thatIPv4 e sub-rede, site e definições de site de sub-rede IPv6 estão atualizadas na floresta do Active Directory e cobrem todas as sub-redes de sua empresa em todas as florestas. Isso torna surethat computadores que estejam executando aplicativos de ADSI que estão consultando e copiar versões atualizadas do esquema agregado isso em controladores de domínio do site ideal. Para obter mais informações sobre como configurar as configurações do site, vá para o seguinte site da Microsoft TechNet:

Código de exemplo

//+-------------------------------------------------------------------------////// 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;}

Exemplo de saída de programa

A seguir estão exemplos de saídas de programa:
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!

Solução alternativa do lado do cliente

Otimizando a seleção de controlador de domínio

Alguns aplicativos explicitamente se conectar a um controlador de domínio específico e, em seguida, baixe o cache de esquema atualizado do controlador de domínio. No entanto, aplicativos geralmente deixá-lo para o localizador de controlador de domínio para localizar o melhor controlador de domínio de um determinado contexto de nomenclatura de LDAP. Os clientes podem enfrentar um atraso considerável ao atualizar o cache do esquema, pois se destinam a controladores de domínio através de uma conexão de rede lenta. É provável que isso ocorra através dos limites da floresta. Sua meta deve ser sempre baixar o cache do esquema do controlador de domínio mais próximo em termos de rede.

Solução alternativa

A solução de cliente consiste em configurar computadores que executam o Windows Vista, Windows Server 2008 ou versões posteriores para usar um armazenamento por máquina são baseados em esquema agregado.

Em computadores baseados no Windows XP, o cache de esquema agregado usado um armazenamento por máquina. Isso significa que o download do esquema agregado foi compartilhado entre todos os usuários que estavam fazendo logon no computador local, desde que ambos os usuários têm direitos administrativos concedidos ou as lojas no sistema de arquivos e o registro locais tem permissão de gravação para usuários autenticados. Caso contrário, o cache do esquema tinha que ser baixados na RAM durante cada sessão ADSI e foi descartado após o encerramento da sessão do ADSI.

No Windows Vista e versões posteriores, o cache de esquema ADSI é implementado em um armazenamento por usuário. Embora a segurança aprimorada com o cache por usuário, cada usuário único que é conectado a um protocolo de área de trabalho remota (RDP) ou Terminal Server AQ, quiosque ou outro sistema multiusuário pode causar o mesmo computador baixar o cache de esquema ADSI.

Você pode forçar um fallback para a configuração de armazenamento por computador em computadores que estejam executando o Windows Vista e versões posteriores, definindo o REG DWORD PerMachine no caminho do registro HKLM\SYSTEM\CurrentControlSet\Services\ADSI\Cache para um valor de 1. Além disso, você deve conceder acesso de gravação em %systemroot%\SchCache e HKLM\Software\Microsoft\ADs\Providers\LDAP para usuários autenticados. Para obter mais informações, consulte ADSI e controle de conta de usuário.

Observação: Usar o armazenamento "por máquina" é especialmente útil em situações em que o perfil móvel do usuário é excluído quando o usuário fizer logoff. Esses usuários precisam criar um novo perfil móvel e talvez seja preciso baixar o esquema agregado. Cenários específicos que causam a exclusão de um perfil móvel incluem o seguinte:
  • Usuários que estão configurados para fazer logon usando perfis de usuário obrigatórios.
  • Usuários que estão sujeitos a diretiva "excluir perfis de usuário mais antigos do que um número especificado de dias na inicialização do sistema".
  • Usuários que estão sujeitos a diretiva "Excluir cópias em cache de perfis móveis".
  • Um usuário cujo perfil em cache foi excluído por um script ou uma ferramenta como DELPROF. EXE ou um equivalente.
Mais Informações

Informações sobre o ADSI

Um cliente do ADSI é uma implementação de programação que acessa o Active Directory para obedecer ao modelo de objeto componente (COM).

Computadores baseados no Windows que executam scripts e aplicativos de ADSI mantém uma cópia local do esquema do Active Directory agregada. No início de cada sessão de cliente do ADSI, o atributo de esquema de referência é verificado alterações. Porque nenhum atributo explícito no Active Directory identifica todas as possíveis alterações no esquema do Active Directory, os atributos de proxy são usados para determinar quando os computadores baseados em Windows devem copiar uma cópia atualizada do esquema agregado pela rede de um controlador de domínio no domínio do cliente. Exemplos de aplicativos de ADSI incluem o seguinte:
  • Directory Administrative Center Microsoft Management Console (MMC) snap-in do Active
  • Snap-in MMC de relações de confiança e domínios do Active Directory
  • Snap-in MMC de serviços e Sites do Active Directory
  • Snap-in MMC de computadores e usuários do Active Directory
  • Snap-in ADSI Edit MMC
  • Snap-in MMC de DHCP
  • Snap-in MMC do Gerenciador de DNS
  • Console de Gerenciamento do Exchange
  • Snap-in do MMC de gerenciamento de diretiva grupo
  • Squery.exe

Atributos que são usados para detectar alterações no esquema agregado

A tabela a seguir fornece uma visão geral dos atributos que são usados para detectar alterações de esquema agregado para cada versão do Windows:

Versão do sistema operacional cliente ADSICondição para download de cache de esquema ADSI
Windows XP
Windows Server 2003
Windows Server 2003 R2
Windows Vista / Windows Server 2008
Windows 7 / Windows Server 2008 R2
Atualização do atributo modifyTimeStamp no objeto de esquema agregado
Windows 8 / Windows Server 2012
8.1 do Windows / Windows Server 2012 R2
Atualização de atributo de esquema whenChanged
Se for detectada uma alteração em um desses atributos de proxy, o cliente ADSI baixa uma nova cópia do esquema agregado.

O atributo modifyTimeStamp do esquema agregado de consulta de computadores que estejam executando sistemas operacionais anteriores ao Windows 8 ou o Windows Server 2012. O modifyTimeStamp foi atualizado pela reinicialização do serviço do Active Directory, de modo que reiniciar um controlador de domínio ou reiniciar o serviço Active Directory causado alguns clientes ADSI baixar o cache de esquema agregado de um controlador de domínio quando nenhuma alteração de esquema legítimas tivesse ocorrido. Isso era um problema logo de início, porque o Active Directory tornou-se um serviço reinicializável no Windows Server 2008.

Computadores que executam o Windows 8, Windows Server 2012 ou uma versão posterior consultam o atributo whenChanged no esquema do cabeçalho NC. O atributo whenChanged tem o efeito colateral de sendo atualizado quando um backup de estado do sistema atualiza o atributo de Assinatura DSA no contexto de nomeação de esquema. Isso por sua vez atualiza o carimbo de hora no atributo whenChanged do esquema do cabeçalho NC.

Eventos que atualizar esquema agregado atributos de proxy em um controlador de domínio

A tabela a seguir fornece uma visão geral dos atributos de referência são atualizadas de acordo com a versão do sistema operacional e as operações que disparam atualizações de atributo.

Versão de sistema operacional do controlador de domínioCondição para a atualização de atributo de esquema agregado modifyTimeStampCondição para a atualização de atributo de esquema whenChanged
Windows Server 2003
Windows Server 2003 R2
Windows Server 2008
Windows Server 2008 R2
Inicia o controlador de domínio ou serviço de diretório do NT (NTDS) Extensão do esquema / backup de estado do sistema
Windows Server 2008 R2 com KB 2671874
Windows Server 2012
Windows Server 2012 R2
Extensão do esquema / backup de estado do sistemaExtensão do esquema / backup de estado do sistema
Se uma alteração for detectada, o cache de esquema ADSI deve ser baixado. Um backup de estado do sistema grava os dados no atributo de Assinatura DSA do contexto de nomeação de esquema resulta em um carimbo de hora atualizada whenChanged do esquema.

Detectar as atualizações de cache de esquema agregado por clientes ADSI

Para detectar a alta utilização da CPU e o uso da rede, use o 3.4 do Monitor de rede ferramenta para capturar o uso da rede e, em seguida, siga estas etapas para analisar os resultados:
  1. Use um dos seguintes filtros de exibição na ferramenta, dependendo do seu sistema operacional Windows.

    Observação: Esses filtros, substitua a cadeia de caracteres "CN = Schema, CN = Configuration, DC = Contoso, DC = com" com o caminho do nome distinto (DN) do Active Directory schema nomeação contexto em questão.
    O Windows 7 e clientes de versões anteriores
    Use o seguinte filtro de exibição para consultar o valor do atributo modifyTimeStamp no objeto de esquema agregado no tráfego de rede capturado:
    (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 e clientes posteriores

    Use o seguinte filtro de exibição para consultar o valor do atributo whenChanged no esquema do cabeçalho NC no tráfego de rede capturado:
    (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")
    Por padrão, esse valor é comparado com o valor de tempo no registro do cliente na seguinte chave:

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

    O cliente baixa um cache de esquema atualizado se a hora no atributo modifyTimeStamp ou whenChanged for mais recente que o valor é armazenado no registro. (Este atributo depende do sistema operacional do cliente.)

    A seguir há uma captura de tela de exemplo da ferramenta:

    Esta captura de tela é um exemplo que se o tempo no atributo modifyTimeStamp ou whenChanged é mais recente que o valor é armazenado no registro

    Captura de tela, você pode ver o seguinte:
    • O cliente ADSI vincula-se ao controlador de domínio no quadro nome 8.
    • A pesquisa LDAP para o atributo do esquema proxy alterados é armazenada em um dos quadros iniciais LDAPSASLBuffer que seguem o bind.
    • O tráfego LDAP é criptografado em vários quadros de LDAPSASLBuffer (porta no controlador de domínio de destino = TCP 389).
    • O controlador de domínio continua a enviar dados criptografados adicionais sobre muitos quadros TCP com um tamanho de payload TCP de 1460.
  2. Após identificar os conversa correta no rastreamento de rede que está apresentando este comportamento, você pode filtrar a porta TCP que o cliente está usando. No exemplo, a conversação é iniciada a partir do cliente pela porta TCP 65237. Um filtro de Monitor de rede, como "tcp.port = = 65237" poderia ser usada para isolar os quadros relacionados.
  3. Se você copiar todos os quadros nesta conversa e colar no Microsoft Excel, você verá que a cópia de esquema agregado padrão tem um tamanho de payload TCP de 2 megabytes (MB) de dados durante a transmissão. O tamanho do arquivo do esquema agregado padrão é de cerca de 4 MB após a codificação.

Correlacionar o tráfego de rede para o processo do cliente

Você pode usar o Monitor do sistema (Sysmon) para determinar o processo no cliente que iniciou a esta conversa. 3 a identificação de evento é registrada no log de eventos Microsoft-Windows-Sysmon operação quando Sysmon está instalado e configurado para conexões LDAP de log. Isso lhe permite relacionar o tráfego de rede para um processo do cliente porque ele registra o IP de origem e porta junto com o nome ProcessID e imagem.


Nome do log: Microsoft-Windows-Sysmon operacional e
Fonte: Microsoft-Windows-Sysmon
Data: Data
Identificação do evento: 3
Categoria da tarefa: Rede conexão detectada (regra: NetworkConnect)
Nível: informações
Palavras-chave:
Usuário: sistema
Computador: Computador
Descrição:
Conexão de rede detectada:
SequenceNumber: 206
UtcTime: UtcTime
ProcessGuid: {ProcessGuid}
ProcessId: 3220
Imagem: C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
Usuário: Nome de usuário
Protocolo: tcp
Iniciada: true
SourceIsIpv6: falso
SourceIp: SourceIp
SourceHostname: ADSIClient
Porta_da_origem: 65237
SourcePortName:
DestinationIsIpv6: falso
DestinationIp: DestinationIp
DestinationHostname: DestinationHostname
DestinationPort: 389
DestinationPortName: ldap
O evento Xml:

<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<System>
<Provider name="Microsoft-Windows-Sysmon" guid=""></Provider></System></Event>"{Nome do provedor}" />
<EventID>3</EventID>
<Version>4</Version>
<Level>4</Level>
<Task>3</Task>
<Opcode>0</Opcode>
<Keywords>0x8000000000000000</Keywords>
<TimeCreated SystemTime=" systemtime=""></TimeCreated SystemTime=">Hora" />
<EventRecordID>39</EventRecordID>
<Correlation></Correlation>
<Execution processid="1140" threadid="3492"></Execution>
<Channel>Microsoft-Windows-Sysmon operacional e</Channel>
<>r >Computador
<Security UserID=" userid=""></Security UserID=">ID de usuário" />

<EventData>
<Data name="SequenceNumber">206</Data>
<Data name="UtcTime"></Data></EventData>Hora
<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>Usuário
<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>

O Process Monitor log no cliente

O Process Monitor log no cliente fornece informações contextuais. Filtre o log do Process Monitor na identificação de processo é registrado de eventos registrados pelos Sysmon.

A captura de tela filtra o log do Process Monitor na identificação de processo registrado de eventos registrados pelos Sysmon

Você encontrará as seguintes operações de interesse.
OperaçãoCaminho
RegOpenKeyHKLM\SYSTEM\CurrentControlSet\Services\ADSI\Cache
RegQueryValueHKCU\Software\Microsoft\ADs\Providers\LDAP\CN = agregado, CN = Schema, CN = Configuration, DC =domínio filho, DC =domínio raiz, DC = com\Time
Recebimento de TCPNome do host>: porta-> <DCName> </DCName>: LDAP
RegCreateKeyHKCU\SOFTWARE\Microsoft\ADs\Providers\LDAP\CN = agregado, CN = Schema, CN = Configuration, DC =domínio filho, DC =domínio raiz, DC = com
WriteFileC:\Users\<username>\AppData\Local\Microsoft\Windows\SchCache\</username>domínio filho.domínio raiz. com.sch
Observação: Uma maneira de verificar se os computadores baseados em Windows estão atualizando a cópia local do cache de esquema agregado é observar alterações no carimbo de data do arquivo *.sch no sistema de arquivos local do cliente ADSI.

Você pode usar os dados na tabela a seguir para refinar o filtro para logs de Monitor de processo muito grandes.

Filtros opcionais adicionais:
ColunaRelaçãoValor
CaminhoContémSchCache
OperaçãoÉWriteFile
A captura de tela é o filtro de Monitor de processo

Configurando o Sysmon em log as conexões LDAP

  1. Faça o download Sysmon no cliente.
  2. Criar um novo arquivo de texto para a configuração Sysmon, salve o arquivo como Sysmonconfig.xml e adicione o seguinte conteúdo:

    <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. Execute o seguinte comando para instalar o Sysmon:
    O Sysmon -i sysmonconfig.xml

Efeito colateral de habilitar o sinalizador DRA_INHIBIT_BACKUP_AUTO_STAMP

Um efeito colateral de habilitar o sinalizador DRA_INHIBIT_BACKUP_AUTO_STAMP é que o evento que ID 2089 incorretamente indicará que a partição de esquema não está sendo capturada em florestas que estão criando o sistema backups de estado.

Exemplo de evento ID 2089 semelhante à seguinte é registrado no log do aplicativo:


Tipo de evento: aviso
Origem do Evento: Duplicação de NTDS
Categoria do evento: Backup
Identificação do evento: 2089
Data: data
Hora: hora
Usuário: nome de usuário
Computador: nome de computador
Descrição:

Esta partição de diretório não foi feita backup desde no mínimo o seguinte número de dias.

Partição de diretório:

CN = schema, DC = partição de aplicativos do dns de raiz de floresta

Observação: Identificação de evento 2089 não é registrada para outras partições principais como CN = Configuration ou partições de diretório de domínio porque não há nenhum método para realizar backups específicos da partição. Para obter mais informações, consulte o seguinte artigo da Base de Conhecimento Microsoft:
914034 2089 de eventos de duplicação de NTDS é registrada se o Windows Server 2003 SP1 e posteriores controladores de domínio sem backup em um determinado período de tempo

Propriedades

ID do Artigo: 2789917 - Última Revisão: 07/29/2015 21:13:00 - Revisão: 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 KbMtpt
Comentários