Cómo instalar el módulo de Active Directory de PowerShell y administrar AD
Todos los administradores de sistemas de Windows deberían poder usar no solo los complementos gráficos de AD (por lo general, ADUC, Usuarios y computadoras de Active Directory), sino también los cmdlets de PowerShell para realizar las tareas diarias de administración de Active Directory. Por lo general, el módulo de Active Directory para Windows PowerShell se usa para tareas de administración de dominios y objetos (usuarios, computadoras, grupos). En este artículo, veremos cómo instalar el
RSAT-AD-PowerShellmódulo en Windows, descubra sus características básicas y cmdlets populares que son útiles para administrar e interactuar con AD.
¿Cómo instalar el módulo PowerShell de Active Directory en Windows 10 y 11?
Puede instalar el módulo RSAT-AD PowerShell no solo en servidores sino también en estaciones de trabajo. Este módulo está incluido en el paquete RSAT (Remote Server Administration Tools) para Windows.
En las versiones actuales de Windows 11 y Windows 10, los componentes de RSAT se instalan en línea como características a pedido. Puede instalar el módulo usando el comando:
Add-WindowsCapability -online -Name Rsat.ActiveDirectory.DS-LDS.Tools~~~~0.0.1.0
O a través de Configuración -> Aplicaciones -> Funciones opcionales -> Agregar una función -> RSAT: Servicios de dominio de Active Directory y Herramientas de servicios de directorio ligeros.
El paquete RSAT tuvo que descargarse e instalarse manualmente en versiones anteriores de Windows. Después de eso, debe habilitar el módulo AD para PowerShell desde el Panel de control: Programas y características -> Activar o desactivar las funciones de Windows -> Herramientas de administración remota del servidor -> Herramientas de administración de roles -> Herramientas AD DS y AD LDS.
Primero debe instalar el módulo de compatibilidad de Windows para usar los cmdlets de AD en PowerShell Core 6.x, 7.x:
Install-Module -Name WindowsCompatibilityLuego cargue el módulo en su sesión:
Import-Module -Name WindowsCompatibility
Import-WinModule -Name ActiveDirectoryAhora puede usar cmdlets de AD en sus scripts de PowerShell Core 7.x.
¿Cómo instalar la última versión de PowerShell en Windows?
Instalación del módulo RSAT-AD-PowerShell en Windows Server
En Windows Server, puede instalar el módulo Active Directory para Windows PowerShell desde la consola gráfica del Administrador del servidor o mediante PowerShell.
Puede comprobar que el módulo de Active Directory está instalado con el comando:
Get-WindowsFeature -Name "RSAT-AD-PowerShell"
Si falta el módulo, instálelo:
Install-WindowsFeature -Name "RSAT-AD-PowerShell" -IncludeAllSubFeaturePara instalar el módulo a través del Administrador del servidor, vaya a Agregar funciones y funciones -> Funciones -> Herramientas de administración remota del servidor -> Herramientas de administración de funciones -> Herramientas AD DS y AD LDS -> habilite el módulo Active Directory para Windows PowerShell.
No necesita usar una sesión de controlador de dominio local para administrar Active Directory mediante el módulo RSAT-AD PowerShell. Este módulo se puede instalar en cualquier servidor miembro o estación de trabajo. En los controladores de dominio de AD, el módulo se instala automáticamente cuando se implementa la función Servicios de dominio de Active Directory (AD DS) (cuando el servidor se promueve a un DC).
El módulo interactúa con AD a través del Servicio web de Active Directory que debe estar ejecutándose en su controlador de dominio y disponible para los clientes en un puerto TCP 9389. Use el cmdlet Test-NetConnection para verificar que este puerto no esté bloqueado por un firewall en el DC:
Test-NetConnection MUN-DC1 -port 9389Administración de Active Directory con PowerShell
El módulo de Active Directory para Windows PowerShell tiene una gran cantidad de cmdlets para interactuar con AD. Hay 147 cmdlets AD PowerShell disponibles en la versión actual del módulo para Windows Server 2022/Windows 11.
Verifique que el módulo esté instalado en la computadora:
Get-Module -Name ActiveDirectory -ListAvailableAntes de poder usar los cmdlets del módulo de Active Directory, debe importarlo a su sesión de PowerShell (a partir de Windows Server 2012 R2/ Windows 8.1, el módulo se importa automáticamente).
Import-Module ActiveDirectoryAsegúrese de que el módulo AD esté cargado en su sesión de PowerShell:
Get-Module
Puede mostrar una lista completa de los cmdlets de Active Directory disponibles:
Get-Command -module ActiveDirectoryEl número total de cmdlets en el módulo AD:
Get-Command -module ActiveDirectory |measure-object|select countLa mayoría de los cmdlets del módulo RSAT-AD PowerShell comienzan con el
Get-,
Set-o
New-prefijos
Get: los cmdlets de clase se utilizan para obtener información diferente de Active Directory (
Get-ADUser— propiedades de usuario,
Get-ADComputer- configuración de la computadora,
Get-ADGroupMember— pertenencia a un grupo, etc.). No necesita ser administrador de dominio para usar estos cmdlets. Cualquier usuario de dominio puede ejecutar comandos de PowerShell para obtener los valores de los atributos del objeto AD (excepto los confidenciales, como en el ejemplo con LAPS);
Los cmdlets de clase Set- se utilizan para establecer (cambiar) las propiedades de los objetos en Active Directory. Por ejemplo, puede cambiar las propiedades del usuario (Set-ADUser), la configuración de la computadora (Set-ADComputer), etc. Para realizar estas acciones, su cuenta debe tener permisos de escritura en los objetos que desea modificar (consulte el artículo Cómo delegar privilegios de administrador en Active Directory);
Los comandos que comienzan con Nuevo- le permiten crear objetos AD (crear un usuario —
New-ADUser, crear un grupo -
New-ADGroup, cree una unidad organizativa —
New-ADOrganizationalUnit);
Cmdlets que comienzan con Add-: agregar un usuario a un grupo (
Add-ADGroupMember), agregue una Política de contraseña detallada (
Add-ADFineGrainedPasswordPolicySubject);
Remove- los cmdlets se utilizan para eliminar objetos de AD
Remove-ADGroup,
Remove-ADComputer,
Remove-ADUser).
Hay cmdlets específicos de PowerShell que puede usar para administrar solo ciertos componentes de AD:
Enable-ADOptionalFeature- habilite las características opcionales de AD (por ejemplo, la papelera de reciclaje de AD para restaurar objetos eliminados);
Install-ADServiceAccount- configurar cuenta de servicio administrado (MSA, gMSA);
Search-ADAccount- le permite encontrar cuentas de usuario y de computadora deshabilitadas, inactivas y bloqueadas en Active Directory;
Enable-ADAccount/
Disable-ADAccount/
Unlock-ADAccount- habilitar/deshabilitar/desbloquear una cuenta.
De forma predeterminada, los cmdlets de PowerShell se conectan al controlador de dominio más cercano en su entorno (LOGONSERVER). Con el parámetro -Server, puede conectarse a ADDS en un controlador de dominio diferente o en un dominio diferente (puede mostrar una lista de DC en otro dominio usando el
nltest /dclist:newad.comdominio).
El parámetro -Server está disponible para casi todos los cmdlets del módulo. Por ejemplo
Get-ADuser j.smith -Server mun-dc1.a-d.siteTambién puede usar el parámetro -Credential para especificar credenciales de usuario alternativas de Active Directory.
$creds = Get-Credential
Get-ADUser -Filter * -Credential $credsAsí es como puede obtener ayuda en cualquier cmdlet
get-help Set-ADUserPuede mostrar los ejemplos del uso de cmdlets de Active Directory de la siguiente manera:
(get-help New-ADComputer).examplesImportación del módulo PowerShell de Active Directory desde una computadora remota
No es necesario instalar el módulo AD PowerShell en todas las computadoras. Un administrador puede importar de forma remota este módulo desde un controlador de dominio (se requieren privilegios de administrador de dominio) o desde cualquier otra computadora.
PowerShell Remoting se usa para conectarse a una computadora remota. Esto requiere que la Administración remota de Windows (WinRM) esté habilitada y configurada en el host remoto.
Cree una nueva sesión con la computadora remota que tiene instalado el módulo AD PowerShell:
$psSess = New-PSSession -ComputerName DC_or_Comp_with_ADPoshImporte el módulo ActiveDirectory desde la computadora remota a su sesión de PS local:
Import-Module -PSsession $psSess -Name ActiveDirectoryAhora puede ejecutar cualquier comando desde el módulo Active Directory en su computadora como si el módulo estuviera instalado localmente. Sin embargo, se ejecutarán en un host remoto.
Puede agregar estos comandos a su archivo de perfil de PowerShell para importar automáticamente el módulo desde la sesión remota cuando inicia la consola powershell.exe. ejecutar el
notepad $profile.CurrentUserAllHostspara abrir su archivo de perfil PS.
Puede finalizar una sesión remota con el comando:
Remove-PSSession -Session $psSessEste método de importar el módulo AD a través de la comunicación remota implícita de PowerShell le permite usar cmdlets de PowerShell desde hosts Linux y MacOS que no pueden instalar una copia local del módulo.
Aprenda a instalar PowerShell Core en Linux.
También puede usar el módulo de Active Directory para PowerShell sin instalar RSAT. Hacer
esto, simplemente copie algunos archivos de una computadora donde esté instalado el módulo RSAT-AD PowerShell:
Directorio
C:\Windows\System32\WindowsPowerShell\v1.0\ModulesArchivo
ActiveDirectory.Management.dllArchivo
ActiveDirectory.Management.resources.dll
Luego necesita importar el módulo a su sesión actual:
Import-Module C:\PS\ADmodule\Microsoft.ActiveDirectory.Management.dll
Import-Module C:\PS\ADmodule\Microsoft.ActiveDirectory.Management.resources.dllDespués de eso, puede usar todos los cmdlets del módulo AD sin instalar RSAT.
Comandos comunes de PowerShell para Active Directory
Echemos un vistazo a algunas tareas administrativas típicas que se pueden realizar con los cmdlets de Active Directory para PowerShell.
Puede encontrar algunos ejemplos útiles de cómo usar Active Directory para los cmdlets del módulo PowerShell en el sitio web de WOSHub. Siga los enlaces para obtener instrucciones detalladas.
New-ADUser: creación de usuarios de AD
Para crear un nuevo usuario de AD, puede usar el cmdlet New-ADUser. Puede crear un usuario con el siguiente comando:
New-ADUser -Name "Mila Beck" -GivenName "Mila" -Surname "Beck" -SamAccountName "mbeck" -UserPrincipalName "mbeck@a-d.site" -Path "OU=Users,OU=Berlin,OU=DE,DC=a-d,DC=com" -AccountPassword(Read-Host -AsSecureString "Input User Password") -Enabled $truePara obtener información detallada sobre el cmdlet New-ADUser (incluido un ejemplo sobre cómo crear cuentas de dominio de usuario de forma masiva), consulte este artículo.
Get-ADComputer: Obtención de las propiedades del objeto de la computadora
Para obtener las propiedades de los objetos de la computadora en una unidad organizativa particular (el nombre de la computadora y la última fecha de inicio de sesión), use el cmdlet Get-ADComputer:
Get-ADComputer -SearchBase ‘OU=CA,OU=USA,DC=a-d,DC=com’ -Filter * -Properties * | FT Name, LastLogonDate -AutosizeAdd-ADGroupMember: agregar usuarios de Active Directory al grupo
Para agregar usuarios a un grupo de seguridad existente en un dominio de AD, ejecute este comando:
Add-AdGroupMember -Identity LondonSales -Members e.braun, l.wolfMuestre la lista de usuarios en el grupo AD y expórtela a un archivo CSV:
Get-ADGroupMember LondonSales -recursive| ft samaccountname| Out-File c:\ps\export_ad_users.csvObtenga más información sobre cómo administrar grupos de AD con PowerShell.
Set-ADAccountPassword: restablecer una contraseña de usuario en AD
Para restablecer la contraseña de un usuario en AD con PowerShell:
Set-ADAccountPassword m.lorenz -Reset -NewPassword (ConvertTo-SecureString -AsPlainText “Ne8Pa$$0rd1” -Force -Verbose) -PassThru¿Cómo desbloquear, habilitar y deshabilitar cuentas de Active Directory?
Para deshabilitar la cuenta de usuario de AD:
Disable-ADAccount m.lorenzPara habilitar una cuenta:
Enable-ADAccount m.lorenzDesbloquee una cuenta después de que haya sido bloqueada por una política de contraseña de dominio:
Unlock-ADAccount m.lorenzSearch-ADAccount: ¿Cómo encontrar objetos AD inactivos y deshabilitados?
Para encontrar y deshabilitar todas las computadoras en el dominio de AD que no hayan iniciado sesión durante más de 90 días, use el cmdlet Search-ADAccount:
$timespan = New-Timespan -Days 90
Search-ADAccount -AccountInactive -ComputersOnly -TimeSpan $timespan | Disable-ADAccountNew-ADOrganizationalUnit: crear una unidad organizativa en AD
Para crear rápidamente una estructura de unidad organizativa típica en AD, puede usar un script de PowerShell. Suponga que desea crear varias unidades organizativas con estados como nombres y crear contenedores de objetos típicos. Lleva bastante tiempo crear esta estructura AD manualmente a través del complemento gráfico ADUC. El módulo AD para PowerShell permite resolver esta tarea en segundos (excepto el tiempo para escribir el script):
$fqdn = Get-ADDomain
$fulldomain = $fqdn.DNSRoot
$domain = $fulldomain.split(".")
$Dom = $domain[0]
$Ext = $domain[1]
$Sites = ("Nevada","Texas","California","Florida")
$Services = ("Users","Admins","Computers","Servers","Contacts","Service Accounts")
$FirstOU ="USA"
New-ADOrganizationalUnit -Name $FirstOU -Description $FirstOU -Path "DC=$Dom,DC=$EXT" -ProtectedFromAccidentalDeletion $false
foreach ($S in $Sites)
{
New-ADOrganizationalUnit -Name $S -Description "$S" -Path "OU=$FirstOU,DC=$Dom,DC=$EXT" -ProtectedFromAccidentalDeletion $false
foreach ($Serv in $Services)
{
New-ADOrganizationalUnit -Name $Serv -Description "$S $Serv" -Path "OU=$S,OU=$FirstOU,DC=$Dom,DC=$EXT" -ProtectedFromAccidentalDeletion $false
}
}Después de ejecutar el script, verá la siguiente estructura de unidad organizativa en Active Directory.
Para mover objetos entre contenedores AD, puede usar el cmdlet Move-ADObject:
$TargetOU = "OU=Sales,OU=Computers,DC=a-d,DC=com"
Get-ADComputer -Filter 'Name -like "SalesPC*"' | Move-ADObject -TargetPath $TargetOUGet-ADReplicationFailure: compruebe la replicación de Active Directory
Puede usar el cmdlet Get-ADReplicationFailure para verificar el estado de la replicación entre los controladores de dominio de AD:
Get-ADReplicationFailure -Target NY-DC01,NY-DC02Puede usar este comando para verificar el estado de los controladores de dominio y Active Directory.
Para obtener información sobre todos los DC del dominio, use el cmdlet Get-AdDomainController:
Get-ADDomainController -filter * | select hostname,IPv4Address,IsGlobalCatalog,IsReadOnly,OperatingSystem | format-table -autoEn este artículo, analizamos cómo instalar y usar el módulo PowerShell de Active Directory para la administración de dominios de AD. Espero que este artículo lo aliente a explorar más este módulo y comenzar a automatizar la mayoría de sus tareas de administración de AD.









