Есть ли способ установить суффикс UPN по умолчанию для создания новых пользователей в Active Directory?
Например, если у меня в качестве домена AD используется corp.mydomain.com, и я добавил альтернативный суффикс UPN в разделе «Домены и доверие», то есть просто mydomain.com, есть ли способ сделать этот домен по умолчанию при создании нового пользователи?
Я знаю, что могу просто создать пользователя шаблона, а затем, когда я его скопирую, он будет иметь правильный суффикс по умолчанию, но мне просто любопытно, есть ли скрытый параметр, который бы это контролировал.
Насколько я знаю, это невозможно (ответ Эвана остается верным спустя 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
суффикс.
Я не знаю никакого документированного механизма для изменения суффикса UPN по умолчанию, который выбирается пользователями и компьютерами Active Directory. Я считаю, что инструмент жестко запрограммирован на получение первой части атрибута «canonicalName», определенного в объекте «crossRef» для домена, указанного в «CN = Partitions, CN = Configuration, ...» в вашем лесу.
Просто так случилось, что пользователи и компьютеры AD жестко запрограммированы на это. Если вы создаете учетные записи пользователей другими способами (например, «NET USER ... / add»), то для учетной записи не будет назначен атрибут userPrincipalName. Суффикс UPN по умолчанию на самом деле является просто значением по умолчанию для пользователей и компьютеров 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
Вы можете установить разрешенные суффиксы UPN, зайдя в ADSIEDIT.MSC, подключившись к структуре OU, щелкнув правой кнопкой мыши OU (в конфигурации по умолчанию) и отредактировав атрибуты OU. Атрибут OU для редактирования - UPNSuffixes. Однако это не влияет на UPN по умолчанию, назначенный пользователю, созданному в этом OU. Добавьте желаемый суффикс UPN в этот список. Затем создайте шаблон пользователя для копирования. Щелкните подразделение правой кнопкой мыши, создайте нового пользователя для использования в качестве шаблона, назначьте правильный суффикс UPN, а затем щелкните правой кнопкой мыши созданного пользователя и отключите учетную запись. Чтобы создать нового пользователя, щелкните правой кнопкой мыши на шаблоне пользователя и скопируйте ... заполните выбранные поля, и новый пользователь будет создан с правильным UPN. Создайте несколько шаблонов пользователей для разных UPNS. Или, если сомневаетесь, переключитесь на PowerShell.
Фактически, вы можете запустить в модуле Active Directory для Powershell: Set-ADOrganizationalUnit "OU = XXX, DC = Domain, DC = com" -Add @ {upnsuffixes = "@ UPNSuffix.com".
Или вы можете использовать Get-adorganizationalUnit с переключателем -Filter и передать его по конвейеру Set-ADOrganizationalUnit -Add @ {upnsuffixes = "@ UPNSuffix.com" '
Я нашел это после долгого поиска, так что надеюсь, что это кому-нибудь поможет.
В этой технической статье описывается, как добавлять или удалять суффиксы 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 всегда является стандартным. . Другими словами, прежде чем вносить изменения, внимательно обдумайте последствия.