Tetapkan Sufiks UPN Default untuk Membuat Pengguna Baru di Direktori Aktif

12

Apakah ada cara untuk menetapkan akhiran UPN default untuk membuat pengguna baru direktori aktif?

Misalnya, jika saya memiliki corp.mydomain.com sebagai domain AD saya, dan saya telah menambahkan akhiran UPN alternatif di bawah Domain dan Perwalian yang hanya mydomain.com, apakah ada cara untuk menjadikan domain tersebut sebagai default saat membuat yang baru pengguna?

Saya tahu saya bisa membuat pengguna template dan kemudian ketika saya menyalinnya, itu akan memiliki akhiran default yang tepat, tetapi hanya ingin tahu apakah ada pengaturan tersembunyi yang akan mengendalikan ini.

Adam Brand
sumber

Jawaban:

8

Tidak ada mekanisme yang terdokumentasi yang saya ketahui untuk mengubah akhiran UPN default yang dipilih oleh Pengguna dan Komputer Direktori Aktif. Saya percaya bahwa alat ini terprogram untuk mengambil bagian pertama dari atribut "canonicalName" yang didefinisikan pada objek "crossRef" untuk domain yang ditentukan dalam "CN = Partitions, CN = Configuration, ..." di hutan Anda.

Pengguna AD dan Komputer kebetulan terprogram untuk melakukan ini. Jika Anda membuat akun pengguna menggunakan cara lain ("NET USER ... / add", misalnya) maka tidak ada atribut userPrincipalName yang akan ditetapkan ke akun. Akhiran UPN default benar-benar hanya default di AD Users and Computers, bukan default dari layanan direktori itu sendiri.

Jika Anda menemukan artikel Microsoft KB dengan skrip di dalamnya yang menunjukkan kepada Anda cara mendapatkan akhiran UPN secara terprogram ( http://support.microsoft.com/default.aspx?scid=kb;en-us;Q269441 ), berhati-hatilah bahwa skrip memiliki beberapa kesalahan sintaksis di dalamnya (baris 17 dan 32 salah format dan srrNamingContext pada baris 32 harus strNamingContext). Saya akan menyertakan versi tetap dengan perbaikan kecil di akhir posting ini (ini menunjukkan kepada Anda nama-nama OU individu di mana sufiks UPN tambahan mungkin didefinisikan).

Saya ingin dikoreksi oleh seseorang yang lebih "tahu" daripada saya, tetapi saya tidak melihat cara apa pun untuk membuat Pengguna AD dan Komputer bertindak berbeda.

' --- 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
sumber
Saya berharap ada beberapa entri registri atau sesuatu. Saya akan menandai ini sebagai benar jika tidak ada orang lain yang berdebat dengan apa pun dalam 24 jam berikutnya.
Adam Brand
Dalam kasus kami, kami menjalankan skrip harian yang memeriksa UPN dari setiap pengguna dan jika mereka tidak memiliki penamaan standar, itu mengubahnya menjadi standar. Script ini melihat banyak atribut dan memperbaikinya jika diperlukan.
KAPes
@ KAPes: Itu ide yang rapi. Di situs tempat banyak administrator AD yang didelegasikan membuat akun pengguna, saya biasanya telah menggunakan skrip untuk melakukan sebagian besar tugas penyediaan. Namun, saya dapat melihat membuat beberapa permintaan LDAP untuk menghasilkan "Hei, dummy - Anda salah sangka!" email (atau, tentu saja, untuk memperbaikinya secara otomatis ketika komputer memiliki cukup informasi untuk melakukannya secara otomatis).
Evan Anderson
Jawaban Evan masih benar. Beberapa juga menyarankan pengaturan atribut uPNSuffixes pada OU. Ini hanya akan menimpa daftar uPNSuffixes yang ditetapkan pada domain tetapi akan tetap default ke canonicalName domain.
charleswj81
8

Ini tidak dapat dilakukan sejauh yang saya tahu (jawaban Evan masih benar 4 tahun kemudian).

Yang mengatakan, saya telah menulis skrip yang berjalan di penjadwal tugas setiap beberapa jam di lebih dari satu klien. Ia mencari sufiks tertentu (default dalam kebanyakan kasus) dan mengubahnya ke yang lain. Scriptnya ada di blog saya tapi saya juga akan mempostingnya di sini :)

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
}

Dalam hal ini, pengguna yang dibuat dengan ad.example.comsufiks UPN akan diperbarui dengan example.comsufiks.

MDMarra
sumber
Saya harus berpikir tentang menggunakan pemberitahuan perubahan AD untuk melakukan hal semacam ini secara realtime tetapi itu akan menjadi keterlaluan konyol.
Evan Anderson
1
UPN menjadi semakin penting dengan persyaratan O365 dan dirsync untuk ADFS SSO. Anda akan berpikir akan ada sesuatu yang dipanggang sekarang :)
MDMarra
Terkadang saya pikir saya satu-satunya orang yang benar - benar menggunakan produk Microsoft. > tersenyum <Saya sedang bersiap-siap untuk melakukan implementasi Office365 pertama saya dalam beberapa minggu ke depan (menyelesaikan pertukaran hybrid on-site / off-site) jadi saya akan mengalami semua kesenangan itu segera ADFS SSO dan DirSync menyenangkan cukup.
Evan Anderson
Saya tidak melakukan O365 secara langsung (kami memiliki beberapa orang staf collab), tapi saya telah melakukan beberapa pekerjaan Intune yang menggunakan AD penyewa Azure yang sama. Saya harap perjalanan pertama Anda lebih lancar daripada milik saya :)
MDMarra
Menambahkan catatan bahwa .Replace peka terhadap huruf besar-kecil, jadi jika UserPrincipalName adalah "[email protected]", itu tidak akan cocok dengan string "ad.example.com". Ini dapat menambahkan metode .toLower () pertama seperti ini: $ UPN = $ _. UserPrincipalName.toLower (). Ganti ("ad.example.com", "example.com")
Chad Rexin
0

Anda dapat mengatur Sufiks UPN yang diizinkan, dengan masuk ke ADSIEDIT.MSC, tancapkan ke Struktur OU, klik kanan OU (dalam konfigurasi default), dan edit Atribut OU. Atribut OU yang akan diedit adalah UPNSuffixes. Namun ini tidak mempengaruhi, UPN default yang ditetapkan untuk pengguna yang dibuat dalam OU itu. Tambahkan Sufiks UPN yang diinginkan ke daftar ini. Selanjutnya, buat pengguna templat untuk disalin. Klik kanan OU, buat pengguna baru untuk digunakan sebagai templat, tetapkan Sufiks UPN yang benar, lalu klik kanan pengguna setelah membuat dan menonaktifkan akun. Untuk membuat pengguna baru, klik kanan pengguna template dan salin .. isi bidang yang dipilih, dan pengguna baru akan dibuat dengan UPN yang tepat. Buat beberapa pengguna templat untuk UPNS yang berbeda. Atau, jika ragu, beralihlah ke PowerShell.

Justin Robbins
sumber
-3

Sebenarnya, Anda dapat menjalankan di Modul Direktori Aktif untuk Powershell: Set-ADOrganizationalUnit "OU = XXX, DC = Domain, DC = com" -Tambahkan @ {upnsuffixes = "@ UPNSuffix.com".

Atau Anda dapat menggunakan "Get-adorganizationalUnit" dengan -Filter switch dan pipa itu ke 'Set-ADOrganizationalUnit -Tambahkan @ {upnsuffixes = "@ UPNSuffix.com"'

Saya menemukan ini setelah mencari cukup lama, jadi saya harap ini membantu siapa pun.

Ramuan Huddleston
sumber
Pertanyaannya adalah tentang pengaturan akhiran default untuk menambahkan pengguna baru, bukan menambahkan akhiran upn.
austinian
-4

Artikel teknik ini menjelaskan cara menambah atau menghapus akhiran UPN di domain Anda:

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

Ada juga diskusi di sini:

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

Saya tidak bisa menjaminnya secara pribadi karena saya tidak pernah harus melakukan ini, tetapi satu hal muncul dalam pikiran. Jika Anda akan melakukan ini, Anda harus ingat bahwa sementara AD akan bekerja dengan benar, hal yang sama mungkin tidak berlaku untuk perangkat lunak pihak ke-3 yang Anda miliki, yang mungkin mengasumsikan bahwa akhiran UPN selalu merupakan yang standar . Pertimbangkan konsekuensinya dengan cermat sebelum melakukan perubahan, dengan kata lain.

Maximus Minimus
sumber
2
Ya, saya tahu cara menambahkan sufiks UPN. Pertanyaan saya adalah tentang pengaturan akhiran default untuk menambahkan pengguna baru.
Adam Brand