La Set-ADUser cmdlet permite modificar las propiedades (atributos) del usuario en Active Directory mediante PowerShell. Tradicionalmente, un complemento MMC gráfico dsa.msc (Usuarios y equipos de Active Directory, ADUC) se utiliza para editar las propiedades de los usuarios de AD. El complemento ADUC se puede utilizar para cambiar las propiedades del usuario o los atributos avanzados en la pestaña Editor de atributos. Sin embargo, no puede modificar de forma masiva los atributos del usuario a través de la consola ADUC (es parcialmente posible hacerlo mediante consultas guardadas de AD). En este artículo, veremos algunos ejemplos del uso del cmdlet Set-ADUser para cambiar las propiedades del usuario en AD.

La Set-ADUser cmdlet es parte del módulo de Active Directory para Windows PowerShell y el módulo debe estar instalado en su computadora. En Windows Server, el módulo RSAT-AD-PowerShell se instala desde las funciones de Windows, y en Windows 10 debe instalarlo desde RSAT:

Add-WindowsCapability –online –Name “Rsat.ActiveDirectory.DS-LDS.Tools~~~~0.0.1.0”

Modificación de las propiedades de usuario en Active Directory con PowerShell

El cmdlet Get-ADUser tiene alrededor de 50 opciones relacionadas con los atributos de AD (ciudad, empresa, departamento, descripción, dirección de correo electrónico, teléfono móvil, organización, nombre de usuario principal, etc.). Puede mostrar la lista de atributos disponibles usando el siguiente comando:

Get-Help Set-ADUser -Parameter *|ft

El nombre de un usuario para el que desea cambiar los atributos de AD se especifica en el obligatorio Identidad opción (puede especificarlo como sAMAccountName, SID, Distinguished Name u objectGUID).

Por ejemplo, obtengamos el valor del atributo de título de un usuario que usa el cmdlet Get-ADUser:

Get-ADUser -Identity M.Becker -Properties title|select-object name,title

Luego cambie su título de trabajo en AD:

Set-ADuser M.Becker –title “Junior DevOps Engineer”

Puede cambiar los valores de varios atributos a la vez. Por ejemplo, establezcamos una nueva dirección de correo electrónico y una lista de computadoras en las que un usuario puede iniciar sesión:

Set-ADUser M.Becker –EmailAddress [email protected] –LogonWorkstations 'munx32f2r13,munx32f2r15'

El siguiente comando deshabilitará una cuenta de usuario en el dominio:

Set-ADUser M.Becker -Enabled $False

Puede cambiar una foto de usuario en AD:

Set-ADUser M.Becker -Replace @{thumbnailPhoto=([byte[]](Get-Content "C:scriptsadm.becker.jpg" -Encoding byte))}

Puede editar valores de otros atributos de usuario (incluidos extensionAttribute y atributos personalizados) en AD usando estas opciones de Set-ADUser:

  • Agregar - agrega un valor de atributo
  • Reemplazar - reemplaza un valor de atributo
  • Claro - borra un valor de atributo
  • Eliminar - elimina uno de los valores de atributo

Por ejemplo, para cambiar el número de teléfono de un usuario, puede usar este comando:

Set-ADUser M.Becker -MobilePhone $NewNumber

O:

Set-ADUser M.Becker -replace @{'MobilePhone' = $($Number) }

Para agregar un nuevo valor a extensionAttribute5:

Set-ADUser M.Becker -Add @{extensionAttribute5 = "Test1"}

Para borrar un valor de atributo:

Set-ADUser M.Becker -Clear "extensionAttribute5"

Puede cambiar los valores de varios atributos a la vez:

Set-ADUser M.Becker -Replace @{title="Senior DevOps";company="XYZ"}

Además, con estas opciones, puede cambiar atributos de varios valores. Por ejemplo, agreguemos varias ProxyAddresses (alias de correo electrónico) a un usuario:

Set-ADUser M.Becker -add @{ProxyAddresses="smtp:[email protected], ,SMTP:[email protected] " -split ","}

¿Cómo modificar de forma masiva los atributos de los usuarios de Active Directory?

Puede cambiar los atributos de varios usuarios a la vez. Por ejemplo, el siguiente comando cambiará el valor del atributo UserAccountControl y obligará a todos los usuarios de la unidad organizativa especificada a cambiar sus contraseñas en el próximo inicio de sesión:

Get-ADUser -Filter * -SearchBase "OU=Users,OU=DE,DC=woshub,DC=loc" | Set-ADUser -ChangePasswordAtLogon $true

Puede actualizar de forma masiva los atributos de usuario de AD con los valores de un archivo CSV. Por ejemplo, tiene un archivo CSV con la lista de cuentas, títulos y números de teléfono (el formato de archivo es: SamAccountName, título, teléfono móvil).

Modificación de usuarios de Active Directory de forma masiva mediante archivo CSV

Para actualizar los atributos de usuario con los valores del archivo CSV, ejecute el siguiente comando de PowerShell:

Import-Csv "C:scriptsadupdate_ad_users.csv" | foreach {Set-ADUser -Identity $_.SamAccountName –Title $_.Title -MobilePhone $_.MobilePhone}

¿Cómo mostrar el nombre de la computadora del usuario registrado en ADUC?

En uno de los artículos anteriores, mostramos cómo agregar información de usuario a las propiedades de la computadora en AD mediante el cmdlet Set-ADComputer. Ahora consideremos otro enfoque e intentemos agregar información sobre una computadora en la que un usuario está conectado a las propiedades del usuario en Active Directory.

Para hacerlo, basta con agregar el siguiente script de PowerShell a los scripts de inicio de sesión de GPO que se ejecutarán cuando un usuario inicie sesión en la computadora (Configuración de usuario -> Políticas -> Configuración de Windows -> Scripts -> Inicio de sesión):

Set-ADUser -identity $env:UserName –Description $env:computername

Esto le permitirá encontrar rápidamente el nombre de la computadora en la que el usuario está conectado.

Mostrar el usuario que inició sesión ComputerName en AD

En este ejemplo, guardamos el nombre de la computadora actual en el estándar Descripción atributo. Puede utilizar otro atributo, digamos uno de ExtensionAttributes.

Recomendado para ti