1.2K
Las cuentas de usuario en Active Directory tienen varios atributos, entre los cuales hay dos atributos interesantes y críticos: samCuentaNombre y UserPrincipalName (generalmente se llama UPN), cuyas diferencias no son comprendidas por muchos administradores de Windows. Este artículo examinará las diferencias entre los atributos AD samAccountName y UserPrincipalName.
Los atributos userPrincipalName y sAMAccountName pueden iniciar sesión en los equipos del dominio AD.
El atributo samAccountName se usaba en el entorno anterior a Windows 2000 y definía el nombre de usuario para autorizar usuarios en el dominio o estaciones de trabajo independientes. Pero, en Windows 2000, apareció el nuevo atributo UserPrincipalName, que también se puede utilizar para iniciar sesión en las estaciones de trabajo AD. Entonces, ahora puede autorizar en una computadora en el dominio de AD usando samAccountName y UserPrincipalName.
El atributo samAccountName
El atributo samAccountName tiene el siguiente formato:
NETBIOSUSERNAME
Por ejemplo, si el dominio es org870.ga, el nombre de dominio NetBIOS sería ORG870B. Por lo tanto, la aten.stig El nombre de usuario en el formato samAccountName debería verse como ORG870B.stig.
Detalles del atributo samAccountName:
- La longitud de samAccountName está fijada en 20 caracteres únicamente y no puede contener ninguno de estos caracteres: “/ : ; | = , + * ? < >. El campo no aceptará cuando intente escribir más de 20 caracteres en el nombre de inicio de sesión del usuario.
- El valor de samAccountName debe ser único para todos los objetos de dominio.
- La variable de entorno en una computadora con Windows %USERNAME% contendría el valor del atributo samAccountName, no UserPrincipalName, incluso si inició sesión en la computadora usando el UPN.
- El valor de samAccountName en la computadora del usuario se puede obtener utilizando la variable de entorno USERNAME. Se puede visualizar utilizando el **colocar** comando en cmd o entorno gci: en PowerShell.
El atributo UserPrincipalName
El userPrincipalName o UPN se introdujo en Windows 2000. Esto vino con la introducción del Protocolo ligero de acceso a directorios (LDAP). El formato difiere ampliamente de samAccountName. La UPN sigue este formato:
username@domain.tld
El ejemplo anterior muestra que la cuenta pertenece al dominio principal. Para cuentas en subdominios, el formato será el siguiente:
username@subdomain.domain.tld.
Características del atributo UserPrincipalName:
- El valor del atributo UserPrincipalName puede corresponder al correo electrónico del usuario (extremadamente conveniente durante migraciones, configuraciones de perfil, etc.)
- El valor del atributo samAccountName debe ser único en todo el bosque de dominio.
- El formato del identificador se ajusta a RFC 822 estándares
- A diferencia de samAccountName, el límite de caracteres UPN es de hasta 1024 caracteres, compuesto por el nombre de usuario, el signo @ y el nombre de dominio/subdominio. Por ejemplo, si el dominio es @org870b.ga, solo eso ya tiene 11 caracteres. Así que a ese nombre de usuario le queda un límite de 1013 caracteres.
- El atributo UserPrincipalName es opcional, pero se recomienda completarlo. Especialmente cuando se integra con Azure AD o se prepara para la migración, se requerirá el UPN.
Al crear un nuevo usuario en AD, especifica el valor del atributo UserPrincipalName en el «Nombre de inicio de sesión del usuario” y el valor samAccountName en el “Nombre de inicio de sesión del usuario (anterior a Windows 2000)» campo.
Puede cambiar los valores de este campo en el futuro utilizando el complemento Usuarios y equipos de Active Directory en las propiedades del usuario en el Cuenta pestaña.
UserPrincipalName frente a SamAccountName: manejo en PowerShell
El módulo de Active Directory de PowerShell ya está instalado en un servidor con el rol de Active Directory. Este módulo permite administrar los aspectos de los objetos de Active Directory mediante cmdlets de PowerShell.
Puede instalar las herramientas de administración remota del servidor (RSAT) en las computadoras cliente para permitir que esa computadora administre AD en PowerShell.
Creación de usuarios de Active Directory
Puede crear un usuario de AD en PowerShell mientras especifica los atributos UserPrincipalName y SamAccountName. Pero tenga en cuenta las limitaciones, en particular la longitud y los caracteres no permitidos.
Por ejemplo, el siguiente comando fallará porque SamAccountName supera el límite de 20 caracteres.
$newADUser = @{ Name="dummy_user" DisplayName="Dummy User Account" SamAccountName="dummy6789067890678900" UserPrincipalName="dummy6789067890678900@org870b.ga" }
Pero el error podría ser más específico. La excepción muestra solo “El nombre proporcionado no es un nombre de cuenta correctamente formado”. El error es categóricamente correcto pero vago.
Entonces, si está automatizando el proceso de creación de cuentas, implemente una protección, tal vez trunque automáticamente el valor de SamAccountName dado. He aquí un ejemplo básico:
# truncate the SamAccountName if the current length if > 20 if (($newADUser['SamAccountName']).Length -gt 20){ $newADUser['SamAccountName'] = ($newADUser['SamAccountName']).Substring(0,20) } New-ADUser @newADUser
¿Qué pasa con el límite de caracteres UPN?
Sería más complicado ya que debe truncar la parte del nombre de usuario sin afectar la parte del dominio. Hay un ejemplo de mantener el UPN dentro del límite de 1024 caracteres:
# truncate the UserPrincipalName if the current length if > 1024 if (($newADUser['UserPrincipalName']).Length -gt 20){ # split the username and domain part. $username = ($newADUser['UserPrincipalName']).Split('@')[0] $domain = "@$(($newADUser['UserPrincipalName']).Split('@')[-1])" $newADUser['UserPrincipalName'] = "$(($username).Substring(0,$(1024 -1 -($domain.Length-1))))$domain" } New-ADUser @newADUser
Visualización, eliminación y actualización de usuarios de Active Directory
Los cmdlets para ver, eliminar y actualizar usuarios de Active Directory son Get-ADUser, Remove-ADuser y Set-ADUser, respectivamente.
Todos estos cmdlets tienen un parámetro llamado Identidad, que acepta los siguientes valores de identificador:
- Un nombre distinguido
- UN GUID (objetoGUID)
- Un identificador de seguridad (objectSid)
- Un nombre de cuenta SAM (sAMAccountName)
Entonces, para obtener un usuario de AD, puede ejecutar:
Get-ADUser -Identity <SamAccountName>
Pero como habrás notado, el parámetro Identity no acepta el valor UPN como válido.
Get-ADUser -Identity <UserPrincipalName>
Pero si debe usar UserPrincipalName como identificador al ejecutar estos cmdlets, podría usar el parámetro Filter en su lugar.
Get-ADUser -Filter 'userPrincipalName -eq "<UPN>"'
UserPrincipalName frente a SamAccountName: comparación en paralelo
Ahora que hemos cubierto los atributos SamAccountName y UserPrincipalName, aquí está la tabla de resumen para compararlos.
SamAccountName | UserPrincipalName | |
Atributo obligatorio | Sí. Requerido. | Opcional, pero recomendado. Especialmente al planificar la migración/integración con Azure AD. |
Longitud máxima | Fijado en 20 caracteres como máximo. | 1024 caracteres que consisten en el nombre de usuario y las partes del dominio. |
Compatibilidad | Compatible con versiones anteriores. | Sólo Windows 2000 y posteriores. |
Formato | NETBIOS | NOMBRE DE USUARIO@DOMINIO.TLD NOMBRE DE USUARIO@SUB.DOMINIO.TLD
Sigue el RFC 822 estándares Se recomienda que sea la misma que la dirección de correo electrónico del usuario cuando corresponda. |
Uso de PowerShell | Se puede utilizar para consultar el objeto de usuario de AD como un identificador. | No se puede usar para consultar el objeto Usuario de AD como un identificador, pero se puede usar como un valor de filtro. |