Não há nenhum mecanismo documentado que eu saiba alterar o sufixo UPN padrão escolhido pelos usuários e computadores do Active Directory. Acredito que a ferramenta esteja conectada por cabo para levar a primeira parte do atributo "canonicalName" definida no objeto "crossRef" para o domínio especificado em "CN = Partições, CN = Configuração, ..." em sua floresta.
Usuários e computadores do AD apenas estão conectados para fazer isso. Se você criar contas de usuário usando outros meios ("NET USER ... / add", por exemplo), nenhum atributo userPrincipalName será atribuído à conta. O sufixo UPN padrão é realmente apenas um padrão em Usuários e computadores do AD, não um padrão do próprio serviço de diretório.
Se você encontrar o artigo da Microsoft KB com um script que mostra como obter programaticamente o sufixo UPN padrão ( http://support.microsoft.com/default.aspx?scid=kb;en-us;Q269441 ), cuidado para que o script contenha alguns erros de sintaxe (as linhas 17 e 32 estão malformadas e srrNamingContext na linha 32 deve ser strNamingContext). Incluirei uma versão fixa com uma pequena melhoria no final deste post (ele mostra os nomes de OUs individuais em que sufixos UPN adicionais podem ser definidos).
Eu adoraria ser corrigido por alguém mais "informado" do que eu, mas não estou vendo nenhuma maneira de fazer com que os usuários e computadores do AD ajam de maneira diferente.
' --- 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
Isso não pode ser feito até onde eu sei (a resposta de Evan ainda é verdadeira 4 anos depois).
Dito isto, escrevi um script que é executado no agendador de tarefas a cada poucas horas em mais de um cliente. Ele procura por um sufixo específico (o padrão na maioria dos casos) e o alterna para outro. O script está no meu blog, mas eu vou postá-lo aqui também :)
Nesse caso, os usuários criados com um
ad.example.com
sufixo UPN serão atualizados com oexample.com
sufixo.fonte
Você pode definir os sufixos UPN permitidos, acessando ADSIEDIT.MSC, conecte-se à estrutura da unidade organizacional, clique com o botão direito do mouse na unidade organizacional (na configuração padrão) e edite os atributos da unidade organizacional. O atributo OU para editar é UPNSuffixes. No entanto, isso não afeta o UPN padrão atribuído a um usuário criado nessa OU. Adicione o sufixo UPN desejado a esta lista. Em seguida, crie um usuário de modelo para Copiar. Clique com o botão direito do mouse na UO, crie um novo usuário para usar como modelo, atribua o Sufixo UPN correto e clique com o botão direito do mouse no usuário criado e desative a conta. Para criar um novo usuário, clique com o botão direito do mouse no usuário do modelo e copie. Preencha os campos selecionados e o novo usuário será criado com o UPN apropriado. Crie vários usuários de modelo para os diferentes UPNS. Ou, em caso de dúvida, mude para o PowerShell.
fonte
Na verdade, você pode executar no Módulo do Active Directory para PowerShell: Set-ADOrganizationalUnit "OU = XXX, DC = Domínio, DC = com" -Add @ {upnsuffixes = "@ UPNSuffix.com".
Ou você pode usar um "Get-adorganizationalUnit" com uma opção -Filter e canalizar para um 'Set-ADOrganizationalUnit -Add @ {upnsuffixes = "@ UPNSuffix.com"'
Achei isso depois de procurar por um bom tempo, então espero que isso ajude alguém.
fonte
Este artigo técnico descreve como adicionar ou remover sufixos UPN no seu domínio:
http://technet.microsoft.com/en-us/library/cc756018(WS.10).aspx
Há também uma discussão sobre isso aqui:
http://technet.microsoft.com/en-us/library/cc739093(WS.10).aspx
Não posso atestar isso pessoalmente, porque nunca tive que fazer isso, mas uma coisa vem à mente. Se você fizer isso, precisará ter em mente que, embora o AD funcione corretamente, o mesmo pode não ser o caso de qualquer software de terceiros que você possua, o que pode assumir que o sufixo UPN é sempre o padrão . Considere as consequências cuidadosamente antes de fazer a alteração, em outras palavras.
fonte