A função LsaLookupSids pode retornar o nome de usuário antigo em vez do novo nome de usuário se o nome de usuário tiver sido alterado

Este artigo descreve um atraso de atualização de cache no Windows.

Aplica-se a: Windows 10 — todas as edições, Windows Server 2012 R2
Número de KB original: 946358

Sintomas

Considere o seguinte cenário:

  • No computador membro do domínio, um aplicativo chama a função LsaLookupSids para traduzir um SID (identificador de segurança) para um nome de usuário.
  • O nome de usuário foi alterado em um controlador de domínio.

Nesse cenário, a função LsaLookupSids pode retornar o nome de usuário antigo em vez do novo nome de usuário. Esse comportamento pode impedir que o aplicativo funcione corretamente.

Motivo

A LSA (autoridade de segurança local) armazena em cache o mapeamento entre o SID e o nome de usuário em um cache local no computador membro do domínio. O nome de usuário armazenado em cache não é sincronizado com controladores de domínio. O LSA no computador membro do domínio primeiro consulta o cache SID local. Se um mapeamento existente já estiver no cache SID local, o LSA retornará as informações de nome de usuário armazenadas em cache em vez de consultar os controladores de domínio. Esse comportamento destina-se a melhorar o desempenho.

As entradas de cache fazem tempo limite, no entanto, as chances são de que consultas recorrentes por aplicativos mantenham a entrada de cache existente viva para o tempo máximo de vida da entrada de cache.

Solução alternativa

Para contornar esse problema, desabilite o cache SID local no computador membro do domínio. Para fazer isso, siga estas etapas:

  1. Abra o Editor do Registro.

    Para fazer isso no Windows XP ou no Windows Server 2003, clique em Iniciar, clique em Executar, digite regedit e clique em OK.

    Para fazer isso no Windows Vista e mais recente, clique em Iniciar, digite regedit na caixa Iniciar Pesquisa e pressione ENTER.

  2. Localize e clique com o botão direito do mouse na seguinte subchave do Registro:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa

  3. Aponte para Novo e clique em Valor DWORD.

  4. Digite LsaLookupCacheMaxSize e pressione ENTER.

  5. Clique com o botão direito do mouse em LsaLookupCacheMaxSize e clique em Modificar.

  6. Na caixa de dados Valor , digite 0 e clique em OK.

  7. Saia do Editor do Registro.

Observação

A entrada do registro LsaLookupCacheMaxSize define o número máximo de mapeamentos armazenados em cache que podem ser salvos no cache SID local. O número máximo padrão é 128. Quando a entrada do registro LsaLookupCacheMaxSize é definida como 0, o cache SID local é desabilitado.

Status

O comportamento é por design.

Mais informações

A LSA mantém um cache SID em computadores membros do domínio. Esse cache armazena mapeamentos entre SIDs e nomes de usuário. Se as informações sid existirem no cache local, a LSA retornará as informações de nome de usuário armazenadas em cache em vez de verificar se o nome de usuário foi alterado.

O cache SID local ajuda a reduzir a carga de trabalho do controlador de domínio e o tráfego de rede. No entanto, pode ocorrer inconsistência entre o cache local e os controladores de domínio.

Referências

O TechNet tem um artigo que aborda Sid-Name abordagens de resolução, incluindo uma descrição detalhada deste cache:

Como SIDs e nomes de conta podem ser mapeados no Windows

Para obter mais informações sobre a função LsaLookupSids , visite o seguinte site da Microsoft:

Função LsaLookupSids