Hace casi 10 años, Quest Software lanzó un conjunto gratuito de cmdlets para simplificar la interacción con Active Directory. Este conjunto de cmdlets proporciona opciones bastante flexibles para administrar Active Directory, gestionar objetos de AD, ACL de AD, configuración de contraseñas y seguridad.
Hasta la versión 1.5.1, los cmdlets de Quest Active Directory se proporcionaron de forma gratuita. Más tarde, Dell adquirió la empresa Quest y comenzó a vender licencias para las versiones posteriores. Más tarde, el producto pasó a llamarse Active Roles y puede descargarlo aquí: https://www.oneidentity.com/products/active-roles/. Sin embargo, la mayoría de los administradores conocen este módulo de PowerShell como Cmdlets de Quest Active Directory para Powershell.
A pesar de que no puede descargar el módulo Active Roles del sitio web oficial de forma gratuita, es fácil encontrar un archivo con la antigua versión gratuita de los cmdlets QAD (1.5.1) en Internet: Quest_ActiveRolesManagementShellforActiveDirectoryx64_151.msi.
En este artículo, veremos la instalación y el uso de los Cmdlets del módulo Quest Active Directory para Powershell para administrar el dominio AD.
Para instalar este módulo PoSh en su computadora, debe tener instalado .Net Framework 3.5. Instalar el módulo es bastante simple: ejecute el archivo MSI y siga las instrucciones del instalador.

Una vez completada la instalación, debe importar el módulo a la sesión de PoSh con el comando:
Add-PSSnapin Quest.ActiveRoles.ADManagement
Puede mostrar la lista de cmdlets disponibles para el módulo Quest con el comando:
get-command *qad*

Un ejemplo de cmdlets de un módulo:
- Obtener QADUser
- Establecer-QADUser
- Nuevo-QADUser
- Nuevo-QADGroup
- Agregar QADGroupMember
- Quitar QADGroupMember
- Conectar-QADService
- Desconectar-QADService
En primer lugar, conectémonos al controlador de dominio:
$pwd = read-host "Enter domain user password" -AsSecureString Connect-QADService -service 'dc01.theitbros.com:389' -ConnectionAccount 'theitbrosuser1' -ConnectionPassword $pwd
Enumere las cuentas de usuarios y equipos en el dominio:
Get-QADUser Get-QADComputer

Puede obtener la información sobre un determinado usuario y parámetro de AD. Se requiere Format-List para mostrar todas las propiedades recibidas:
Get-QADUser -Name JKelly -IncludeAllProperties | Format-List *
Verifiquemos si la cuenta de usuario está deshabilitada:
(Get-QADUSer -Name "JKelly").AccountIsDisabled
También puede obtener una lista de cuentas en el grupo y guardarla en un archivo csv:
(Get-QADGroup "Domain Admins").members | Get-MemberName | Export-Csv "C:PSAdminGroupMembers.csv"
Por ejemplo, cree una nueva cuenta de usuario:
New-QADUser -name 'TJones' -ParentContainer 'OU=Users,OU=USA,DC=theitbros,DC=com' -UserPassword ‘P@ssw0rd!!’
Ahora hagamos una lista de los usuarios que no se han registrado en el dominio dentro de 2 meses y guardemos la lista en el archivo HTML:
$2months = (Get-Date).AddMonths(-2)
Get-QADUser -IncludedProperties LastLogon | where { $_.lastLogon -le
$2months} | Select DisplayName, LastLogon, AccountIsDisabled | ?{-not
$_.AccountIsDisabled} | ConvertTo-Html | Out-File c:psinactiveusers.html
En consecuencia, para deshabilitar, habilitar o desbloquear puede usar: Disable-QADUser, Enable-QADUser y Unlock-QADUser. Los cmdlets que comienzan con Set se usan para establecer y cambiar parámetros, a menudo se usan en scripts.
Get-QADUser -Department Sales | Set-QADUser -ObjectAttributes @{"Department"="New Sales";"Description"="Sales dept"}
Deshabilitar todas las cuentas que no fueron registradas dentro de 2 meses:
Get-QADUser -IncludedProperties LastLogon | where { $_.lastLogon -le $2months} | where {-not $_.AccountIsDisabled} | Disable-QADUser
Por supuesto, en Quest AD hay un gran inconveniente: este módulo no es parte del sistema operativo y no es compatible con Microsoft, para su funcionamiento es necesario instalar el proveedor adecuado. Quest lanzó estos cmdlets antes de que Microsoft tuviera su propio módulo para interactuar con AD: Módulo Active Directory para Windows PowerShellque se introdujo en Windows Server 2008 R2/Windows 7. La mayor parte de la funcionalidad disponible en los cmdlets de Quest AD ahora también está disponible en el módulo Active Directory para Windows, por lo que los cmdlets de Quest AD se usan cada vez menos.





