Cómo convertir SID a nombre de usuario o grupo y viceversa

Bien, el SID (Identificador de Seguridad) es la columna vertebral de los permisos de Windows. A cada usuario, grupo o equipo se le asigna un SID único en el momento de su creación, ya sea local o parte de un dominio de Active Directory. Este identificador se utiliza en segundo plano para controlar el acceso a carpetas compartidas, claves de registro, archivos, impresoras, etc. Sinceramente, saber cómo encontrar o convertir los SID puede ahorrar muchos dolores de cabeza, especialmente al solucionar problemas de acceso inusuales o al limpiar permisos después de una reconstrucción o migración. Esta guía explica cómo encontrar los SID, tanto para cuentas locales como para las de AD, además de cómo convertir un SID de nuevo en un nombre legible; muy útil si obtiene una lista de SID de registros de eventos o mensajes de error. Prepárese para dominar las herramientas de línea de comandos, los trucos de PowerShell y algunas búsquedas en el registro que realmente funcionan.

Cómo encontrar el SID de un usuario o de una computadora en Windows

Método 1: Usar PowerShell (la nueva forma)

Las versiones más recientes de Windows (como Win11 24H2 o Windows Server 2025) han impulsado PowerShell como la opción preferida. Ahora es más fiable, ya que wmicestá prácticamente en declive. Encontrar el SID de un usuario local con PowerShell es bastante sencillo y flexible si te gusta usar scripts:

  • Abra PowerShell como administrador. Para ello, haga clic derecho en el botón Inicio y seleccione Windows PowerShell (Administrador).
  • Ejecute este comando: (Get-CimInstance -Class win32_userAccount -Filter "name='test_user' and domain='$env:COMPUTERNAME'").SID

Esto devuelve el SID del usuario test_user

Tenga en cuenta que, en algunos entornos o versiones más nuevas de PowerShell, es posible que deba usar Get-LocalUsersi está disponible:

  • Get-LocalUser -Name 'test_user' | Select-Object Name, SID
  • O enumerar todas las cuentas locales con sus SID: Get-LocalUser | Select-Object Name, SID

Nota al margen: Si intenta asociar un SID a un perfil, puede consultar el registro en HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\ProfileList. Los nombres de las claves de registro son los SID, que apuntan a las rutas de los perfiles. Esta es la mejor manera de conectar los puntos si analiza perfiles de usuario.

Método 2: Usar el símbolo del sistema con WMIC

Si prefieres la línea de comandos tradicional, puedes probar wmic. Ten en cuenta que, en algunas versiones más recientes de Windows, ya no está disponible, pero sigue funcionando en muchas configuraciones. Para obtener un SID de usuario local:

  • Abra el símbolo del sistema como administrador.
  • Tipo:wmic useraccount where name='test_user' get sid

Si esto genera errores, o si estás en un sistema donde wmicfalta, quizás sea más inteligente seguir usando PowerShell.

Consejo adicional: uso del módulo LocalAccounts de PowerShell

Para un enfoque más «nativo», especialmente si está probando o creando scripts, pruebe:

  • Get-LocalUser -Name 'test_user' | Select-Object Name, SID
  • O enumerarlo todo de una vez: Get-LocalUser | Select-Object Name, SID

Es una forma rápida de obtener SID sin tener que pasar por obstáculos.

Obtener el SID de un usuario o grupo en Active Directory

Active Directory tiene sus propios métodos, pero las líneas de comandos son bastante similares. Para obtener el SID de un usuario de dominio actual:

  • Abra PowerShell con el módulo Active Directory cargado. Si no lo tiene, podría necesitar instalarlo mediante las herramientas RSAT.
  • Correr:Get-ADUser -Identity 'jabrams' | select SID

Para grupos, reemplácelo Get-ADUsercon Get-ADGroup. Por ejemplo:

  • Get-ADGroup -Filter {Name -like "fr-sales-*"} | Select SID

Otra forma si no desea instalar el módulo AD o falta, puede crear un objeto SecurityIdentifier en PowerShell, de la siguiente manera:

  • $objUser = New-Object System. Security. Principal. NTAccount("domain\\username")
  • $sid = $objUser. Translate([System. Security. Principal. SecurityIdentifier])
  • Esto genera el SID en un formato legible.

Cómo obtener el SID de una computadora en AD o local

Si el equipo está conectado a un dominio de AD, tiene su propio SID (denominado SID de máquina).Para obtenerlo en AD:

  • Correr:Get-ADComputer -Identity 'mun-rds1' -Properties sid | Select-Object Name, sid

Ahora, para el SID de la máquina local, puedes ser creativo:

  • Utilice la herramienta PsGetSid : descárguela y ejecútela .\PsGetsid64.exe.
  • O bien, simplemente corte los últimos 4 caracteres del SID de un usuario local, como con este fragmento de PowerShell:

    $sid = (Get-LocalUser 'Administrator').SID -replace ".{4}$"

Recuerde que, al clonar o implementar imágenes, es fundamental restablecer el SID de la máquina con sysprep. De lo contrario, los SID duplicados en un dominio pueden romper las relaciones de confianza. Windows detesta este tipo de IDs duplicados.

Convertir un SID en un nombre de usuario o grupo

A veces, te aparece un SID desconocido y quieres saber a qué cuenta pertenece. La forma más sencilla en PowerShell:

  • $sidObj = New-Object System. Security. Principal. SecurityIdentifier('S-1-5-21-XXXXXXXXXX')
  • $ntAccount = $sidObj. Translate([System. Security. Principal. NTAccount])
  • Muestra el nombre de la cuenta, como DOMAIN\username.

O a través de WMIC, si el SID aún tiene sentido en su entorno:

  • wmic useraccount where sid='S-1-5-21-XXXXXXXXXX' get name

Lo mismo ocurre con los objetos de AD, pero su uso Get-ADObjectpuede ser más exhaustivo si estás buscando entre objetos eliminados o cosas en la Papelera de reciclaje:

  • $sid = 'S-1-5-21-XXXXXX'
  • Get-ADObject -IncludeDeletedObjects -Filter "objectSid -eq '$sid'" | Select-Object name, objectClass

Esto puede ayudar a rastrear a qué objeto apunta realmente un SID, especialmente si se le ha cambiado el nombre o se le ha cambiado de lugar. Bueno, así es prácticamente como funciona en la práctica.

Ojalá esto le ahorre algunas horas a alguien. A menudo, solo se trata de saber qué comando proporciona qué información y cuándo, y recordar que Windows a veces es un poco peculiar con los permisos e identificadores. Aun así, estos trucos funcionan: no son magia, solo el comando correcto en el momento oportuno.

Resumen

  • Utilice PowerShell o WMIC para encontrar SID de usuarios y grupos locales.
  • Aproveche los cmdlets de AD o las clases. NET para las cuentas de dominio.
  • Consulte el registro o la clave ProfileList para obtener información del perfil del usuario.
  • Convierta los SID nuevamente en nombres con objetos de PowerShell o WMIC.

Resumen

Dominar los SID no es tan complicado una vez que tienes los comandos correctos en tu caja de herramientas. A veces, basta con ejecutar los comandos correctos de PowerShell o analizar el registro. Una vez que entiendes estos aspectos, solucionar problemas de permisos o limpiar cuentas se vuelve mucho más fácil. Recuerda: cada vez que clones una máquina o modifiques perfiles, restablecer el SID o volver a preparar el sistema es clave para evitar futuros problemas. Crucemos los dedos para que esto te ayude.¡Mucha suerte encontrando esos SID desconocidos!