En ocasiones muy específicas, es necesario conectarnos con algún equipo Windows remotamente vía consola, de tal manera el usuario no se dé cuenta que estamos conectados y hagamos tareas específicas puntuales… esto por motivos de configuraciones generalmente (por ejemplo, cambiar la configuración de red, gestión de servicios mediante… cosas así), ejecución de bat’s con tareas predefinidas, etc.
El mismo Microsoft, pensando en ésta necesidad, publicó en su sitio un kit de herramientas desarrolladas por Mark Russinovich, llamada PsTools; Nos sirve básicamente para administrar sistemas operativos Windows de forma remotamente. En ésta entrada, nos centraremos en el comando PsExec.exe, el cual es como un sustituto al viejo telnet; Permite ejecutar procesos en el Windows remoto en modo consola (CMD) sin tener que instalar manualmente algún software del lado del cliente.
Primero, debemos de descargar el kit de herramientas PSTools desde éste enlace:
Descomprimimos dicho archivo descargado en alguna carpeta en el C:\ (por ejemplo, C:\PSTools ).
Ejecutamos una CMD (Símbolo del sistema) como administrador y nos vamos a la unidad a C:\PSTools
Para mejor referencia, ver las siguientes imágenes:
Ahora, es importante mencionar que se requiere conocer el usuario y clave de algún usuario con privilegios de administrador local en el equipo remoto; si se está en un entorno de dominio, también se puede usar una cuenta con privilegios de administrador del dominio para poder acceder. Para nuestro ejemplo, usaremos la cuenta del administrador de dominio.
Realmente se pueden hacer muchísimas cosas con éste comando (PsExec), de hecho pueden ver la ayuda con psexec /? para verificar, pero nosotros nos enfocaremos en 2 acciones más comunes.
Requisitos indispensables para el equipo remoto:
- Deben de estar abiertos los puertos TCP:135, TCP:445, UDP:137 y UDP:138. En una LAN, creo que no habría problemas porque éstos puertos son necesarios para compartir archivos entre otras cosas; hay quienes bajan el firewall de los equipos, pero eso no es correcto xD
- Se deben de tener los recursos compartidos de sistema Admin$ y IPC$
- Entiendo que todos los Windows lo tienen por defecto (por lo menos las versiones Professional)
La primera vez que se ejecute el comando, aparecerá una ventana sobre el acuerdo de licencia, al cual debemos de dar clic en «Agree» (En teoría, habría que leerlo antes xD )
Ejecución de una línea de comando
Si solo queremos ejecutar algo en concreto y ver su salida, podemos usar una sola línea de comando así:
psexec \\10.20.30.40 -u dominio\administrator -s ipconfig
Donde:
- \\10.20.30.40
- Es la IP o nombre de equipo remoto al que nos queremos conectar.
- -u dominio\administrator
- El parámetro -u permite colocar un nombre de usuario para autenticarse al equipo remoto. En éste ejemplo, se uso la sintaxis de conectarse mediante el usuario Administrator de un dominio, pero perfectamente se puede usar una cuenta de usuario local del equipo remoto pero que tenga privilegios de administrador (que esté dentro del grupo Administradores).
- -s ipconfig
- El parámetro -s permite ejecutar directamente un comando en el equipo remoto; en nuestro caso, hemos utilizado el comando ipconfig para que nos devuelva la configuración de red del equipo remoto.
Aparecería algo similar al siguiente ejemplo:
Se ejecuta una vez y nos muestra la salida o resultado del comando nada más; O sea que se conecta al equipo remoto únicamente a hacer lo que le enviamos en el parámetro -s
Conexión completa al equipo remoto vía CMD
Nos podemos conectar directamente al equipo remoto mediante PsExec de la siguiente manera:
psexec \\10.20.30.40 -u dominio\administrator -s cmd
De ésta forma, ya estamos dentro del equipo remoto en su propio CMD. Desde aquí, podemos hacer lo que queramos (o lo que se pueda hacer con un CMD). A continuación, un ejemplo:
De más esta decir que, para salirnos de ésta CMD, hay que ingresar el comando exit
Bien, ¡eso sería todo! En otra entrada vamos a ver un poco sobre cómo gestionar servicios vía comando y cambiar la configuración IP con el comando netsh, dado que creo que pueda estar de la mano con ésta entrada.
¡Saludos!
Comentarios por Facebook
comentarios