567
A cada objeto en el entorno de Active Directory, ya sea una cuenta de usuario, una cuenta de computadora o un grupo, se le asigna un identificador único llamado Identificación de seguridad o sid.
El SID de un objeto en Windows tiene este aspecto:
S-1-5-21-482871169-3907970989-1540170358-1103
Windows utiliza SID, en lugar de nombres de usuario (objeto), para controlar el acceso a diversos recursos, como archivos, impresoras compartidas, carpetas de red, etc.
- El SID se asigna a un objeto cuando se crea (asignado por el controlador de dominio propietario de la función RID Master FSMO)
- No es posible cambiar el SID asignado
- La base de datos del Administrador de cuentas de seguridad (SAM) en la computadora almacena los SID para las cuentas de usuarios locales. La base de datos de Active Directory almacena los SID de dominio
Para averiguar el SID del usuario actualmente conectado a la computadora, ejecute el comando:
whoami /all
El comando devuelve el nombre de dominio, el SamAccountName del usuario y su SID.
Los usuarios pueden utilizar la consola gráfica Usuarios y equipos de Active Directory (ADUC) para conocer el SID de cualquier objeto del dominio:
- Ejecute el complemento ADUC (dsa.msc)
- En el menú superior, seleccione Vista > Funciones avanzadas
- Abra las propiedades del usuario requerido (u otro objeto AD) y vaya a la Editor de atributos pestaña. El SID se especifica en el valor del ObjetoSID atributo de usuario
Sin embargo, los complementos gráficos ADUC o ADSIEdit no permiten copiar el valor SID en un formato legible (el valor se muestra en formato binario). Por lo tanto, obtener el valor SID del usuario desde el símbolo del sistema es mucho más fácil y conveniente en la práctica.
Si el módulo PowerShell para Active Directory está instalado en la computadora, use el siguiente comando para obtener el valor SID del usuario:
Get-ADUser jbrion| select SamAccountName,SID
En algunos casos, se requiere la operación inversa: buscar un usuario por un SID conocido. En este caso, utilice el SID como argumento para el cmdlet Get-ADUser:
Get-ADUser -Identity S-1-5-21-482871169-3907970989-1540170358-1108
Si no sabe a qué tipo de objeto pertenece el SID, puede utilizar el Obtener-ADObject cmdlet para buscar el tipo y nombre del objeto de Active Directory por su ID:
$sid = 'S-1-5-21-482871169-3907970989-1540170358-1126' Get-ADObject -Filter "objectSid -eq '$sid'" | Select-Object sAMAccountName, objectClass
En este ejemplo, descubrimos que se trata de un SID de cuenta de computadora.
Si el módulo RSAT-AD PowerShell no está instalado en la computadora, es posible averiguar el SID del usuario utilizando el módulo integrado Sistema.Seguridad.Principal.NTAccount clase:
$UserName="jbrion" $User = New-Object System.Security.Principal.NTAccount($UserName) $SID = $User.Translate([System.Security.Principal.SecurityIdentifier]) $SID.Value
Para conocer un nombre de usuario por su SID (operación inversa):
$objSID = New-Object System.Security.Principal.SecurityIdentifier ("S-1-5-21-482871169-3907970989-1540170358-1124") $objUser = $objSID.Translate( [System.Security.Principal.NTAccount]) $objUser.Value
Además, puede obtener el SID del usuario utilizando el WMIC Herramienta de consola, que permite consultar clases WMI. El siguiente comando devuelve el SID del usuario local:
wmic useraccount where (name="jbrion") get sid
Para conocer el SID de una cuenta de usuario de dominio, ejecute:
wmic useraccount where (name="jbrion" and domain='theitbros') get sid