PowerShell para gestionar Active Directory
Listado de Cmdlets utiles para realizar operaciones y enumeración básica en Active Directory.
Importar módulo de Active Directory
Para utilizar la mayoria de los Cmdlets listados en este artículo, debemos importar en primer lugar el modulo ActiveDirectory.
Import-Module ActiveDirectorySistema
Obtener Variables de entorno
Get-ChildItem Env:Obtener funciones en el scope de Powershell
Get-Command -CommandType FunctionObtener una lista de los modulos de PowerShell cargados
Get-ModuleListar comandos para un módulo específico
Get-Command -Module ActiveDirectoryObtener información del Dominio
Get-ADDomainObtener ayuda de un cmd-let
Get-Help <cmd-let>Obtener el estado actual de Windows Defender
Get-MpComputerStatusObtener AppLockerPolicy
Get-AppLockerPolicy -Effective | select -ExpandProperty RuleCollectionsUsuarios
Crear un nuevo usuario
New-ADUser -Name "NombreUsuario" -SamAccountName "NombreUsuario" -UserPrincipalName "NombreUsuario@dominio.com" -AccountPassword (ConvertTo-SecureString -AsPlainText "Contraseña" -Force)Filtrar por un nombre de usuario especifico
Get-ADUser -Filter * | Where-Object {$_.SamAccountName -eq "NombreUsuario"}En este comando:
Get-ADUser -Filter *obtiene todos los usuarios de Active Directory.Where-Objectse utiliza para filtrar los resultados.{}delimita el script de bloque para la condición de filtro.$_representa el objeto actual en el pipeline (en este caso, cada usuario obtenido porGet-ADUser)..SamAccountNamees la propiedad que contiene el nombre de usuario.-eq "NombreUsuario"es el operador de igualdad para comparar el valor de la propiedadSamAccountNamecon el nombre de usuario que deseas buscar.
Filtrar por un usuario donde el campo ServicePrincipalName sea distinto de null
Get-ADUser -Filter {ServicePrincipalName -ne "$null"} -Properties ServicePrincipalNameCrear un nuevo usuario asignado algunos atributos
New-ADUser -Name "first last" -Accountpassword (Read-Host -AsSecureString "Super$ecurePassword!") -Enabled $true -OtherAttributes @{'title'="Analyst";'mail'="f.last@domain.com"}Agregar un usuario a un grupo específico
Add-ADGroupMember -Identity "NombreGrupo" -Members "NombreUsuario"Cambiar la contraseña de un usuario
Set-ADAccountPassword -Identity "NombreUsuario" -NewPassword (ConvertTo-SecureString -AsPlainText "NuevaContraseña" -Force) -ResetForzar el cambio de contraseña en el proximo inicio de sesión
Set-ADUser -Identity amasters -ChangePasswordAtLogon $trueObtener los grupos del un usuario
$user = Get-ADUser -Identity "NombreUsuario"
$groups = Get-ADPrincipalGroupMembership -Identity $user
$groups | Select-Object -ExpandProperty NameQuitar un usuario de un grupo
Remove-ADGroupMember -Identity "NombreGrupo" -Members "NombreUsuario"Deshabilitar una cuenta de usuario
Disable-ADAccount -Identity "NombreUsuario"Habilitar una cuenta de usuario
Enable-ADAccount -Identity "NombreUsuario"Desbloquear una cuenta de usuario
Unlock-ADAccount -Identity "NombreUsuario"Obtener información detallada de un usuario
Get-ADUser -Identity "NombreUsuario" -Properties *Grupos
Crear un nuevo grupo
New-ADGroup -Name "NombreGrupo" -GroupCategory Security -GroupScope Global -DisplayName "Nombre Descriptivo del Grupo" -Description "Descripción del Grupo"Listar los miembros de un grupo
Get-ADGroupMember -Identity "NombreGrupo" | Select-Object Name, SamAccountNameObtener información detallada de un grupo
Get-ADGroup -Identity "NombreGrupo" -Properties *Renombrar un grupo
Rename-ADObject -Identity "CN=NombreGrupo,OU=Origen,DC=dominio,DC=com" -NewName "NuevoNombreGrupo"Eliminar un grupo
Remove-ADGroup -Identity "NombreGrupo"Listar los grupos
Get-ADGroup -Filter * | select nameObtener una lista de todos los grupos en una OU específica
Get-ADGroup -Filter * -SearchBase "OU=NombreOU,DC=dominio,DC=com"Obtener una lista de todos los miembros de un grupo
Get-ADGroupMember -Identity "NombreGrupo"Trusts (Confianzas)
Verificar las relaciones de confianza de dominio
Get-ADTrust -Filter *Este cmdlet imprimirá las relaciones de confianza que tenga el dominio. Podemos determinar si son confianzas dentro de nuestro bosque o con dominios de otros bosques, el tipo de confianza, la dirección de la confianza y el nombre del dominio con el que está la relación.
Computadoras
Obtener información detallada de un equipo
Get-ADComputer -Identity "NombreEquipo" -Properties *Obtener una lista de todos los equipos en un dominio
Get-ADComputer -Filter *Obtener información detallada de un equipo específico
Get-ADComputer -Identity "NombreEquipo" -Properties *Crear un nuevo objeto de equipo en Active Directory
New-ADComputer -Name "NombreEquipo" -Path "OU=NombreOU,DC=dominio,DC=com"Cambiar el nombre de un equipo en Active Directory
Rename-ADObject -Identity "CN=NombreEquipo,OU=Origen,DC=dominio,DC=com" -NewName "NuevoNombreEquipo"Deshabilitar una cuenta de equipo
Disable-ADAccount -Identity "NombreEquipo"Habilitar una cuenta de equipo
Enable-ADAccount -Identity "NombreEquipo"Eliminar un objeto de equipo de Active Directory
Remove-ADComputer -Identity "NombreEquipo"Unidades Organizativas
Crear una nueva Unidad Organizativa
New-ADOrganizationalUnit -Name "NombreOU" -Path "OU=ParentOU,DC=dominio,DC=com"Mover un objeto (usuario, grupo, etc.) a una OU diferente
Move-ADObject -Identity "CN=NombreObjeto,OU=Origen,DC=dominio,DC=com" -TargetPath "OU=Destino,DC=dominio,DC=com"Obtener una lista de todas las unidades organizativas
Get-ADOrganizationalUnit -Filter *Mover un equipo a una unidad organizativa diferente
Move-ADObject -Identity "CN=NombreEquipo,OU=Origen,DC=dominio,DC=com" -TargetPath "OU=Destino,DC=dominio,DC=com"GPO (Group Policy Object)
Obtener una lista de todas las GPO
Get-GPO -AllObtener una lista de todas las GPO en un dominio específico
Get-GPO -All -Domain "NombreDominio"Crear una nueva GPO
New-GPO -Name "NombreGPO"Cambiar el nombre de una GPO
Rename-GPO -Name "NombreActualGPO" -NewName "NuevoNombreGPO"Copiar una GPO
Copy-GPO -SourceName "NombreGPOOrigen" -TargetName "NombreGPODestino"Eliminar una GPO
Remove-GPO -Name "NombreGPO"Obtener la configuración de una GPO
Get-GPOReport -Name "NombreGPO" -ReportType XMLEstablecer la configuración de una GPO
Set-GPRegistryValue -Name "NombreGPO" -Key "HKEY_CURRENT_USER\Software\Ejemplo" -ValueName "Ejemplo" -Type String -Value "ValorEjemplo"Enlace de una GPO a una OU específica
New-GPLink -Name "NombreGPO" -Target "OU=NombreOU,DC=dominio,DC=com"Desenlace de una GPO de una OU específica
Remove-GPLink -Name "NombreGPO" -Target "OU=NombreOU,DC=dominio,DC=com"Realizar una copia de seguridad y restauración de una GPO
Para realizar una copia de seguridad:
Backup-GPO -Name "NombreGPO" -Path "C:\Ruta\Backup"Para restaurar desde una copia de seguridad:
Restore-GPO -Name "NombreGPO" -Path "C:\Ruta\Backup"Última actualización