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
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í :)
En este caso, los usuarios creados con un
ad.example.com
sufijo UPN se actualizarán con elexample.com
sufijo.fuente
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.
fuente
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.
fuente
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.
fuente