Ajuda de script - precisa obter o número de telefone das contas do AD e adicioná-las aos contatos no domínio confiável

1

Eu tenho contas de domínio que criei como contatos em outro domínio confiável para que possam vê-las em sua GAL do Exchange.

Eu preciso de uma maneira de extrair o campo de número de telefone de UserA (conta de usuário) no DomainA e importá-lo para o UserA (contato) no DomainB.

Eu obtenho a lógica, é apenas o código (vbscript / powershell / whatever) que me ilude.

A lógica como eu a vejo:

  1. Conecte-se à fonte AD (ou / subtree)
  2. Extrair contas de usuário da UO e subcontentores, incluindo nome, sobrenome, nome de exibição e número de telefone
  3. Conecte-se ao AD alvo (ou / subtree)
  4. Verifique / combine o contato com o extrato no item 2 acima, com base no nome de exibição
  5. Atualizar campo de telefone com número de telefone na extração
  6. Escrever log de sucesso e falhas

Alguém capaz de ajudar?

    
por TheCleaner 29.03.2012 / 22:51

2 respostas

2

O problema é como você combina a conta de um lado com a conta do outro. Isso fará o extrato.

Alguma idéia de como fazer a correspondência na importação? Você tem um campo comum como employeeID em ambos? Caso contrário, pode ser necessária uma correspondência de vários campos complicada.

   get-aduser -filter * -searchbase "ou=users,dc=adomain,dc=com" -properties Telephonenumber|select displayname, givenname, sn, telephonenumber|export-csv phones.csv

import-csv phones.csv| foreach { 
  get-aduser -displayname $_.displayname -searchbase "ou=contacts dc=Bdomain,dc=com"  | set-aduser -telephoneNumber $_.telephonenumber
}
    
por 29.03.2012 / 23:55
1

Desde que todos os seus DisplayNames no Domínio A realmente correspondam aos seus DisplayNames no Domínio B, o seguinte deve fazer o truque.

No domínio A, execute:

Get-ADUser -filter * -properties TelephoneNumber,DisplayName | select DisplayName,TelephoneNumber | export-csv users.csv

No domínio B, execute:

Import-CSV users.csv | ForEach { get-aduser -filter "displayname -eq '$($_.displayname)'" | set-aduser -replace @{telephonenumber="$($_.TelephoneNumber)"} }

Tenha em mente que sou bastante novo no PowerShell, por isso posso ter cometido um erro. Eu testei em um único usuário, mas não em grande escala.

    
por 30.03.2012 / 00:41