18/8/18

Editar atributos de Usuario en Active Directory via PowerShell

Editar atributos de usuarios vía PowerShell es de utilidad cuando la tarea que nos encargan es cambiarle y/o modificarle a una gran cantidad de usuarios detalles como el numero de teléfono, sector, oficina etc. 

Para hacer esto voy a mostrarles cuatro métodos, pero antes de comenzar es importante que tengan este listado a mano desde el cual podrán tomar nota del nombre del atributo extendido, conocido como lDAPDisplayName.

Los comandos mostrados a continuación deben ser ejecutados en una consola elevada de PowerShell desde un controlador de dominio o una terminal con los RSAT instalados. Al ejecutar el primer comando PowerShell cargará automaticamente el modulo de Active Directory; el mismo se instala en el equipo junto al roll de AD y/o junto a los RSAT.


Por Usuario:

Formato del Comando:
  • Set-ADUser SAM -Replace @{lDAPDisplayName="Texto a Ingresar"}
En este ejemplo cambiaremos el campo "Oficina" del Usuario "JManzur":
  • Set-ADUser JManzur -Replace @{physicalDeliveryOfficeName="Casa Central"}

Por Unidad Organizativa:

Tomamos nota del Distinguished Name de la UO:


Formato del Comando:
  • Get-ADUser -SearchBase "OU=Users,DC=Dominio,DC=local" -Filter * | Set-ADUser -Replace @{lDAPDisplayName="Texto a Ingresar"}
En este ejemplo cambiaremos el campo "Oficina" de todos los usuarios alojados en la UO "Users":
  • Get-ADUser -SearchBase "OU=Users,DC=Contoso,DC=local" -Filter * | Set-ADUser -Replace @{physicalDeliveryOfficeName="Casa Central"}

Por listado de usuarios especificados en un archivo .csv

Primeramente abrimos Notepad++ y creamos un archivo con el listado de usuarios en el siguiente formato:


Es importante que la primera linea tenga defino "usuario" (o cualquier otra descripción) ya que el comando buscara este atributo para reemplazarlo en orden consecutivo por los SAM de los usuarios que se listen debajo. Guardamos el archivo con extención .csv en un directorio que nos sea cómodo.

Formato del comando:
  • cd C:\directorio\Que\Aloja\csv
  • Import-Csv .\Nombre.csv | foreach{Set-ADUser $_.AtributoDefinidoEnCSV -Replace @{lDAPDisplayName="Texto a Ingresar"} -PassThru } | ft

En este ejemplo cambiaremos el campo "Oficina" de todos los usuarios listados en el archivo Usuarios.csv:
  • cd C:\Users\manzurj\Desktop
  • Import-Csv .\Usuarios.csv | foreach{Set-ADUser $_.usuario -Replace @{physicalDeliveryOfficeName="Casa Central"} -PassThru } | ft

Por listado de usuarios y contenido del atributo a modificar, especificados en un archivo .csv

En ese caso tendremos un archivo .csv que contendrá un listado de usuario y un listado del contenido a modificar/agregar en el atributo. Un ejemplo practico de esto es un listado de usuarios y su respectivos números de teléfono.

Armamos el .csv con el siguiente formato:










En este caso no utilizaremos como indicador del atributo el lDAPDisplayName sino el Property, también indicado en el .pdf de referencia al inicio del articulo.

Formato del Comando
  • cd C:\directorio\Que\Aloja\csv  
  • Import-Csv .\Nombre.csv | ForEach-Object {Set-ADUser -Identity $_.Atributo1DefinidoEnCSV -Property $_.Atributo2DefinidoEnCSV} -PassThru }
En este ejemplo editaremos el atributo personalizado "teléfono" para los usuarios listados en el .csv ingresando el numero indicado en el mismo archivo.
  • cd C:\Users\manzurj\Desktop
  • Import-Csv .\telefonos.csv | ForEach-Object {set-aduser -Identity $_.usuario -OfficePhone $_.telefono} -PassThru }

1 comentario :