Il n'y a aucun mécanisme documenté que je connaisse pour changer le suffixe UPN par défaut qui est choisi par les utilisateurs et les ordinateurs Active Directory. Je crois que l'outil est câblé pour prendre la première partie de l'attribut "canonicalName" défini sur l'objet "crossRef" pour le domaine spécifié dans "CN = Partitions, CN = Configuration, ..." dans votre forêt.
Les utilisateurs et les ordinateurs AD se trouvent être câblés pour ce faire. Si vous créez des comptes d'utilisateurs en utilisant d'autres moyens ("NET USER ... / add", par exemple), aucun attribut userPrincipalName ne sera attribué au compte. Le suffixe UPN par défaut est vraiment juste une valeur par défaut dans AD Users and Computers, pas une valeur par défaut du service d'annuaire lui-même.
Si vous exécutez l'article Microsoft KB contenant un script qui vous montre comment obtenir par programme le suffixe UPN par défaut ( http://support.microsoft.com/default.aspx?scid=kb;en-us;Q269441 ), méfiez-vous que le script contient quelques erreurs de syntaxe (les lignes 17 et 32 sont mal formées et srrNamingContext sur la ligne 32 doit être strNamingContext). Je vais inclure une version fixe avec une amélioration mineure à la fin de ce post (il vous montre les noms des unités d'organisation individuelles où des suffixes UPN supplémentaires peuvent être définis).
J'aimerais être corrigé par quelqu'un de plus "au courant" que moi, mais je ne vois aucun moyen d'amener les utilisateurs et les ordinateurs AD à agir différemment.
' --- 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
Pour autant que je sache, cela ne peut pas être fait (la réponse d'Evan est toujours vraie 4 ans plus tard).
Cela dit, j'ai écrit un script qui s'exécute dans le planificateur de tâches toutes les quelques heures sur plusieurs clients. Il recherche un suffixe spécifique (par défaut dans la plupart des cas) et le passe à un autre. Le script est sur mon blog mais je le posterai ici aussi :)
Dans ce cas, les utilisateurs créés avec un
ad.example.com
suffixe UPN seront mis à jour avec leexample.com
suffixe.la source
Vous pouvez définir les suffixes UPN autorisés en accédant à ADSIEDIT.MSC, vous connecter à la structure d'unité d'organisation, cliquer avec le bouton droit sur l'unité d'organisation (dans la configuration par défaut) et modifier les attributs d'unité d'organisation. L'attribut OU à modifier est UPNSuffixes. Cela n'affecte cependant pas l'UPN par défaut attribué à un utilisateur créé dans cette unité d'organisation. Ajoutez le suffixe UPN souhaité à cette liste. Ensuite, créez un utilisateur de modèle à copier. Cliquez avec le bouton droit sur l'unité d'organisation, créez un nouvel utilisateur à utiliser comme modèle, attribuez le suffixe UPN correct, puis cliquez avec le bouton droit sur l'utilisateur une fois créé et désactivez le compte. Pour créer un nouvel utilisateur, cliquez avec le bouton droit sur l'utilisateur du modèle et copiez. Remplissez les champs sélectionnés et le nouvel utilisateur sera créé avec l'UPN approprié. Créez plusieurs utilisateurs de modèles pour les différents UPNS. Ou, en cas de doute, passez en PowerShell.
la source
En fait, vous pouvez exécuter dans le module Active Directory pour Powershell: Set-ADOrganizationalUnit "OU = XXX, DC = Domain, DC = com" -Add @ {upnsuffixes = "@ UPNSuffix.com".
Ou vous pouvez utiliser un "Get-adorganizationalUnit" avec un commutateur -Filter et un tuyau vers un "Set-ADOrganizationalUnit -Add @ {upnsuffixes =" @ UPNSuffix.com "'
J'ai trouvé cela après avoir cherché pendant un bon moment, donc j'espère que cela aide tout le monde.
la source
Cet article technique décrit comment ajouter ou supprimer des suffixes UPN dans votre domaine:
http://technet.microsoft.com/en-us/library/cc756018(WS.10).aspx
Il y a aussi une discussion à ce sujet ici:
http://technet.microsoft.com/en-us/library/cc739093(WS.10).aspx
Je ne peux pas en témoigner personnellement car je n'ai jamais eu à le faire, mais une chose me vient à l'esprit. Si vous allez faire cela, vous devrez garder à l'esprit que même si AD fonctionne correctement, il se peut que cela ne soit pas le cas pour les logiciels tiers que vous avez, ce qui peut supposer que le suffixe UPN est toujours le suffixe standard. . Examinez attentivement les conséquences avant d'effectuer le changement, en d'autres termes.
la source