Установить суффикс 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суффиксом.

MDMarra
источник
Я задумался об использовании уведомлений об изменениях в 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. Мой вопрос был об установке суффикса по умолчанию для добавления новых пользователей.
Адам Бренд