Campo de seleção do Script do PowerShell do Active Directory e adicione a outro campo

2

Estou tentando criar um script para obter um campo de um usuário (OfficeNumber) no AD e movê-lo para outro campo de usuário (HomeNumber), procedendo de um número 800. Então, essencialmente, o que estamos fazendo é configurar a discagem de um toque no AD.

Exemplo de usuário John Doe - na guia geral ao lado de Telephone Number, que é o campo OfficeNumber, ele possui uma extensão 1234. Na guia Telefones, temos o campo Home, que é o campo HomeNumber no PowerShell e seu espaço em branco guia para John Doe.

O que eu quero fazer é preencher o campo HomeNum com o número do Office, mas procedeu por um número 800. Então, vai ficar assim: '8001239876 , 1,1234'

Eu sei como atualizar esses campos manualmente com o comando set-aduser, mas quero fazer um script em massa para todos os usuários em uma UO. Obrigado!

Edit: aqui está o código que eu criei:

Import-Module ActiveDirectory
Clear-Host
# Getting telephone number value from all users into specific location to $users variable
$users = Get-ADUser -Filter * -SearchBase "dc=domain,dc=com" -Properties telephoneNumber,homephone
# Defining phone number
$phoneNumber = "8008251234,,,1,"
# Creating cycle and digging into users one by one
foreach ($user in $users)
{
  # Creating variable which will contain predefined phone number and adds value of Telephone Number field 
  $homePhone = $phoneNumber + $user.telephoneNumber
  # Setting Home Number field with new variable in cycle (for each user)
  Set-ADUser -Identity $user.SamAccountName -HomePhone $homePhone
}
    
por DangeRuss 10.02.2016 / 21:11

2 respostas

3

Aqui está a ideia geral:

  1. Execute o get-aduser para enumerar as contas que você deseja. Talvez use um filtro para obter apenas contas com um OfficeNumber. Salve esse resultado em uma variável. $ usuários por exemplo.

  2. Use um bloco foreach ($ user in $ users) para percorrer a lista de usuários.

  3. Dentro desse bloco foreach, pegue o Officenumber, preencha seu número 1-800 e salve-o em uma nova variável. Em seguida, escreva essa variável no atributo HomeNumber.

por 10.02.2016 / 22:27
-1

Provavelmente, é melhor e mais rápido fazer isso com o PowerShell. Como já mencionado, use get-aduseer e dê um loop na lista que adicionaria um 800 para cada usuário.

Se você está tendo problemas com o PowerShell, existem ferramentas de terceiros que podem ajudar você com isso. Você pode, por exemplo use uma solução chamada Adaxes . Tudo o que você precisa fazer é selecionar todos os usuários desejados (executar uma pesquisa no Admin Console, que é semelhante ao ADUC, mas mais funcional e simplesmente selecionar os usuários necessários) e modificar a propriedade HomeNumber em massa, colocando ' 800% officeNumber% ', e isso funcionará.

Apesar de ser uma ferramenta paga, você pode fazer o download e usar a avaliação gratuita, por isso não vai custar nada se for um trabalho único.

    
por 11.02.2016 / 09:35