Cómo ejecutar una consola CMD en un PC remoto con Psexec | Explicación detallada

Cómo ejecutar una consola CMD en un PC remoto con Psexec | Explicación detallada

Publicado el 12 de abril de 2023 · Niwo

Cómo ejecutar una consola CMD en un PC remoto con Psexec | Explicación detallada

Primero que nada, quiero aclarar que Psexec no es una herramienta destinada a usos maliciosos. Es una utilidad administrativa desarrollada por Microsoft que permite a administradores de sistemas o usuarios con acceso remoto y credenciales válidas obtener dicho acceso y ejecutar una variedad de comandos. Si bien en este artículo nos centraremos en la ejecución del CMD, Psexec ofrece muchas más funcionalidades.

Psexec windows

¿Cómo instalar Psexec en mi equipo con Windows?

Esta herramienta forma parte de los PSTools, una suite de herramientas desarrolladas por Microsoft. Puedes descargar el paquete completo desde la página oficial:

Descargar Psexec - Pack Pstools

Una vez descargado, descomprime el archivo para acceder a los ejecutables, incluyendo psexec.exe. Coloca este archivo en una carpeta de tu equipo, por ejemplo:

“C:\Program Files\pstools”


En esta ruta, organiza todo el contenido de PSTools. La estructura debería ser similar a la siguiente imagen:

![Psexec pstools](../../../assets/blog/pstools-20instalacion.webp)

Con Psexec en esta carpeta, ya puedes ejecutarlo. Sin embargo, para evitar tener que navegar hasta la ubicación cada vez que lo necesites, vamos a modificar las variables de entorno del sistema.

### (Opcional) Modificar variables de entorno

La forma más sencilla es buscar "Variables de entorno" en la barra de búsqueda de Windows y seleccionar "Editar las variables de entorno del sistema".  En la ventana que se abre, haz clic en el botón "Variables de entorno".

![Psexec variables de entorno](../../../assets/blog/propiedades-20del-20sistema-20windows.webp)

Busca la variable "Path" (o "RUTA" en algunas versiones de Windows) y selecciónala. Haz clic en "Editar".  Agrega una nueva línea con la ruta a la carpeta que creaste para PSTools, por ejemplo: `"C:\\Program Files\\pstools"`.  Asegúrate de guardar los cambios en las tres ventanas abiertas.

![agregar Psexec a las variables entorno](../../../assets/blog/agregar-Psexec-a-las-variables-entorno.webp)

![agregar pstools a las variables entorno](../../../assets/blog/agregar-pstools-a-las-variables-entorno.webp)

Cierra todas las ventanas de CMD abiertas y abre una nueva. Ahora, al escribir `psexec` en la línea de comandos, se ejecutará el comando sin necesidad de especificar la ruta completa. Si recibes el mensaje **"psexec no se reconoce como un comando interno o externo"**, verifica que la ruta a la carpeta PSTools esté correctamente agregada a las variables de entorno.

## ¿Cómo puedo obtener acceso a un equipo remoto con Psexec?

Para acceder al CMD de un equipo remoto, necesitas una cuenta con permisos administrativos en ese equipo o una cuenta de dominio con privilegios adecuados.  El comando básico para ejecutar el CMD es:

psexec -i \IP_DEL_EQUIPO -u USUARIO_DEL_EQUIPO cmd


Desglosemos cada parte del comando:

*   `-i`: Indica que la consola debe ser interactiva, lo cual es necesario para ejecutar un CMD.
*   `\\IP_DEL_EQUIPO`: Reemplaza `IP_DEL_EQUIPO` con la dirección IP o el nombre de host del equipo remoto (por ejemplo, `\\192.168.0.10`).
*   `-u USUARIO_DEL_EQUIPO`:  Reemplaza `USUARIO_DEL_EQUIPO` con el nombre de usuario que tiene acceso al equipo remoto. Es importante tener la contraseña de este usuario o utilizar una cuenta de dominio con permisos administrativos.
*   `cmd`: Especifica que se debe ejecutar el intérprete de comandos (CMD) en el equipo remoto.

Al intentar acceder, se te solicitará la contraseña del usuario.  Ten en cuenta que no verás los caracteres mientras escribes la contraseña por motivos de seguridad. Simplemente escribe la contraseña y presiona Enter. Si todo está correcto, obtendrás acceso a la consola remota.

![Psexec conexion remota](../../../assets/blog/password-20en-20psexec.webp)

## Psexec ejemplos explicados detalladamente

Además de ejecutar el CMD, Psexec permite realizar otras tareas como copiar un ejecutable al equipo remoto y ejecutarlo, o ejecutar programas específicos en nombre del usuario remoto.

*   **Ejecutar un .exe copiándolo al equipo de manera remota y ejecutándolo:**

psexec -i \IP_DEL_EQUIPO -u USUARIO_DEL_EQUIPO -c ejecutable.exe


La opción `-c` permite copiar el archivo `ejecutable.exe` (ubicado en la misma carpeta desde donde se ejecuta el comando) al equipo remoto y ejecutarlo. Esto es útil para instalaciones de software como antivirus o sistemas de inventario que requieren una interfaz de consola interactiva.

*   **Ejecutar un .exe específico que ya se encuentra en el equipo remoto, especificando su ruta completa:**

psexec -i \IP_DEL_EQUIPO -u USUARIO_DEL_EQUIPO C:\Windows\System32\CMD.exe


La única diferencia con el comando anterior es que se especifica la ruta completa al ejecutable. Esto funciona para cualquier programa, siempre y cuando tengas los permisos necesarios.

Artículos relacionados