Cómo agregar un usuario a un grupo en PowerShell con Add-ADGroupMember
Cuando necesita agregar varios usuarios a un grupo de Active Directory, usar PowerShell es realmente su mejor opción. En lugar de buscar todos los usuarios manualmente, puede agregar usuarios rápidamente al grupo con PowerShell.
Agregar o eliminar usuarios de grupos de AD es una de las tareas diarias de un administrador del sistema. Cuando se trata de un solo usuario, entonces puedes utilizar perfectamente la consola de administración de Active Directory. Pero cuando necesita actualizar usuarios de forma masiva, PowerShell es el camino a seguir.
En este artículo, explicaré cómo agregar uno o varios usuarios a un grupo con PowerShell. Además, veremos cómo utilizar un archivo CSV con usuarios para agregarlos a un grupo. Y al final, encontrará dos scripts de PowerShell que le permitirán importar fácilmente archivos CSV.
PowerShell: agregue usuario al grupo con Add-ADGroupMember
Para agregar usuarios a un grupo en PowerShell, usaremos el cmdlet Add-ADGroupMember. Asegúrese de haber instalado el módulo PowerShell Active Directory antes de comenzar.
El cmdlet Add-ADGroupMember se puede utilizar para agregar usuarios, cuentas de servicio, computadoras o incluso otros grupos a un grupo de AD. El cmdlet solo requiere la identidad del grupo al que desea agregar miembros y una lista de miembros para agregar.
Para especificar el grupo y los miembros podemos utilizar los siguientes valores:
- nombre distinguido
- objetoGUID (GUID)
- objectSid (identificador de seguridad)
- SAMAccountName (nombre de la cuenta del administrador de cuentas de seguridad)
Entonces, para agregar un solo usuario al grupo "SG_PowerBi", podemos usar el nombre del grupo, que es el SAMAccountName del grupo. Y también para el usuario, vamos a utilizar el SAMAccountName:
# Adding user Alan Rhodes to the group SG_PowerBi
Add-ADGroupMember -Identity "SG_PowerBi" -Members arhodesEl comando no dará ningún resultado, pero podemos verificar el miembro con PowerShell usando el cmdlet Get-ADGroupMember:
Get-ADGroupMember -Identity "SG_PowerBi" | ftAgregar varios usuarios a un grupo
También se puede agregar un solo usuario a un grupo con la consola Usuarios y equipos de Active Directory. Pero cuando necesita agregar varios usuarios a un grupo, usar PowerShell puede ser mucho más rápido.
Hay un par de formas de agregar varios usuarios a un grupo con PowerShell. La opción más común es simplemente especificar los usuarios:
# Adding the users Alan Rhodes, Flenn Parker and Mike Reyes to the group SG_PowerBi
Add-ADGroupMember -Identity "SG_PowerBi" -Members arhodes, fparker, mreyesPero eso requeriría que usted conozca el SAMAccountName de cada usuario. Otra opción es obtener primero los usuarios según un filtro, por ejemplo el puesto de trabajo, y luego agregarlos al grupo. Para obtener los usuarios, utilizaremos el cmdlet Get-ADUser.
Primero obtendremos todos los usuarios con el puesto de trabajo "administrador de cuentas" y luego agregaremos cada usuario al grupo SG_PowerBi:
# Get all users with the job title "Account Manager" and add them to the group SG_PowerBi
Get-ADUser -Filter "title -eq 'account manager'" | ForEach-Object { Add-ADGroupMember -Identity "SG_PowerBi" -Members $_ }Copie los miembros del grupo a otro grupo con PowerShell
También es posible copiar miembros del grupo a otro grupo con PowerShell. Pero tenga en cuenta que también puede agregar un grupo a otro grupo en Active Directory.
Para copiar los miembros del grupo, primero obtendremos todos los miembros del grupo existente y los copiaremos al nuevo grupo. Para ello, utilizaremos el cmdlet Get-ADGroupMember.
# Get all the users from the group Sales Management and add them to the group SG_PowerBi
Get-ADGroupMember -Identity "Sales Management" | ForEach-Object { Add-ADGroupMember -Identity "SG_PowerBi" -Members $_ }
Como alternativa, también puedes añadir el grupo “Gestión de ventas” al grupo “SG_PowerBi”:
Add-ADGroupMember -Identity "SG_PowerBi" -Members "Sales Management"Agregar usuarios al grupo desde CSV con PowerShell
Cuando necesitas agregar muchos usuarios a un grupo, a veces es más fácil usar un archivo CSV. En el archivo CSV podemos agregar fácilmente todos los usuarios. Con PowerShell, podemos leer el archivo CSV y agregar todos los usuarios al grupo correcto.
Creé un pequeño script de PowerShell que importará un archivo CSV y agregará todos los usuarios del archivo CSV al grupo seleccionado. He hecho que el script sea lo más flexible posible, por lo que para los usuarios, pueden usar su nombre para mostrar, correo electrónico o UserPrincipalName.
Los scripts requieren un nombre de grupo y una ruta al archivo CSV. De forma predeterminada, utilizará la coma como delimitador para el archivo CSV y buscará a los usuarios según el nombre para mostrar.
Para el archivo CSV, puede crear una lista simple con los usuarios, sin necesidad de encabezados dentro del archivo CSV:
Bob Davis,
Erik Parker,
Jean Miles,
Kelly Rices,
Margie Baker,
Mathew Scott,
Owen Hopkins,Puede copiar el script desde abajo o descargarlo aquí desde mi página de Github.
[CmdletBinding()]
param (
[Parameter(
Mandatory = $true,
HelpMessage = "Group name"
)]
[string] $groupName = "",
[Parameter(
Mandatory = $true,
HelpMessage = "Path to CSV file"
)]
[string] $path = "",
[Parameter(
Mandatory = $false,
HelpMessage = "CSV file delimiter"
)]
[string] $delimiter = ",",
[Parameter(
Mandatory = $false,
HelpMessage = "Find users on DisplayName, Email or UserPrincipalName"
)]
[ValidateSet("DisplayName", "Email", "UserPrincipalName")]
[string] $filter = "DisplayName"
)
Function Add-UsersToGroup {
<#
.SYNOPSIS
Get users from the requested DN
#>
process{
# Import the CSV File
$users = (Import-Csv -Path $path -Delimiter $delimiter -header "name").name
# Find the users in the Active Directory
$users | ForEach {
$user = Get-ADUser -filter "$filter -eq '$_'" | Select ObjectGUID
if ($user) {
Add-ADGroupMember -Identity $groupName -Members $user
Write-Host "$_ added to the group"
}else {
Write-Warning "$_ not found in the Active Directory"
}
}
}
}
# Load the Active Directory Module
Import-Module -Name ActiveDirectory
# Add user from CSV to given Group
Add-UsersToGroupPara agregar usuarios, según su nombre para mostrar, al grupo "SG_PowerBi" desde el archivo CSV, puede ejecutar el siguiente comando:
.\Add-UsersToGroup.ps1 -GroupName "SG_PowerBi" -Path c:\temp\users.csvSi desea utilizar UserPrincipalName, deberá configurar el parámetro de filtro:
.\Add-UsersToGroup.ps1 -GroupName "SG_PowerBi" -Path c:\temp\users.csv -Filter "UserPrincipalName"El script mostrará una advertencia si no pudo encontrar al usuario en Active Directory. Y enumerará todos los usuarios que ha agregado al grupo.
El script no comprueba si un usuario ya es miembro de un grupo; el cmdlet Add-ADGroupMember ya lo hace internamente. Puede agregar el parámetro -DisablePermissiveModify al cmdlet en Windows Server 2019 para generar un error si ya existe un usuario.
Agregar usuarios a diferentes grupos desde CSV
También creé una variante del script que le permite agregar usuarios de forma masiva a diferentes grupos. De esta manera puedes crear un archivo CSV con en una columna los usuarios y el otro grupo al que deseas agregarlos.
Este archivo CSV necesita nombres de columnas, por lo que la primera columna debe tener la etiqueta Usuario y la segunda columna Grupo.
User,Group
Bob Davis,SG_PowerBi
Erik Parker,SG_Visio
Jean Miles,SG_Visio
Kelly Rices,SG_PowerBi
Margie Baker,SG_PowerBi
Mathew Scott,SG_Visio
Owen Hopkins,SG_PowerBiEsta vez no necesitamos especificar el grupo, solo la ruta al archivo CSV, opcionalmente el delimitador y el filtro.
.\Add-UsersToDiffGroup.ps1 -path c:\temp\users.csv -filter "DisplayName"Puede copiar el script completo a continuación o descargarlo aquí desde mi página de Github.
[CmdletBinding()]
param (
[Parameter(
Mandatory = $true,
HelpMessage = "Path to CSV file"
)]
[string] $Path = "",
[Parameter(
Mandatory = $false,
HelpMessage = "CSV file delimiter"
)]
[string] $Delimiter = ",",
[Parameter(
Mandatory = $false,
HelpMessage = "Find users on DisplayName, Email or UserPrincipalName"
)]
[ValidateSet("DisplayName", "Email", "UserPrincipalName")]
[string] $Filter = "DisplayName"
)
Function Add-UserToGroup {
<#
.SYNOPSIS
Get users from the requested DN
#>
process{
# Import the CSV File
$users = Import-Csv -Path $path -Delimiter $delimiter
# Find the users in the Active Directory
$users | ForEach {
$user = Get-ADUser -filter "$filter -eq '$($_.user)'" | Select ObjectGUID
if ($user) {
Add-ADGroupMember -Identity $_.Group -Members $user
Write-Host "$($_.user) added to $($_.Group)"
}else {
Write-Warning "$($_.user) not found in the Active Directory"
}
}
}
}
# Load the Active Directory Module
Import-Module -Name ActiveDirectory
# Add user from CSV to given Group
Add-UserToGroupConcluyendo
Usando PowerShell podemos agregar rápidamente un usuario a un grupo. Si no conoce el SAMAccountName del usuario, siempre puede buscarlo con el cmdlet Get-AdUser. Si es nuevo en el uso de scripts de PowerShell, asegúrese de leer también este artículo.
Espero que este artículo te haya resultado útil. Si tienes alguna pregunta, deja un comentario a continuación.


