Установить суффикс UPN по умолчанию для создания новых пользователей в Active Directory


12

Есть ли способ установить суффикс UPN по умолчанию для создания новых пользователей Active Directory?

Например, если в качестве домена AD у меня есть corp.mydomain.com, и я добавил альтернативный суффикс UPN в разделе «Домены и доверие», то есть просто mydomain.com, есть ли способ сделать этот домен по умолчанию при создании нового пользователей?

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

Ответы:


8

Мне не известен документированный механизм изменения суффикса UPN по умолчанию, который выбирают пользователи и компьютеры Active Directory. Я полагаю, что этот инструмент жестко привязан к первой части атрибута «canonicalName», определенной в объекте «crossRef» для домена, указанного в «CN = Partitions, CN = Configuration, ...» в вашем лесу.

Пользователи и компьютеры AD просто оказались зашитыми для этого. Если вы создаете учетные записи пользователей с помощью других средств (например, «NET USER ... / add»), то для учетной записи не будет назначен атрибут userPrincipalName. Суффикс UPN по умолчанию - это просто значение по умолчанию в AD Users and Computers, а не значение по умолчанию для самой службы каталогов.

Если вы столкнетесь со статьей 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

@KAPes: это хорошая идея. На сайтах, где несколько делегированных администраторов AD создают учетные записи пользователей, я обычно развертывал сценарии для выполнения большей части работы по подготовке. Тем не менее, я мог видеть сценарии некоторых запросов LDAP для генерации "Эй, тупица - ты подготовил это неправильно!" электронные письма (или, очевидно, чтобы исправить вещи автоматически, когда компьютер имеет достаточно информации, чтобы сделать это автоматически).
— Эван Андерсон

Ответ Эвана все еще правильный. Некоторые также предложили установить атрибут uPNSuffixes в подразделении. Это просто переопределит список 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 и требованиями dirsync для ADFS SSO. Вы могли бы подумать, что к этому моменту что-то
— испечется

Иногда я думаю, что я единственный человек, который на самом деле использует продукты Microsoft. > smile <Я готовлюсь к своей первой реализации Office365 в ближайшие пару недель (полный обмен на сайте / на внешнем / внешнем сервере), так что скоро я смогу испытать все эти забавные возможности ADFS SSO и DirSync довольно.
— Эван Андерсон

Я не работаю с O365 напрямую (у нас в штате пара ребят из коллаборационистов), но я проделал небольшую работу в Intune, в которой используется тот же клиент Azure AD. Я надеюсь, что ваша первая поездка была более гладкой, чем моя была :)
— MDMarra

Добавление примечания о том, что .Replace учитывает регистр, поэтому, если UserPrincipalName имеет значение «username@AD.Example.com», он не будет соответствовать строке «ad.example.com». Это может быть добавление метода .toLower (), сначала так: $ UPN = $ _. UserPrincipalName.toLower (). Replace ("ad.example.com", "example.com")
— Чад

0

Вы можете установить разрешенные суффиксы UPN, зайдя в ADSIEDIT.MSC, подключившись к структуре OU, щелкните правой кнопкой мыши OU (в конфигурации по умолчанию) и отредактируйте атрибуты OU. Атрибут OU для редактирования - UPNSuffixes. Однако это не влияет на UPN по умолчанию, назначенный пользователю, созданному в этом OU. Добавьте нужный суффикс UPN в этот список. Далее создайте шаблон пользователя для копирования. Щелкните правой кнопкой мыши подразделение, создайте нового пользователя для использования в качестве шаблона, назначьте правильный суффикс UPN, а затем щелкните правой кнопкой мыши созданного пользователя и отключите учетную запись. Чтобы создать нового пользователя, щелкните правой кнопкой мыши шаблон пользователя и скопируйте. Заполните выбранные поля, и новый пользователь будет создан с соответствующим именем участника-пользователя. Создайте несколько пользователей шаблона для разных UPNS. Или, если сомневаетесь, переключитесь на powershell.


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