Gestionar Grupos de Active Directory con PowerShell
Ver información de los Grupos
Para listar todos los grupos de Active Directory tenemos el siguiente comando:
Get-ADGroup -Filter *
Si queremos listar todos los grupos con todas sus propiedades:
Get-ADGroup -Filter * -Properties *
Esto tira en pantalla todos los grupos sin excepción que se encuentran en el Active Directory, pero si queremos ser más específicos podemos colocar filtros, por ejemplo listar todos los grupos de Seguridad y que nos muestre solo el nombre del grupo:
Get-ADGroup -Filter "GroupCategory -eq 'Security'" | select name
Si los resultados se quiere llevar a un archivo para un analisis posterior se necesita agregar al final Export-CSV y el path donde se tenga privilegios y el nombre, por ejemplo:
Get-ADGroup -Filter "GroupCategory -eq 'Security'" | select name | Export-CSV c:\grupos.csv
Crear Grupos en Active Directory
Para crear grupos se tiene el cmdlet New-ADGroup e indicarle tres parámetros esenciales, el nombre del grupo, el path donde se va a estar el grupo y el ámbito.
New-ADGroup -Name "NombreGrupo" -Path "ou=grupos,dc=pxtechexpert,dc=com" -GroupScope Global
Listar Usuarios de un Grupo especifico o de varios Grupos en Active Directory
Para ver los usuarios de un grupo tenemos el cmdlet Get-ADGroupMember y si queremos ver los usuarios de un grupo especifico:
Get-ADGroupMember -Identity "Nombre_Grupo"
Si queremos listar los usuarios del grupo incluido los grupos hijos:
Get-ADGroupMember -Identity "Nombre_Grupo" -Recursive
Si ademas solo queremos los nombres de esos usuarios:
Get-ADGroupMember -Identity "Nombre_Grupo" -Recursive | Select-Object name
Agregar Usuarios a un Grupo o a varios Grupos de Active Directory
Para agregar usuarios a grupos tenemos el cmdlet Add-ADGroupMember. Con el siguiente comando agregamos uno o varios usuarios al grupo:
Add-ADGroupMember -Identity "Nombre_Grupo" -Members user1,user2,user3
Para agregar uno o varios usuarios a varios grupos:
"Grupo1", "Grupo2", "Grupo3" | foreach { Add-ADGroupMember -Identity $_ -Members user1,user2,user3 }
Agregar usuarios de un listado dado:
Get-Content c:\lista_usuarios.txt | foreach { Add-ADGroupMember -Identity "Nombre_Grupo -Members $_ }
Otro comando muy interesante es agregar todos los usuarios de una OU especifica a un Grupo:
Get-ADUser -SearchBase "ou=tic,dc=pxtechexpert,dc=com" -Filter { objectclass -eq "user" } | foreach { Add-ADGroupMember -Identity "Nombre_Grupo" -Members $_ }