Búsqueda de sitios web

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-PowerShell

mó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 WindowsCompatibility

Luego cargue el módulo en su sesión:

Import-Module -Name WindowsCompatibility
Import-WinModule -Name ActiveDirectory

Ahora 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" -IncludeAllSubFeature

Para 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 9389

Administració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 -ListAvailable

Antes 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 ActiveDirectory

Asegú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 ActiveDirectory

El número total de cmdlets en el módulo AD:

Get-Command -module ActiveDirectory |measure-object|select count

La 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.com

dominio).

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.site

También puede usar el parámetro -Credential para especificar credenciales de usuario alternativas de Active Directory.

$creds = Get-Credential
Get-ADUser -Filter * -Credential $creds

Así es como puede obtener ayuda en cualquier cmdlet

get-help Set-ADUser

Puede mostrar los ejemplos del uso de cmdlets de Active Directory de la siguiente manera:

(get-help New-ADComputer).examples

Importació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_ADPosh

Importe el módulo ActiveDirectory desde la computadora remota a su sesión de PS local:

Import-Module -PSsession $psSess -Name ActiveDirectory

Ahora 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.CurrentUserAllHosts

para abrir su archivo de perfil PS.

Puede finalizar una sesión remota con el comando:

Remove-PSSession -Session $psSess

Este 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\Modules
  • Archivo

    ActiveDirectory.Management.dll
  • Archivo

    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.dll

Despué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 $true

Para 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 -Autosize

Add-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.wolf

Muestre 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.csv

Obtenga 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.lorenz

Para habilitar una cuenta:

Enable-ADAccount m.lorenz

Desbloquee una cuenta después de que haya sido bloqueada por una política de contraseña de dominio:

Unlock-ADAccount m.lorenz

Search-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-ADAccount

New-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 $TargetOU

Get-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-DC02

Puede 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 -auto

En 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.

Artículos relacionados