Establecer el sufijo UPN predeterminado para crear nuevos usuarios en Active Directory

12

¿Hay alguna manera de establecer el sufijo UPN predeterminado para crear nuevos usuarios en Active Directory?

Por ejemplo, si tengo corp.mydomain.com como mi dominio AD, y he agregado un sufijo UPN alternativo en Dominios y fideicomisos que es solo mydomain.com, ¿hay alguna forma de que ese dominio sea el predeterminado al crear nuevos usuarios?

Sé que puedo crear un usuario de plantilla y luego, cuando lo copie, tendrá el sufijo predeterminado correcto, pero tengo curiosidad por saber si había una configuración oculta que lo controlara.

Adam Brand
fuente

Respuestas:

8

No tengo conocimiento de ningún mecanismo documentado para cambiar el sufijo UPN predeterminado que eligen los Usuarios y equipos de Active Directory. Creo que la herramienta está cableada para tomar la primera parte del atributo "canonicalName" definido en el objeto "crossRef" para el dominio especificado en "CN = Particiones, CN = Configuración, ..." en su bosque.

Los usuarios de AD y las computadoras simplemente están cableados para hacer esto. Si crea cuentas de usuario utilizando otros medios ("USUARIO NETO ... / agregar", por ejemplo), entonces no se asignará ningún atributo userPrincipalName a la cuenta. El sufijo UPN predeterminado es realmente solo un valor predeterminado en Usuarios y equipos de AD, no un valor predeterminado del servicio de directorio en sí.

Si se encuentra con el artículo de Microsoft KB con un script que le muestra cómo obtener mediante programación el sufijo UPN predeterminado ( http://support.microsoft.com/default.aspx?scid=kb;en-us;Q269441 ), tenga en cuenta que el script tiene un par de errores de sintaxis (las líneas 17 y 32 están mal formadas y srrNamingContext en la línea 32 debería ser strNamingContext). Incluiré una versión fija con una mejora menor al final de esta publicación (le muestra los nombres de unidades organizativas individuales donde se pueden definir sufijos UPN adicionales).

Me gustaría ser corregido por alguien más "informado" que yo, pero no veo ninguna forma de lograr que los usuarios de AD y las computadoras actúen de manera diferente.

' --- Get the naming contexts ----
Set RootDSE = GetObject("LDAP://RootDSE")
strNamingContext = RootDSE.Get("defaultNamingContext")
strConfigContext = RootDSE.Get("configurationNamingContext")

' -- Get the current domain name --
Set oDomain = GetObject("LDAP://" + strNamingContext)
strDomainName = oDomain.Get("name")

Set oPartition = GetObject("LDAP://CN=Partitions," & strConfigContext)

'-- Get the DNS name of the domain --
oDomain.GetInfoEx Array("canonicalName"), 0
strCanonical = oDomain.Get("canonicalName")
strDNSName = Left(strCanonical, Len(strCanonical) - 1) 'clip off "/"

'-- Display the default UPN suffix
wscript.echo strDNSName

'-- Get the defined upnSuffixes --
suffixes = oPartition.GetEx("UPNSuffixes")
For Each upnSuffix In suffixes
  wscript.echo upnSuffix
Next
Set RootDSE = Nothing
Set oDomain =Nothing
Set oPartition = Nothing

' -- Get the upnsuffixes defined on organizational units --
Set ADOconn = CreateObject("ADODB.Connection")
Set ADOcom = CreateObject("ADODB.Command")

ADOconn.Provider = "ADsDSOObject"
bstrADOQueryString = "<LDAP://" + strNamingContext + ">;(objectcategory=organizationalUnit);upnsuffixes,ADsPath;subtree"
wscript.echo bstrADOQueryString 
ADOconn.Open
ADOcom.ActiveConnection = ADOconn

ADOcom.CommandText = bstrADOQueryString
ADOcom.Properties("Page Size") = 99

Set objRS = ADOcom.Execute

While Not objRS.EOF
   If Not IsNull(objRS.Fields("upnSuffixes")) Then
    upnsuffixes = objRS.Fields("upnSuffixes")
    For Each upnsuffix In upnsuffixes
        wscript.echo objRS.Fields("adsPath") & " - Suffix: " & upnsuffix
    Next
   End If

   objRS.MoveNext
Wend

Set objRS = Nothing
Set ADOcom = Nothing
Set ADOconn = Nothing
Evan Anderson
fuente
Esperaba que hubiera alguna entrada de registro o algo así. Marcaré esto como correcto si nadie más interviene con algo en las próximas 24 horas.
Adam Brand
En nuestro caso, ejecutamos un script diario que verifica el UPN de cada usuario y si no tienen un nombre estándar, los cambia a estándar. Este script analiza muchos atributos y los corrige si es necesario.
KAPes
@KAPes: Esa es una buena idea. En los sitios donde varios administradores de AD delegados crean cuentas de usuario, normalmente he implementado scripts para realizar la mayoría de las tareas de aprovisionamiento. Aún así, pude ver la secuencia de comandos de algunas consultas LDAP para generar "Hey, tonto, ¡aprovisionaste esto mal!" correos electrónicos (o, obviamente, para arreglar las cosas automáticamente cuando la computadora tiene suficiente información para hacerlo automáticamente).
Evan Anderson
La respuesta de Evan sigue siendo correcta. Algunos también han sugerido configurar el atributo uPNSuffixes en la unidad organizativa. Esto simplemente anulará la lista de uPNSuffixes establecida en el dominio, pero seguirá siendo el nombre canónico del dominio.
charleswj81
8

Hasta donde yo sé, esto no se puede hacer (la respuesta de Evan sigue siendo cierta 4 años después).

Dicho esto, he escrito un script que se ejecuta en el programador de tareas cada pocas horas en más de un cliente. Busca un sufijo específico (el predeterminado en la mayoría de los casos) y lo cambia a otro. El guión está en mi blog, pero también lo publicaré aquí :)

Import-Module ActiveDirectory


Get-ADUser -Filter {UserPrincipalName -like "*@ad.example.com"} -SearchBase "OU=SomeUserOu,DC=ad,DC=example,DC=com" |
ForEach-Object {
    $UPN = $_.UserPrincipalName.Replace("ad.example.com","example.com")
    Set-ADUser $_ -UserPrincipalName $UPN
}

En este caso, los usuarios creados con un ad.example.comsufijo UPN se actualizarán con el example.comsufijo.

MDMarra
fuente
Pensé en usar las notificaciones de cambio de AD para hacer este tipo de cosas en tiempo real, pero sería una tontería exagerada.
Evan Anderson
1
UPN se está volviendo cada vez más importante con O365 y los requisitos de sincronización de directorios para ADFS SSO. Pensarías que ya habría algo horneado :)
MDMarra
A veces creo que soy la única persona que usa los productos de Microsoft. > smile <Me estoy preparando para hacer mi primera implementación de Office365 en las próximas semanas (completa con intercambio híbrido en el sitio / fuera del sitio), así que pronto experimentaré toda esa diversión de ADFS SSO y DirSync suficiente.
Evan Anderson
No hago O365 directamente (tenemos un par de colaboradores en el personal), pero he realizado algunos trabajos de Intune que usan el mismo inquilino de Azure AD. Espero que tu primer viaje sea más suave que el mío :)
MDMarra
Agregar una nota de que .Replace distingue entre mayúsculas y minúsculas, por lo que si UserPrincipalName es "[email protected]", no coincidirá con la cadena de "ad.example.com". Esto puede agregar un método .toLower () primero como este: $ UPN = $ _. UserPrincipalName.toLower (). Reemplazar ("ad.example.com", "example.com")
Chad Rexin
0

Puede establecer los Sufijos UPN permitidos, ingresando a ADSIEDIT.MSC, conectándose a la Estructura de OU, haga clic derecho en la OU (en la configuración predeterminada) y edite los Atributos de OU. El atributo OU para editar es UPNSuffixes. Sin embargo, esto no afecta el UPN predeterminado asignado a un usuario creado dentro de esa unidad organizativa. Agregue el sufijo UPN deseado a esta lista. A continuación, cree un usuario de plantilla para copiar. Haga clic con el botón derecho en la unidad organizativa, cree un nuevo usuario para usar como plantilla, asigne el sufijo UPN correcto y luego haga clic con el botón derecho en el usuario una vez creada y deshabilite la cuenta. Para crear un nuevo usuario, haga clic con el botón derecho en la plantilla de usuario y copie ... complete los campos seleccionados, y el nuevo usuario se creará con el UPN adecuado. Cree múltiples usuarios de plantilla para los diferentes UPNS. O, si tiene dudas, cambie a powershell.

Justin Robbins
fuente
-3

En realidad, puede ejecutarlo en el Módulo de Active Directory para Powershell: Set-ADOrganizationalUnit "OU = XXX, DC = Domain, DC = com" -Add @ {upnsuffixes = "@ UPNSuffix.com".

O puede usar una "Get-adorganizationalUnit" con un interruptor -Filter y canalizar eso a 'Set-ADOrganizationalUnit -Add @ {upnsuffixes = "@ UPNSuffix.com"'

Encontré esto después de haber buscado bastante tiempo, así que espero que esto ayude a cualquiera.

Hierba Huddleston
fuente
La pregunta es acerca de establecer el sufijo predeterminado para agregar nuevos usuarios, no agregar un sufijo upn.
austinian
-4

Este artículo de technet describe cómo agregar o eliminar sufijos UPN en su dominio:

http://technet.microsoft.com/en-us/library/cc756018(WS.10).aspx

También hay una discusión al respecto aquí:

http://technet.microsoft.com/en-us/library/cc739093(WS.10).aspx

No puedo responder personalmente porque nunca he tenido que hacer esto, pero una cosa me viene a la mente. Si va a hacer esto, deberá tener en cuenta que si bien AD funcionará correctamente, lo mismo podría no ser el caso para cualquier software de terceros que tenga, lo que puede suponer que el sufijo UPN es siempre el estándar. . Considere las consecuencias cuidadosamente antes de hacer el cambio, en otras palabras.

Maximus Minimus
fuente
2
Sí, sé cómo agregar sufijos UPN. Mi pregunta fue sobre la configuración del sufijo predeterminado para agregar nuevos usuarios.
Adam Brand