Cómo ejecutar herramientas de administración de Active Directory como otro usuario

Última actualización: 21/04/2026
Autor: Isaac
  • Uso de credenciales alternativas para ejecutar herramientas de administración de Active Directory sin iniciar sesión completa con cuentas privilegiadas.
  • Gestión avanzada de usuarios, grupos, equipos y OU mediante PowerShell y el módulo ActiveDirectory, incluyendo operaciones masivas.
  • Aprovechamiento de las utilidades de línea de comandos ds* para crear, modificar, consultar y eliminar objetos de Active Directory.
  • Buenas prácticas de seguridad al separar cuentas de uso diario y administrativas, reduciendo riesgos en la gestión del dominio.

Administrar Active Directory con distintas credenciales

Cuando administras un dominio es muy habitual que tengas dos cuentas distintas: una personal de uso diario y otra con privilegios elevados para tareas delicadas en Active Directory. El problema llega cuando necesitas abrir Usuarios y Equipos de Active Directory (ADUC), el Centro de administración de Active Directory u otras consolas MMC con esa cuenta privilegiada, pero sin loguearte completamente en el sistema ni trabajar todo el rato como administrador de dominio.

En este contexto entra en juego la posibilidad de ejecutar las herramientas de administración de Active Directory como otro usuario, ya sea a través de la interfaz gráfica, con PowerShell o con las herramientas de línea de comandos clásicas (dsadd, dsmod, dsquery, etc.). Además, es fundamental saber cómo gestionar usuarios, grupos, equipos y unidades organizativas desde estas herramientas para sacarles todo el partido sin comprometer la seguridad del entorno.

Ejecutar las consolas de Active Directory como otro usuario (ADUC, ADAC, MMC)

El escenario típico es el de un técnico que trabaja con una cuenta estándar de dominio y necesita abrir dsa.msc (Usuarios y Equipos de Active Directory) con credenciales de administrador, sin abandonar su sesión normal. La forma más directa desde el escritorio de Windows es usar la opción clásica de «Ejecutar como otro usuario».

En versiones modernas de Windows, puedes lanzar ADUC de este modo navegando a Inicio → Herramientas administrativas → Usuarios y Equipos de Active Directory, manteniendo pulsada la tecla Shift, haciendo clic derecho sobre el icono y escogiendo «Ejecutar como otro usuario». A continuación introduces el usuario y contraseña de la cuenta con privilegios elevados y la consola se abrirá bajo ese contexto.

Si prefieres trabajar desde consola, también puedes cargar ADUC con un comando basado en MMC. Un ejemplo sencillo con PowerShell sería lanzar mmc.exe apuntando al complemento dsa.msc, de manera que solo tengas que concentrarte en las credenciales:

Start-Process «C:\Windows\System32\mmc.exe» -WorkingDirectory $PSHOME -ArgumentList «dsa.msc»

Ese comando abrirá la consola con las mismas credenciales con las que hayas iniciado la sesión de PowerShell. El problema viene cuando tu sesión de PowerShell pertenece a una cuenta sin privilegios y quieres forzar que el proceso se ejecute como administrador de dominio, pero sin iniciar toda la consola como dicho administrador de forma permanente.

Usar PowerShell con credenciales distintas para herramientas de AD

PowerShell permite ejecutar procesos con otro usuario a través del parámetro -Credential de cmdlets como Start-Process. La idea es sencilla: le pasas un objeto de tipo PSCredential y la consola se abre con esa identidad. Esto evita tener que iniciar una sesión completa de PowerShell como administrador de dominio, reduciendo el riesgo de cometer errores graves.

El patrón más habitual para preparar las credenciales consiste en usar Get-Credential, que abre un cuadro de diálogo seguro donde escribes usuario y contraseña. A continuación, reutilizas ese objeto para lanzar la consola correspondiente. Por ejemplo, para iniciar ADUC como otro usuario:

$cred = Get-Credential
Start-Process «C:\Windows\System32\mmc.exe» -ArgumentList «dsa.msc» -Credential $cred

Con este modelo, la ventana de ADUC se ejecuta como la cuenta privilegiada, pero tu sesión interactiva normal sigue siendo la de tu usuario estándar. Es un enfoque mucho más prudente que iniciar toda la consola de PowerShell con la cuenta de administrador de dominio, porque limita el contexto elevado solo a la herramienta que lo necesita.

Si quieres automatizar aún más el arranque, puedes encapsular el comando dentro de una función de PowerShell llamada, por ejemplo, ADUC, e incluirla en tu perfil:

function ADUC {
  $cred = Get-Credential
  Start-Process «C:\Windows\System32\mmc.exe» -ArgumentList «dsa.msc» -Credential $cred
}

A partir de ese momento, bastará con escribir ADUC en PowerShell para que se soliciten las credenciales y se abra la consola. Puedes aplicar este mismo enfoque a otras herramientas de administración de Active Directory, como el Centro de administración de AD (dsac.exe) o cualquier otra MMC que uses a diario.

Recomendaciones de seguridad al trabajar con cuentas privilegiadas

Cuando se combinan cuentas normales y cuentas de administrador de dominio hay un punto clave: evitar permanecer logueado con la cuenta administrativa más tiempo del necesario. Usar «Ejecutar como otro usuario» o el parámetro -Credential en PowerShell responde precisamente a esta filosofía de mínimo privilegio.

Otro aspecto importante es no reutilizar estas cuentas para abrir aplicaciones de uso general como navegadores, clientes de correo o IDEs de desarrollo. Por ejemplo, permitir que un usuario inicie Visual Studio con credenciales de administrador de dominio no solo abre la puerta a que manipule carpetas de sistema, sino que también aumenta la superficie de ataque frente a malware o código malicioso que pueda heredar esos privilegios elevados.

En entornos donde hay muchos usuarios de aplicaciones que piden elevación, resulta más recomendable aplicar políticas de restricción y despliegue (como AppLocker o directivas de grupo específicas), o trabajar con paquetes MSI y políticas de instalación centralizada, antes que andar repartiendo cuentas de administrador o guardando contraseñas en scripts.

  Qué es la carpeta WinSxS y cómo gestionarla sin poner en riesgo tu Windows

Gestión de Active Directory con PowerShell: preparación y módulo de AD

Antes de poder sacar partido a PowerShell para administrar Active Directory, hay que asegurarse de que el entorno está listo: versión de PowerShell adecuada e importación del módulo de AD. Este módulo es el que proporciona cmdlets como Get-ADUser, New-ADUser, Get-ADGroup, Get-ADDomain y compañía.

Para comprobar la versión de PowerShell en el sistema, puedes utilizar distintos comandos. Uno de los más sencillos es Get-Host, que devuelve información sobre la consola, incluyendo la versión. Alternativamente, puedes consultar directamente la tabla de versiones de PowerShell con $PSVersionTable y, si solo te interesa el número de versión, acceder al campo específico $PSVersionTable.PSVersion.

Una vez confirmes que la versión es adecuada, el siguiente paso es cargar el módulo de administración de Active Directory. Este módulo se llama ActiveDirectory y es el puente para trabajar con los objetos del directorio desde PowerShell. Debes abrir una sesión de PowerShell con permisos de administrador e importar el módulo con:

Import-Module ActiveDirectory

La importación suele ser rápida y silenciosa; si no aparece ningún mensaje de error, lo habitual es que el módulo se haya cargado correctamente. A partir de ahí, tendrás a tu disposición toda la colección de cmdlets de AD para trabajar con usuarios y grupos, equipos, bosques y dominios.

Consultar información del bosque, dominio y controladores de dominio

Con el módulo de AD cargado puedes empezar a recopilar datos sobre la infraestructura. Uno de los primeros comandos útiles es Get-ADForest, que proporciona una vista general del bosque: nombre del bosque, lista de dominios, sitios, particiones, raíz del dominio o el nivel funcional del bosque, entre otros detalles relevantes.

Si te interesa centrarte en el dominio concreto en el que trabajas, el comando equivalente es Get-ADDomain. Esta orden devuelve información como el nombre del dominio, posible dominio padre, dominios hijos, raíz DNS, nivel funcional del dominio, bosque al que pertenece, nombre NetBIOS, emulador de PDC, maestro RID o maestro de infraestructura.

La salida de ambos comandos puede ser filtrada y formateada para mostrar solo los campos que te interesen. Por ejemplo, puedes encadenar las consultas con un pipe (|) para redirigir la salida y un Select para elegir las propiedades: Get-ADDomain | Select Name, DomainMode o Get-ADForest | Select ForestMode, por mencionar algunos casos típicos.

Además, PowerShell permite presentar la información en varios formatos. Tres de los más usados son FT (Format-Table), FL (Format-List) y Out-GridView. Su uso es tan simple como añadirlos después de un pipe, por ejemplo: Get-ADDomain | Select Name, DomainMode | FT, o bien reemplazar FT por FL u Out-GridView según necesites una tabla, una lista detallada o una ventana interactiva.

Para conocer mejor el estado de los controladores de dominio, dispones del comando Get-ADDomainController. Con él puedes listar todos los DCs existentes y filtrarlos por distintos criterios utilizando el modificador -Filter o combinándolo con Select. Así obtienes información precisa sobre qué controladores están disponibles, su rol y otros atributos asociados.

Obtener información de usuarios con PowerShell

Uno de los usos más frecuentes del módulo de AD es consultar datos de usuario. El cmdlet básico es Get-ADUser, que te sirve tanto para revisar la configuración de una cuenta concreta como para hacer listados masivos. Si quieres ver los datos esenciales de un usuario específico, puedes indicarlo directamente por su nombre de cuenta:

Get-ADUser usuario01

Cuando necesites más atributos que los que se muestran por defecto, el modificador clave es -Properties. Puedes usarlo con un asterisco para solicitar todos los campos disponibles o especificar solo algunos concretos. Por ejemplo: Get-ADUser usuario01 -Properties * o bien Get-ADUser usuario01 -Properties CN, UserPrincipalName, whenCreated, whenChanged, según la profundidad de información que busques.

Otra consulta muy práctica es calcular el número total de usuarios del dominio, útil para auditorías rápidas o controles de crecimiento. Para ello se suele combinar el filtro general con un recuento: (Get-ADUser -Filter *).count. Esta sintaxis aprovecha que PowerShell trabaja con objetos, permitiendo un sinfín de posibilidades para procesar los resultados.

Ten siempre presente que en PowerShell no solo manejas texto plano sino estructuras completas, de manera que puedes realizar filtrados, ordenaciones y transformaciones muy potentes sobre el conjunto de usuarios sin salir de la consola.

Alta y baja de usuarios individuales con PowerShell

La creación de usuarios con PowerShell suele implicar un paso previo relacionado con la contraseña. No es posible introducir la contraseña en claro directamente en el cmdlet de alta; en lugar de eso, se convierte a un SecureString mediante ConvertTo-SecureString. Un ejemplo típico sería:

$userpassword = ConvertTo-SecureString -AsPlainText -Force -String «ContraseñaSegura123»

Una vez que tienes almacenada la contraseña segura en esa variable, puedes dar de alta al usuario con el cmdlet New-ADUser. De la forma más simple, bastaría con algo así: New-ADUser -Name usuario02 -AccountPassword $userpassword. Si quieres enriquecer el alta desde el principio, puedes añadir parámetros como descripción o habilitar la cuenta automáticamente con -Enabled $true.

Por ejemplo, nada te impide crear un usuario y describirlo de manera más clara con: New-ADUser -Name usuario02 -Description «Cuenta temporal de pruebas» -Enabled $true -AccountPassword $userpassword. Siempre es buena idea acompañar estas altas con una revisión posterior para confirmar que el usuario ha quedado correctamente creado en la unidad organizativa adecuada.

  Tutorial completo para desinfectar tu dispositivo con Malwarebytes

En cuanto a la baja de usuarios, puedes recurrir a cmdlets específicos para cuentas locales o de dominio. En algunos scripts se emplea Remove-LocalUser para eliminar cuentas locales de un equipo, mientras que para usuarios de dominio el enfoque pasa por usar cmdlets de Active Directory como Remove-ADUser, indicándole la identidad de la cuenta que quieres suprimir.

Creación y eliminación masiva de usuarios con ficheros CSV

Cuando la organización crece o hay muchos movimientos de personal, lo más eficiente es recurrir a la automatización de altas y bajas de usuarios mediante ficheros CSV y scripts de PowerShell. El planteamiento general es muy parecido en ambos casos: se construye una hoja de cálculo simple, se guarda en formato CSV y se procesa línea a línea desde PowerShell.

Para las altas masivas, el CSV suele tener una primera línea con los nombres de los campos (por ejemplo, usuario y contraseña) y una línea por cada nueva cuenta que quieres crear. Un ejemplo sencillo podría ser:

user,password
usuario01,password01
usuario02,password02

Una vez creado el fichero y guardado con extensión .csv, se importa en PowerShell con Import-Csv, asignándolo a una variable que contendrá la lista completa de entradas. Por ejemplo: $listadeusuarios = Import-Csv -Path usuarios.csv. Es importante ejecutar el comando desde el mismo directorio del archivo o especificar la ruta absoluta correspondiente.

A partir de ahí, se recorre la lista con un bucle foreach, y por cada registro se convierte la contraseña en SecureString y se ejecuta el cmdlet de creación. Un esquema muy común para cuentas locales sería:

foreach ($i in $listadeusuarios){
  $userpassword = ConvertTo-SecureString $i.password -AsPlainText -Force
  New-LocalUser $i.user -Password $userpassword
}

Este mismo patrón puede adaptarse para usuarios de dominio con New-ADUser, añadiendo los parámetros necesarios (unidad organizativa, nombre completo, correo electrónico, etc.). Además, puedes activar la salida en modo verbose para ver línea a línea si cada usuario se crea correctamente, recibiendo confirmaciones tipo True en caso de éxito.

En el caso de las bajas masivas, la lógica es similar pero más sencilla, porque suele bastar con un CSV que contenga una única columna con el identificador del usuario (por ejemplo, «user»). Se importa ese listado, se recorre y se lanza el cmdlet de eliminación, ya sea Remove-LocalUser para cuentas locales o Remove-ADUser para usuarios de dominio:

$listadeusuarios = Import-Csv -Path borradousuarios.csv
foreach ($i in $listadeusuarios){
  Remove-LocalUser $i.user
}

Esta forma de trabajar no solo ahorra tiempo, sino que minimiza errores humanos al manipular muchas cuentas a la vez, siempre que el fichero CSV esté bien preparado y revisado antes de la ejecución.

Cambios de contraseña y desbloqueo de cuentas con PowerShell

La gestión diaria de contraseñas suele consumir una buena parte del tiempo del personal de soporte. PowerShell ofrece comandos muy directos para cambiar o resetear contraseñas de usuario en Active Directory, algo especialmente útil cuando los propios usuarios no pueden hacerlo desde sus estaciones de trabajo.

Si conoces la contraseña actual del usuario, puedes utilizar Set-ADAccountPassword indicando simplemente la cuenta sobre la que trabajas. El sistema te pedirá interactivamente la contraseña actual y la nueva. En cambio, si no conoces la contraseña anterior y quieres forzar un restablecimiento, se utiliza el mismo cmdlet con el modificador -Reset, por ejemplo: Set-ADAccountPassword usuario01 -Reset, acompañándolo de los parámetros necesarios para establecer la nueva clave.

Otro escenario muy habitual es el de las cuentas bloqueadas por intentos fallidos. Para liberar estas cuentas, dispones del cmdlet Unlock-ADAccount, que puedes usar tanto directamente como con opciones de diagnóstico. Por ejemplo, Unlock-ADAccount usuario01 -Verbose muestra información adicional sobre el proceso, mientras que Unlock-ADAccount usuario01 -WhatIf permite simular qué ocurriría si ejecutases el desbloqueo, sin aplicar cambios reales.

Para modificaciones de atributos como descripción, departamento o ciudad, el cmdlet indicado es Set-ADUser. La sintaxis general se basa en indicar el usuario y los parámetros que deseas cambiar. Así, por ejemplo, podrías actualizar la descripción con un comando tipo: Set-ADUser usuario01 -Description "Usuario de marketing", cuidando siempre de encerrar la descripción entre comillas cuando incluya espacios.

Administración de grupos en Active Directory con PowerShell

Los grupos son un pilar básico de la asignación de permisos y deben gestionarse con el mismo cuidado que los usuarios. Para consultar información de un grupo concreto desde PowerShell, se utiliza el cmdlet Get-ADGroup, al que se le pasa el nombre del grupo. Por ejemplo, Get-ADGroup "GrupoVentas" devuelve los detalles del objeto, incluyendo su ámbito y tipo.

Si lo que necesitas es averiguar quién forma parte de un grupo determinado, la herramienta adecuada es Get-ADGroupMember. Con Get-ADGroupMember "GrupoVentas" obtendrás la lista de objetos miembros (usuarios, equipos, otros grupos), junto con información como el tipo de objeto o su SID. Esta consulta es especialmente útil a la hora de auditar pertenencias sensibles.

A la inversa, para incorporar un usuario a un grupo existente se recurre al cmdlet Add-ADGroupMember. Su sintaxis se basa en indicar el nombre del grupo y el identificador de la cuenta (usualmente el SamAccountName) que quieres agregar. Un caso típico sería: Add-ADGroupMember "GrupoVentas" usuario01, que añade ese usuario al grupo sin necesidad de abrir consolas gráficas.

  Drivers V4 de impresoras: guía completa del nuevo modelo de impresión

Una vez interiorizados estos comandos básicos, es sencillo construir scripts más complejos que automaticen altas simultáneas de usuarios y su inclusión en grupos estándar según área, departamento o ubicación, reduciendo trabajo manual y evitando olvidos en la asignación de permisos.

Herramientas de línea de comandos clásicas para Active Directory (dsadd, dsmod, dsrm, dsquery)

Además de PowerShell, en muchos entornos siguen utilizándose las herramientas de línea de comandos del servicio de directorio (ds*), especialmente en equipos con Windows Server 2003 o posteriores donde estas utilidades están disponibles. Aunque son más antiguas, siguen siendo útiles para scripts ligeros o tareas concretas desde cmd.exe.

Por ejemplo, la creación de un usuario puede hacerse con dsadd user, indicando el nombre distintivo (DN) del objeto y el nombre SAM. A continuación se puede establecer la contraseña con el parámetro -pwd. Un esquema básico sería: dsadd user <user_dn> -samid <sam_name> -pwd <password>, donde el DN determina en qué unidad organizativa se crea el usuario.

Para resetear la contraseña de un usuario ya existente se utiliza dsmod user con el parámetro -pwd, por ejemplo: dsmod user <user_dn> -pwd <new_password>. Si quieres obligar a que el usuario cambie esa contraseña en su siguiente inicio de sesión, basta con añadir -mustchpwd yes, de modo que el sistema solicite la actualización en cuanto el usuario vuelva a autenticarse.

Deshabilitar o habilitar cuentas también es sencillo con dsmod user gracias al parámetro -disabled, que acepta yes o no según quieras impedir o permitir el inicio de sesión. Para eliminar un usuario, en cambio, se emplea dsrm sobre el DN correspondiente, teniendo presente que la eliminación es permanente y que, aunque se vuelva a crear una cuenta con el mismo nombre, el SID ya no será el mismo.

En el terreno de grupos, dsadd group permite crear nuevos grupos especificando el DN, el nombre SAM, si será un grupo de seguridad o de distribución y su ámbito (local de dominio, global o universal). La incorporación de miembros se hace con dsmod group -addmbr, indicando el DN del grupo y el DN del objeto que quieras añadir. También es posible convertir el tipo de grupo (seguridad o distribución) y su ámbito con parámetros como -secgrp o -scope, respetando siempre las restricciones de nivel funcional del dominio.

Las cuentas de equipo se gestionan con dsadd computer para crearlas, y se pueden añadir a grupos usando dsmod group -addmbr <computer_dn>. Para restablecer una cuenta de equipo (por ejemplo, cuando hay problemas de confianza entre el equipo y el dominio), se dispone de dsmod computer -reset, y para habilitar o deshabilitar la cuenta se usa dsmod computer -disabled {yes|no}, interrumpiendo o restableciendo la conexión de ese equipo con el dominio.

En cuanto a unidades organizativas, dsadd ou sirve para crear nuevas OU proporcionando su DN, mientras que dsrm <organizational_unit_dn> las elimina. Siempre es recomendable estructurar usuarios y grupos dentro de OU bien definidas, en lugar de dejar los objetos en contenedores genéricos como «Usuarios» o «Builtin», ya que así se facilita la delegación de permisos y la aplicación de directivas de grupo.

Búsquedas y consultas en Active Directory con dsquery

Cuando necesitas localizar objetos específicos en Active Directory desde la línea de comandos, la familia dsquery entra en juego. Estas herramientas permiten realizar búsquedas por distintos parámetros sin necesidad de abrir consolas gráficas, lo que resulta muy práctico en scripts o conexiones remotas mínimas.

Para encontrar cuentas de usuario, el comando base es dsquery user seguido de los parámetros de búsqueda que te interesen (por ejemplo, por nombre, por ubicación en el árbol, etc.). De forma similar, dsquery contact se centra en los contactos, dsquery group en grupos, dsquery computer en cuentas de equipo, usando en este último caso opciones como -name <nombre_equipo> para buscar por CN.

Si lo que quieres es listar las unidades organizativas, puedes recurrir a dsquery ou, mientras que para localizar controladores de dominio emplearás dsquery server, con diferentes parámetros según quieras filtrar por sitio, rol o versiones. En escenarios avanzados, el comando dsquery * permite realizar búsquedas LDAP personalizadas utilizando cualquier atributo como criterio, lo que te da mucha más flexibilidad a costa de una sintaxis algo más compleja.

Por último, saber en qué grupos está incluido un usuario concreto puede hacerse también con dsget user <user_dn> -memberof, que devuelve todas las pertenencias de grupo asociadas a ese DN. Esta información resulta muy valiosa a la hora de diagnosticar problemas de permisos o limpiar pertenencias antiguas.

Combinando todas estas herramientas —ejecución de consolas MMC como otro usuario, cmdlets de PowerShell para AD y utilidades ds* clásicas— es posible administrar Active Directory de forma segura, flexible y eficiente, trabajando a diario con una cuenta estándar y elevando privilegios solo en las operaciones que realmente lo exigen, con controles finos tanto sobre usuarios como sobre grupos, equipos y unidades organizativas.

Creación y actualización de usuarios a partir de un archivo CSV de recursos humanos con powershell
Related article:
Creación y actualización de usuarios desde CSV de RRHH con PowerShell