Встановіть за замовчуванням суффікс UPN для створення нових користувачів в Active Directory


12

Чи є спосіб встановити за замовчуванням суфікс UPN для створення нових користувачів Active Directory?

Наприклад, якщо я маю corp.mydomain.com як свій домен AD, і я додав альтернативний суфікс UPN під доменами та трастами, який є лише mydomain.com, чи є спосіб, щоб цей домен був за замовчуванням під час створення нового користувачів?

Я знаю, що я можу просто створити користувача шаблону, і тоді, коли я його скопіюю, він матиме правильний суфікс за замовчуванням, але просто цікаво, чи існував прихований параметр, який би контролював це.

Відповіді:


8

Немає документально підтвердженого механізму зміни суфіксу UPN за замовчуванням, який вибирають користувачі та комп’ютери Active Directory. Я вважаю, що інструмент важко провідний, щоб прийняти першу частину атрибута "canonicalName", визначеного на об'єкті "crossRef", для домену, зазначеного у "CN = Розділи, CN = Конфігурація, ..." у вашому лісі.

Користувачам та комп’ютерам AD просто трапляється робити це важко. Якщо ви створюєте облікові записи користувачів за допомогою інших засобів (наприклад, "NET USER ... / add"), атрибут userPrincipalName не буде призначений для цього облікового запису. Суфікс UPN за замовчуванням насправді є лише типовим для користувачів AD і комп’ютерів AD, а не за замовчуванням самого каталогу служб.

Якщо ви зіткнетесь зі статтею Microsoft KB із скриптом, який показує, як програмно отримати суфікс UPN за замовчуванням ( http://support.microsoft.com/default.aspx?scid=kb;en-us;Q269441 ), майте на увазі, що скрипт має в ньому пару синтаксичних помилок (рядки 17 і 32 неправильно сформовані, а srrNamingContext у рядку 32 повинен бути strNamingContext). Я включу фіксовану версію з незначним поліпшенням в кінці цієї публікації (вона показує назви окремих ОУ, де можуть бути визначені додаткові суфікси UPN).

Я б хотів, щоб мене виправили хтось, хто більше «знає», ніж я, але я не бачу жодного способу змусити користувачів AD і комп’ютерів діяти інакше.

' --- 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

Я сподівався, що буде якийсь запис у реєстрі чи щось таке. Я відзначу це правильним, якщо ніхто більше не поспішає ні з чим у наступні 24 години.
Адам Бренд

У нашому випадку ми запускаємо щоденний скрипт, який перевіряє UPN кожного користувача, і якщо вони не мають стандартних імен, він змінює їх на стандартні. Цей скрипт розглядає багато атрибутів і за потреби їх виправляє.
КАП

@KAPes: Це ідеальна ідея. На сайтах, де декілька делегованих адміністраторів AD створюють облікові записи користувачів, я зазвичай розгортаю сценарії, щоб виконати більшість завдань, що надаються. І все-таки я міг бачити сценарії деяких запитів LDAP, щоб генерувати "Ей, манекен, ти задумав це неправильно!" електронні листи (або, очевидно, щоб виправити речі автоматично, коли комп'ютер має достатньо інформації, щоб зробити це автоматично).
Еван Андерсон

Відповідь Евана все ще правильна. Деякі також запропонували встановити атрибут uPNSuffixes на OU. Це просто замінить список uPNSuffixes, встановлений у домені, але все одно за замовчуванням має значення canonicalName домену.
charleswj81

8

Наскільки я не знаю, цього не можна зробити (відповідь Евана все-таки правдива через 4 роки).

Це означає, що я написав сценарій, який працює в планувальнику завдань кожні кілька годин для більш ніж одного клієнта. Він шукає певний суфікс (за замовчуванням у більшості випадків) і перемикає його на інший. Сценарій є у моєму щоденнику, але я його також опублікую тут :)

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
}

У цьому випадку користувачі, створені за допомогою ad.example.comсуфікса UPN, будуть оновлені example.comсуфіксом.


Мені довелося думати про використання сповіщень про зміну AD, щоб робити подібні речі в режимі реального часу, але це буде нерозумно.
Еван Андерсон

1
UPN набуває все більшого значення з вимогами O365 та вимогами дирсинхронізації до ADFS SSO. Ви б могли подумати, що зараз щось запечене :)
MDMarra

Іноді я думаю, що я єдина людина, яка фактично використовує продукти Microsoft. > посмішка <Я готуюсь виконати свою першу реалізацію Office365 протягом наступних кількох тижнів (повний w / гібридний обмін на місці / поза сайтом), тож я незабаром переживаю всю цю забаву ADFS SSO та DirSync достатньо.
Еван Андерсон

Я не роблю O365 безпосередньо (у нас є кілька хлопців, які працюють у колективі), але я провів деяку роботу в Intune, яка використовує той самий орендар Azure AD. Я сподіваюсь, що ваша перша їзда
плавніша,

Додаючи зауваження, що .Replace відрізняється від регістру, тому якщо UserPrincipalName є "ім'я користувача@AD.Example.com", воно не відповідатиме рядку "ad.example.com". До цього можна додати метод .toLower () спочатку так: $ UPN = $ _. UserPrincipalName.toLower (). Замінити ("ad.example.com", "example.com")
Чад Рексін

0

Ви можете встановити дозволені суфікси UPN, зайшовши в ADSIEDIT.MSC, підключившись до структури OU, клацніть правою кнопкою миші OU (у конфігурації за замовчуванням) та відредагуйте атрибути OU. Атрибут OU для редагування - це UPNSuffixes. Однак це не впливає на типовий UPN, призначений користувачеві, створеному в рамках цього OU. Додайте до цього списку потрібний суфікс UPN. Далі створіть користувача шаблону для копіювання. Клацніть правою кнопкою миші ОУ, створіть нового користувача, який буде використовуватись як шаблон, призначте правильний суфікс UPN, а потім клацніть правою кнопкою миші користувача, щойно створив та вимкніть обліковий запис. Щоб створити нового користувача, клацніть правою кнопкою миші користувача шаблона та скопіюйте .. заповніть вибрані поля, і новий користувач буде створений відповідним UPN. Створіть кілька користувачів шаблонів для різних UPNS. Або, якщо сумніваєтесь, переключіться на shellhell.


-3

Власне, ви можете запустити модуль Active Directory для Powershell: Set-ADOrganizationalUnit "OU = XXX, DC = Домен, DC = com" -Add @ {upnsuffixes = "@ UPNSuffix.com".

Або ви можете використовувати "Get-adorganizationalUnit" з перемикачем -Filter і передавати його на "Set-ADOrganizationalUnit -Add @ {upnsuffixes =" @ UPNSuffix.com "'

Я виявив це, шукаючи досить довго, тому сподіваюся, що це допоможе комусь.


Питання полягає у встановленні за замовчуванням суфікса для додавання нових користувачів, а не додавання суффіксу upn.
австрійський

-4

У цій статті про техніку описано, як додати або видалити UPN-суфікси у вашому домені:

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

Тут також обговорюється:

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

Я не можу поручитися за це особисто, так як мені ніколи цього не доводилося робити, але одна річ має на увазі весну. Якщо ви будете робити це, вам потрібно мати на увазі, що в той час, як AD буде працювати правильно, те ж саме не може бути у випадку з будь-яким стороннім програмним забезпеченням, яке може припустити, що суфікс UPN завжди є стандартним . Розгляньте наслідки, перш ніж вносити зміни, іншими словами.


2
Так, я знаю, як додати суфікси UPN. Моє питання полягав у встановленні за замовчуванням суфікса для додавання нових користувачів.
Адам Бренд
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.