Hoy le mostraremos cómo instalar y usar el Módulo de directorio activo de Windows PowerShell. Puede realizar tareas de administración de AD y usar sus cmdlets para obtener información diferente sobre los usuarios del dominio, las computadoras, los grupos y otros objetos. En el sistema operativo del servidor, este módulo de PowerShell se instala como una función independiente. En las versiones del sistema operativo de escritorio (Windows 11, 10, 8.1 y 7), el módulo forma parte de las herramientas de administración remota del servidor (RSAT). RSAT incluye todas las herramientas de administración necesarias, utilidades de línea de comandos y módulos de Windows PowerShell para administrar la infraestructura de Windows Server. Debe descargar el paquete RSAT para su versión de Windows desde el sitio web de Microsoft (¿cómo instalar RSAT en Windows 10?).
PowerShell brinda al administrador muchas oportunidades para interactuar con objetos de Active Directory y automatizar tareas (esto es especialmente útil cuando se realizan acciones masivas dirigidas a una gran cantidad de objetos de AD).
Hay tres formas principales de interactuar con Active Directory en Windows PowerShell:
- Uso de interfaces de servicios de Active Directory (ADSI). Este método es el más complejo, pero funciona en cualquier versión de PowerShell y no requiere la instalación/carga de módulos adicionales. También es "más cercano" al método de gestión utilizado en el lenguaje de secuencias de comandos VBScript;
- Uso del proveedor de Active Directory incluido en las extensiones de PowerShell. Este método le permite montar un Active Directory como una unidad en su computadora y navegar a través de él usando los comandos apropiados: dir, cd, etc.
- Gestión de Active Directory con el módulo RSAT-AD-PowerShell. Esta es la forma más conveniente de manipular objetos AD, pero también requiere la instalación adicional del módulo correspondiente.
Insinuación. Se usa un módulo de PowerShell diferente para administrar objetos en Azure Active Directory: Módulo de Azure Active Directory para Windows PowerShell.
Instale el módulo de directorio activo de PowerShell en Windows Server
El módulo de Active Directory para Windows PowerShell apareció por primera vez en Windows Server 2008 R2. Aparece en Windows Server después de que instaló el rol ADDS (Servicios de dominio de Active Directory) y luego promovió un servidor al controlador de dominio. Para usar los cmdlets del módulo Active Directory, debe existir al menos un controlador de dominio con Windows Server 2008 R2 o superior en su dominio. Si su red tiene solo DC con Windows Server 2003 o 2008, debe descargar e instalar el Servicio de puerta de enlace de administración de Active Directory. Los cmdlets del módulo de Active Directory interactúan con el servicio web que forma parte del controlador de dominio con el rol ADDS o ADMGS.
- Puede instalar el módulo de Active Directory para PowerShell en el controlador de dominio, en cualquier servidor o estación de trabajo de Windows;
- En Windows Server 2019/2016/2012 R2, puede instalar el módulo Active Directory para Windows PowerShell. Puedes hacerlo usando el Agregar funciones y funciones Asistente del Administrador del servidor. Basta con iniciar el asistente y, en el paso de selección de funciones, debe seleccionar el elemento Herramientas de administración remota del servidor > Herramientas de administración de roles > Herramientas AD DS y AD LDS > Módulo Active Directory para Windows PowerShell;
Para verificar el estado de instalación de un módulo, use el comando:
Get-WindowsFeature RSAT-AD-PowerShell
Insinuación. Si está utilizando PowerShell Core 7.0 o superior, tenga en cuenta que el módulo de Active Directory es totalmente compatible de forma nativa con esta versión de PoSh. Pero primero, debe instalar el módulo de compatibilidad de Windows:
Install-Module -Name WindowsCompatibility
Instalación del módulo AD PowerShell en Windows 10 y 11
En Windows 11, Windows 10, Windows 8.1 y Windows 7, para instalar el módulo RSAT-AD-PowerShell, primero debe instalar la versión adecuada de RSAT. Puede instalar RSAT solo en las ediciones Professional, Education y Enterprise de Windows. La instalación de RSAT en Windows Home o Single Language no está disponible.
Deberá asegurarse de que sus políticas de seguridad, firewalls y proxies puedan acceder a los servidores de Microsoft Update en Internet para descargar e instalar componentes FOD.
- Sobre ventanas 11, puede instalar el paquete RSAT de Active Directory desde Configuración > Aplicaciones > Funciones opcionales > Agregar una función opcional > escriba Directorio Activo en el cuadro de búsqueda y seleccione el RSAT: servicios de dominio de Active Directory y herramientas de directorio ligeras característica > Siguiente > Instalar.
O puede instalar el módulo desde la consola elevada de PowerShell:
Get-WindowsCapability -Name Rsat.ActiveDirectory.DS-LDS.Tools~~~~0.0.1.0 -Online | Add-WindowsCapability -Online
No es necesario que reinicie Windows después de instalar RSAT.
Importación del módulo de Active Directory de PowerShell en Windows
- En Windows 7 y Windows Server 2008 R2 con PowerShell 2.0 instalado, para comenzar a usar el módulo Active Directory, debe importarlo a la sesión de PowerShell con el comando:
import-module activedirectory
- Además, puede exportar el módulo desde una computadora/servidor remoto e importarlo a su sesión de PowerShell (usando PSRemoting):
$S = New-PSSession -ComputerName MyDomainController
Export-PSsession -Session $S -Module ActiveDirectory -OutputModule RemoteAD
Import-Module RemoteAD -Force
Ahora puede usar todos los cmdlets del módulo RSAT-AD-PowerShell desde una computadora remota como si lo tuviera instalado localmente. Sin embargo, la comunicación remota implícita realmente funcionará aquí y todos los cmdlets de PowerShell se ejecutarán de forma remota.
La sesión estará activa hasta que cierre la consola de PowerShell. También puede cerrar la sesión (Disconnect-PSSession -Session $S) o eliminarla (Remove-PSSession -Session $S).
Ahora puede usar el módulo de Active Directory de forma remota sin instalarlo en su computadora.
- En Windows Server 2022/2019/2016/2012 R2 y Windows 8.1/Windows 10/Windows 11, el módulo AD se importará automáticamente a la sesión de PowerShell si está instalado.
- Para confirmar que el módulo AD PoSh está instalado e importado a la sesión de PowerShell en Windows, ejecute el comando:
Get-Module ActiveDirectory
Insinuación. Puede enumerar todos los módulos importados en una sesión de PowerShell con el comando:
Get-Module –ListAvailable
Cuando la computadora se une al dominio AD, de forma predeterminada se crea una unidad separada con el nombre AD:. Puede ir a esta unidad usando el comando CD y usar los comandos familiares de trabajar con el sistema de archivos para navegar por esta unidad. Las rutas están en formato X500. El proveedor de AD le permite navegar por el AD como si fuera una unidad simbólica.
PS C:> cd AD:PS AD:>
PS AD:> dir
PS AD:> cd “DC=contoso,DC=com”
PS AD:> dir
Puede mostrar la lista de cmdlets disponibles para interactuar con Active Directory de la siguiente manera:
Get-Command -Module ActiveDirectory
Las diferentes versiones de Windows (RSAT) tienen una cantidad diferente de cmdlets disponibles:
get-command -Module activedirectory|medida
- Windows Server 2008 R2: 76 cmdlets;
- Windows Server 2012: 135 cmdlets;
- Windows Server 2012 R2/2016/2019/2022: 147 cmdlets.
La siguiente es una lista completa de los cmdlets del módulo AD PowerShell en Windows Server 2016:
Add-ADCentralAccessPolicyMemberAdd-ADComputerServiceAccount
Add-ADDomainControllerPasswordReplicationPolicy
Add-ADFineGrainedPasswordPolicySubject
Add-ADGroupMember
Add-ADPrincipalGroupMembership
Add-ADResourcePropertyListMember
Clear-ADAccountExpiration
Clear-ADClaimTransformLink
Disable-ADAccount
Disable-ADOptionalFeature
Enable-ADAccount
Enable-ADOptionalFeature
Get-ADAccountAuthorizationGroup
Get-ADAccountResultantPasswordReplicationPolicy
Get-ADAuthenticationPolicy
Get-ADAuthenticationPolicySilo
Get-ADCentralAccessPolicy
Get-ADCentralAccessRule
Get-ADClaimTransformPolicy
Get-ADClaimType
Get-ADComputer
Get-ADComputerServiceAccount
Get-ADDCCloningExcludedApplicationList
Get-ADDefaultDomainPasswordPolicy
Get-ADDomain
Get-ADDomainController
Get-ADDomainControllerPasswordReplicationPolicy
Get-ADDomainControllerPasswordReplicationPolicyUsage
Get-ADFineGrainedPasswordPolicy
Get-ADFineGrainedPasswordPolicySubject
Get-ADForest
Get-ADGroup
Get-ADGroupMember
Get-ADObject
Get-ADOptionalFeature
Get-ADOrganizationalUnit
Get-ADPrincipalGroupMembership
Get-ADReplicationAttributeMetadata
Get-ADReplicationConnection
Get-ADReplicationFailure
Get-ADReplicationPartnerMetadata
Get-ADReplicationQueueOperation
Get-ADReplicationSite
Get-ADReplicationSiteLink
Get-ADReplicationSiteLinkBridge
Get-ADReplicationSubnet
Get-ADReplicationUpToDatenessVectorTable
Get-ADResourceProperty
Get-ADResourcePropertyList
Get-ADResourcePropertyValueType
Get-ADRootDSE
Get-ADServiceAccount
Get-ADTrust
Get-ADUser
Get-ADUserResultantPasswordPolicy
Grant-ADAuthenticationPolicySiloAccess
Install-ADServiceAccount
Move-ADDirectoryServer
Move-ADDirectoryServerOperationMasterRole
Move-ADObject
New-ADAuthenticationPolicy
New-ADAuthenticationPolicySilo
New-ADCentralAccessPolicy
New-ADCentralAccessRule
New-ADClaimTransformPolicy
New-ADClaimType
New-ADComputer
New-ADDCCloneConfigFile
New-ADFineGrainedPasswordPolicy
New-ADGroup
New-ADObject
New-ADOrganizationalUnit
New-ADReplicationSite
New-ADReplicationSiteLink
New-ADReplicationSiteLinkBridge
New-ADReplicationSubnet
New-ADResourceProperty
New-ADResourcePropertyList
New-ADServiceAccount
New-ADUser
Remove-ADAuthenticationPolicy
Remove-ADAuthenticationPolicySilo
Remove-ADCentralAccessPolicy
Remove-ADCentralAccessPolicyMember
Remove-ADCentralAccessRule
Remove-ADClaimTransformPolicy
Remove-ADClaimType
Remove-ADComputer
Remove-ADComputerServiceAccount
Remove-ADDomainControllerPasswordReplicationPolicy
Remove-ADFineGrainedPasswordPolicy
Remove-ADFineGrainedPasswordPolicySubject
Remove-ADGroup
Remove-ADGroupMember
Remove-ADObject
Remove-ADOrganizationalUnit
Remove-ADPrincipalGroupMembership
Remove-ADReplicationSite
Remove-ADReplicationSiteLink
Remove-ADReplicationSiteLinkBridge
Remove-ADReplicationSubnet
Remove-ADResourceProperty
Remove-ADResourcePropertyList
Remove-ADResourcePropertyListMember
Remove-ADServiceAccount
Remove-ADUser
Rename-ADObject
Reset-ADServiceAccountPassword
Restore-ADObject
Revoke-ADAuthenticationPolicySiloAccess
Search-ADAccount
Set-ADAccountAuthenticationPolicySilo
Set-ADAccountControl
Set-ADAccountExpiration
Set-ADAccountPassword
Set-ADAuthenticationPolicy
Set-ADAuthenticationPolicySilo
Set-ADCentralAccessPolicy
Set-ADCentralAccessRule
Set-ADClaimTransformLink
Set-ADClaimTransformPolicy
Set-ADClaimType
Set-ADComputer
Set-ADDefaultDomainPasswordPolicy
Set-ADDomain
Set-ADDomainMode
Set-ADFineGrainedPasswordPolicy
Set-ADForest
Set-ADForestMode
Set-ADGroup
Set-ADObject
Set-ADOrganizationalUnit
Set-ADReplicationConnection
Set-ADReplicationSite
Set-ADReplicationSiteLink
Set-ADReplicationSiteLinkBridge
Set-ADReplicationSubnet
Set-ADResourceProperty
Set-ADResourcePropertyList
Set-ADServiceAccount
Set-ADUser
Show-ADAuthenticationPolicyExpression
Sync-ADObject
Test-ADServiceAccount
Uninstall-ADServiceAccount
Unlock-ADAccount
A diferencia de las herramientas anteriores que usaban LDAP para comunicarse con AD, el módulo AD PowerShell usa Active Directory Web Services (ADWS) para comunicarse con un controlador de dominio. La función ADWS en Windows Server 2008 R2 y versiones posteriores se instala en un controlador de dominio durante la promoción de un servidor miembro de dominio a un controlador de dominio. En Windows Server 2008 o Windows Server 2003, debe instalar ADWS por separado (incluido con el servicio de puerta de enlace de administración de Active Directory).
Uso del módulo RSAT-AD-PowerShell
PowerShell le permite realizar operaciones básicas con el directorio AD:
- Obtenga todas las propiedades de AD y los atributos de los objetos;
- Cambiar las propiedades del objeto;
- Administrar grupos de AD;
- Crear nuevos objetos de directorio, etc.
Veamos algunos ejemplos del uso de los cmdlets del módulo RSAT-AD-PowerShell.
- Puede crear varios usuarios de AD a la vez importando la lista de usuarios del archivo CSV. Úselo junto con el cmdlet New-ADUser.
Para obtener información sobre un usuario de AD, use el cmdlet Get-ADUser:Get-ADUser –identity t.muller –properties *
Un cmdlet similar para mostrar todos los atributos de la computadora en AD:
Get-ADComputer –identity dc01 –properties *
- Use el cmdlet New-ADGroup para crear un grupo de AD. Por ejemplo, para crear un nuevo grupo denominado ItalyUsers en la unidad organizativa específica, ejecute el comando:
New-ADGroup -Path "OU=Groups,OU=Italy,DC=theitbros,DC=com" -Name "ItalyUsers" -GroupScope Global -GroupCategory Distribution
-
Para obtener la información del grupo AD, use el cmdlet Get-ADGroup:
Get-ADGroup ItaliaUsuarios - Si desea agregar un usuario o una computadora a un grupo de AD, use el cmdlet Add-ADGroupMember:
Add-ADGroupMember –Identity 'NY_Managers' -Miembros s.adams,d.thumb,p.muller - Use el cmdlet New-ADOrganizationalUnit para crear una unidad organizativa de Active Directory:
New-ADOrganizationalUnit -Name "France"
- Utilice el cmdlet Unlock-ADAccount para desbloquear la cuenta de usuario en el dominio de Active Directory:
Get-ADUser -Identity bjackson | Unlock-ADAccount
- O puede usar Set-ADAccountPassword para cambiar o restablecer la contraseña del usuario:
$newPass=Read-Host "Enter the new user password" –AsSecureString
Set-ADAccountPassword bjackson -NewPassword $newPass
-
Verifique el estado de replicación de Active Directory para todos los controladores de dominio en el sitio de AD específico:
Get-ADReplicationFailure -scope SITE -target London | Format-Table Server, FirstFailureTime, FailureClount, LastError, Partner
- Encuentre y deshabilite cuentas de usuario que no hayan iniciado sesión en el dominio durante más de 120 días:
Search-ADAccount -AccountInactive -TimeSpan 120 –UsersOnly| Disable-ADAccount
- Para obtener ayuda detallada sobre cualquier cmdlet del módulo AD-PoSh, use el comando Get-Help:
obtener ayuda establecer-aduser
Si la computadora no es parte del dominio de Active Directory, aparece la siguiente advertencia cuando intenta importar el módulo AD-PoSh:
ADVERTENCIA: error al inicializar la unidad predeterminada: 'No se puede encontrar un servidor predeterminado con los servicios web de Active Directory ejecutándose'.
En este caso, debe especificar el controlador de dominio AD y las credenciales de usuario para conectarse.
Insinuación. Además, verifique si el servicio ADWS se está ejecutando en el controlador de dominio y responde en el puerto 9389 (Test-NetConnection DC01 - puerto 9389). Obtenga más información sobre el error No se puede encontrar un servidor predeterminado con los servicios web de Active Directory en ejecución.
En primer lugar, debe obtener las credenciales del usuario para acceder al dominio. Cualquier usuario de dominio autenticado puede ver casi todas las propiedades de los objetos de AD (excluyendo los atributos protegidos de Active Directory).
$cred = Get-Credential
Por ejemplo, para obtener la información del usuario del DC denominado TOR-DC01 con las credenciales guardadas, utilice el comando:
get-aduser postfixsrv –server tor-dc01 -Credential $cred
Él -Servidor El parámetro no es obligatorio. De forma predeterminada, PowerShell intenta encontrar el controlador de dominio más cercano (LogonServer) y conectarse a él. Si su computadora no puede encontrar o conectarse a LogonServer, puede especificar manualmente su nombre usando el parámetro -Server.
Como puede ver, ha recibido la información de la cuenta de AD.
Ahora puede usar los cmdlets de PowerShell para administrar y consultar Active Directory.