Zerkana

martes, 15 de abril de 2014

Como Modificar Atributos de Usuario del Dominio con Powershell.

Hola a todos.

Como ejemplo de para cambiar el atributo de los usuarios de Acive Directory utilizando Powershell, nos vamos a montar el siguiente escenario:

·       Tenemos 100 Usuarios en el departamento de Publicidad (OU=Publicidad).
·       Después de muchos años han decidido montar una centralita con un solo número de teléfono (915 555 777).
·       Nos piden los jefes, que asignemos a los usuarios el nuevo número de teléfono más la extensión, la cual será los 3 últimos números de su número de móvil, vamos, el resultado final debe ser “Número;ext=Extensión”. 

Manos a la Obra.  

Primero os pongo una captura de los usuarios con su respectiva OU. 

 
Para ello utilizaremos el siguiente Código, el cual he documentado para que sea fácil de entender:
 
 
 

#----------------------------------------------------
# Buscamos los Usuarios Contenidos en la Unidad Organizativa y los pasamos a una Variable
#---------------------------------------------------- 

$Usuarios = Get-ADUser -Filter * -SearchBase "OU=Publicidad,DC=abiurrunc,DC=es" -Propertie sAMAccountName, TelephoneNumber, Mobile 

#-----------------------------------------------------------------------------
# Para cada Usuario Contenido en la VAriable ejecutaremos el siguiente grupo de comandos contenido entre los Corchetes
#------------------------------------------------------------------------------
 
foreach ($Usuario in $Usuarios) 
{  
    #----------------------------------------------------
    # Almacenamos la cuenta de Usuario en una Variable.
    #----------------------------------------------------   

    $CuentaDeUsuario    = $Usuario.sAMAccountName 

    #--------------------------------------------------------------------------
    # Le damos formato al número según nos han pedido ("915 555 555;ext=")
    # Extraemos los 3 últimos números del Mobile ($Usuario.Mobile.Substring(6)
    # Lo Unimos y lo almacenamos en una Variable  
    #----------------------------------------------------------------------------
 
    $NumerodeTelefono   = "915 555 777;ext=" + $Usuario.Mobile.Substring(6)
 
    #----------------------------------------------------------------------------
    # Para ver como ocurre el Proceso lo presentamos en Pantalla conforme se ejecuta.
    #---------------------------------------------------------------------------
 
    Write-Host "Usuario: $CuentaDeUsuario" " $NumerodeTelefono" -ForegroundColor White
 
    #----------------------------------------------------------------------------
    # Añadimos a la cuenta del Usuario El número de teléfono con su extensión
    #------------------------------------------------------------------------------

    Set-ADUser -Identity $CuentaDeUsuario -Replace @{TelephoneNumber=$NumerodeTelefono}

} 
 
 
 
 En esta captura se ve como nuestro código ha funcionado.

 
Espero que os haya gustado.

Hasta el próximo Post.

Angel Biurrun Cabrero
Consultor - Administrador de Sistemas.
MCSA:     Microsoft® Windows Server 2012.    
MCITP:   Virtualization Administrator on Windows Server® 2008 R2.  
MCSA:     Microsoft® Windows Server 2003.

4 comentarios:

Unknown dijo...

Hola!!
Sabes como modificar el campo de alias y mail en el DA desde powershell

Gracias!

Sergio dijo...

Genial el script, funciona de maravilla lo utilice para cambiar los atributos del país y jalo sin problemas, muchas gracias master

Saludos desde México

Unknown dijo...

se puede colocar el campo "TelephoneNumber" en una variable de ingreso para luego ejecutarlo dentro de un foreach?

ejemplo:
$campo = Read-Host "Ingrese nombre exacto del campo a modificar"
.
.
.
Set-ADUser $user.SamAccountName -Replace @{$campo=$user.telefono}
.
.

Unknown dijo...

Como podria editar el campo, pais por power shell, actualmente pongo Country pero no jala. Gracias por tu ayuda.