Nie mam udokumentowanego mechanizmu, o którym wiem, że mógłby zmienić domyślny sufiks UPN wybierany przez użytkowników i komputery usługi Active Directory. Wydaje mi się, że narzędzie ma stałe połączenie z pierwszą częścią atrybutu „canonicalName” zdefiniowanego w obiekcie „crossRef” dla domeny określonej w „CN = partycje, CN = konfiguracja ...” w twoim lesie.
Użytkownicy i komputery AD są po prostu podłączeni do tego celu. Jeśli utworzysz konta użytkowników przy użyciu innych środków (na przykład „NET USER ... / add”), wówczas do konta nie zostanie przypisany żaden atrybut userPrincipalName. Domyślny sufiks UPN jest tak naprawdę tylko domyślny dla użytkowników i komputerów AD, a nie domyślny samej usługi katalogowej.
Jeśli natrafisz na artykuł Microsoft KB ze skryptem, który pokazuje, jak programowo uzyskać domyślny sufiks UPN ( http://support.microsoft.com/default.aspx?scid=kb;en-us;Q269441 ), Uwaga: skrypt zawiera kilka błędów składniowych (wiersze 17 i 32 są zniekształcone, a srrNamingContext w wierszu 32 powinien mieć postać strNamingContext). Na końcu tego postu dołączę poprawioną wersję z drobną poprawką (pokazuje nazwy poszczególnych jednostek organizacyjnych, w których można zdefiniować dodatkowe sufiksy UPN).
Chciałbym być poprawiony przez kogoś bardziej „znającego się na mnie” niż ja, ale nie widzę żadnego sposobu, aby użytkownicy i komputery AD działali inaczej.
' --- 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
O ile mi wiadomo, nie można tego zrobić (odpowiedź Evana nadal jest prawdą 4 lata później).
To powiedziawszy, napisałem skrypt, który działa w harmonogramie zadań co kilka godzin na więcej niż jednym kliencie. Wyszukuje określony sufiks (w większości przypadków domyślny) i przełącza go na inny. Skrypt jest na moim blogu, ale opublikuję go tutaj :)
W takim przypadku użytkownicy utworzeni z
ad.example.com
sufiksem UPN zostaną zaktualizowani zexample.com
sufiksem.źródło
Możesz ustawić dozwolone sufiksy UPN, wchodząc do ADSIEDIT.MSC, podłącz do struktury jednostki organizacyjnej, kliknij prawym przyciskiem myszy jednostkę organizacyjną (w konfiguracji domyślnej) i edytuj atrybuty jednostki organizacyjnej. Atrybut OU do edycji to UPNSuffixes. Nie wpływa to jednak na domyślną nazwę UPN przypisaną do użytkownika utworzonego w tej jednostce organizacyjnej. Dodaj żądany sufiks UPN do tej listy. Następnie utwórz szablon użytkownika do skopiowania. Kliknij prawym przyciskiem myszy jednostkę organizacyjną, utwórz nowego użytkownika do użycia jako szablon, przypisz poprawny sufiks UPN, a następnie kliknij prawym przyciskiem myszy użytkownika po utworzeniu i wyłącz konto. Aby utworzyć nowego użytkownika, kliknij prawym przyciskiem myszy użytkownika szablonu i skopiuj .. wypełnij wybrane pola, a nowy użytkownik zostanie utworzony z właściwą nazwą UPN. Utwórz wielu użytkowników szablonów dla różnych UPNS. Lub w razie wątpliwości przejdź do PowerShell.
źródło
W rzeczywistości można uruchomić w module Active Directory dla programu PowerShell: Set-ADOrganizationalUnit "OU = XXX, DC = Domena, DC = com" -Dodaj @ {upnsuffixes = "@ UPNSuffix.com".
Lub możesz użyć „Get-adorganizationalUnit” z przełącznikiem -Filter i potokować go do „Set-ADOrganizationalUnit -Add @ {upnsuffixes =" @ UPNSuffix.com ”
Znalazłem to po dłuższej perspektywie, więc mam nadzieję, że to pomoże każdemu.
źródło
W tym artykule opisano, jak dodawać lub usuwać sufiksy UPN w domenie:
http://technet.microsoft.com/en-us/library/cc756018(WS.10).aspx
Tutaj jest też dyskusja na ten temat:
http://technet.microsoft.com/en-us/library/cc739093(WS.10).aspx
Nie mogę ręczyć za to osobiście, ponieważ nigdy nie musiałem tego robić, ale jedno przychodzi mi na myśl. Jeśli zamierzasz to zrobić, musisz pamiętać, że chociaż AD będzie działać poprawnie, to samo może nie mieć miejsca w przypadku żadnego oprogramowania firm trzecich, które może zakładać, że sufiks UPN jest zawsze standardowy . Innymi słowy, dokładnie przeanalizuj konsekwencje przed dokonaniem zmiany.
źródło