La función LsaLookupSids puede devolver el nombre de usuario antiguo en lugar del nuevo nombre de usuario si el nombre de usuario ha cambiado.

En este artículo se describe un retraso de actualización de caché en Windows.

Se aplica a: Windows 10 (todas las ediciones), Windows Server 2012 R2
Número de KB original: 946358

Síntomas

Imagine la siguiente situación:

  • En el equipo miembro del dominio, una aplicación llama a la función LsaLookupSids para traducir un identificador de seguridad (SID) a un nombre de usuario.
  • El nombre de usuario se ha cambiado en un controlador de dominio.

En este escenario, la función LsaLookupSids puede devolver el nombre de usuario antiguo en lugar del nuevo nombre de usuario. Este comportamiento puede impedir que la aplicación funcione correctamente.

Causa

La entidad de seguridad local (LSA) almacena en caché la asignación entre el SID y el nombre de usuario en una caché local en el equipo miembro del dominio. El nombre de usuario almacenado en caché no se sincroniza con los controladores de dominio. El LSA en el equipo miembro del dominio consulta primero la caché de SID local. Si una asignación existente ya está en la caché del SID local, el LSA devuelve la información de nombre de usuario almacenada en caché en lugar de consultar los controladores de dominio. Este comportamiento está pensado para mejorar el rendimiento.

Las entradas de caché agotan el tiempo de espera, pero lo más probable es que las consultas periódicas de las aplicaciones mantengan activa la entrada de caché existente durante la duración máxima de la entrada de caché.

Solución alternativa

Para solucionar este problema, deshabilite la caché de SID local en el equipo miembro del dominio. Para ello, siga estos pasos:

  1. Abra el Editor del Registro.

    Para hacerlo en Windows XP o en Windows Server 2003, haga clic en Inicio, en Ejecutar, escriba regedity, a continuación, haga clic en Aceptar.

    Para hacerlo en Windows Vista y versiones posteriores, haga clic en Inicio, escriba regedit en el cuadro Iniciar búsqueda y, a continuación, presione ENTRAR.

  2. Busque y haga clic con el botón secundario en la siguiente subclave del Registro:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa

  3. Seleccione Nuevo y, a continuación, haga clic en Valor DWORD.

  4. Escriba LsaLookupCacheMaxSize y presione ENTRAR.

  5. Haga clic con el botón derecho en LsaLookupCacheMaxSize y, a continuación, haga clic en Modificar.

  6. En el cuadro Datos de valor , escriba 0 y, a continuación, haga clic en Aceptar.

  7. Salga del Editor del Registro.

Nota:

La entrada del Registro LsaLookupCacheMaxSize establece el número máximo de asignaciones almacenadas en caché que se pueden guardar en la caché de SID local. El número máximo predeterminado es 128. Cuando la entrada del registro LsaLookupCacheMaxSize se establece en 0, se deshabilita la caché de SID local.

Estado

El comportamiento es por diseño.

Más información

LSA mantiene una caché de SID en equipos miembros de dominio. Esta memoria caché almacena las asignaciones entre los SID y los nombres de usuario. Si la información del SID existe en la memoria caché local, el LSA devuelve la información de nombre de usuario almacenada en caché en lugar de comprobar si el nombre de usuario ha cambiado.

La caché de SID local ayuda a reducir la carga de trabajo del controlador de dominio y el tráfico de red. Sin embargo, puede producirse incoherencia entre la caché local y los controladores de dominio.

Referencias

TechNet tiene un artículo que trata los enfoques de resolución de Sid-Name, incluida una descripción detallada de esta caché:

Cómo se pueden asignar sids y nombres de cuenta en Windows

Para obtener más información sobre la función LsaLookupSids , visite el siguiente sitio web de Microsoft:

Función LsaLookupSids