¿Cómo ejecutar comandos de Windows de forma remota desde la máquina Linux usando el comando rdesktop?

20

¿Es posible ejecutar comandos de Windows usando la rdesktopherramienta en Linux? Intenté con la rdesktop -sopción:

rdesktop -u user -p 10.0.0.2 -s "cmd.exe"

pero no puedo abrir cmd.exeusando el comando anterior, también lo intenté con la ruta completa:

rdesktop -u user -p'password' 10.0.0.2 -s "C:\WINDOWS\system32\cmd.exe"

pero no hay diferencia en la sesión RDP incluso si la uso -s.

Estoy tratando de obtener una lista de sesiones RDP usando qwinsta /serveren Windows desde Linux.

Agustín
fuente
Probablemente se deba a que solo el administrador predeterminado puede realizar tareas sin ser promovido a prpceed. Cualquier otra cuenta, incluso con los permisos correctos, actuaría como administrador.
¿Has mirado las herramientas psexec para windows? Pueden correr bajo WINE.
jc__

Respuestas:

5

Si tiene acceso a la computadora, instale un servidor ssh en ella. En Linux puede usar, por ejemplo, Overlook-Fing para encontrar la IP de la computadora. Luego escribe ssh username@ipaddressen el shell de Linux.

Ejemplo:

ssh [email protected]

Luego escriba la contraseña del usuario y debería tener acceso al símbolo del sistema de Windows de la computadora. También puede usar telnet pero ssh está encriptado.

aka91x
fuente
4

No tengo una solución usando rdesktoppero uso un programa llamado winexeen Linux para ejecutar comandos remotos en máquinas Windows. Puede obtener la aplicación desde la siguiente URL o usar el sistema de repositorio de software de su distribución para instalarla.

http://sourceforge.net/projects/winexe/

ACTUALIZACIÓN: el certificado SSL está autofirmado para el enlace de sourceforge anterior, por lo que proporciono otro enlace:

https://github.com/skalkoto/winexe

Aquí hay un ejemplo del uso:

winexe -A credentials.cfg //remotehost "qwinsta /server"

Deberá crear un archivo credentials.cfg con la información de inicio de sesión de la siguiente manera:

username=user
password=pass
domain=workplace

Solo proporcione el dominio si se aplica a usted. Es una buena práctica no poner sus credenciales de inicio de sesión (especialmente la contraseña) en la línea de comandos. Intente ejecutar cmd.exeutilizando el ejemplo anterior si desea una solicitud interactiva. Lo bueno de este enfoque es que puede usar la salida del comando remoto en sus scripts de Linux o grep la salida.

cmevoli
fuente
En winexe, el usuario debe ser "administrador" para que funcione correctamente, pero en mi caso, estoy intentando con un usuario RDP normal, por lo que winexe no funcionará.
Augustin
@Augustin: ¿Qué significa "debería"? ¿Leíste eso en alguna parte, o lo has probado y no funciona si el nombre de usuario es diferente administrator? ¿Ya lo has probado?
Bananguin
Winexe instalará algunos paquetes en la máquina de Windows, luego solo funcionará y la instalación del paquete no es posible con el usuario normal.
Augustin
3

A partir de hoy, puede usar xfreerdpsu función RemoteApp para ejecutar software específico:

  1. Habilite RemoteApps en un host de Windows. Debería ser tan fácil como editar el registro ;
  2. Instalar xfreerdpen su host de Linux. Hay compilaciones listas para usar para Ubuntu, Debian, Fedora, OpenSUSE y macOS.
  3. Ejecute el comando xfreerdp /u:user /d:domain /p:password /app:"||calc" /v:serverdonde:
    • /u:- Usuario de Windows
    • /d:- Dominio (podría ser WORKGROUPsi no se unió a un AD)
    • /p:- contraseña de Windows
    • /app:"||calc"- Aplicación a ejecutar. Podría ser cmdcomo quieras
    • /v:- Dirección IP o nombre de host del host de Windows.

fuente
0

He desarrollado collectnode, que utilizan el winrmprotocolo para conectarse con Windows.

primero: crea un archivo de hosts:

# cat hosts.file


    [group1:vars] 
    nodetype=windows



    [group1] 
    server1
    server2
    server3
    server4
    server5

segundo: configurar la credencial en CollectNode

# collectnode --configure
Do you want to change the localhost User ? [y/n]: n
Do you want to change the UNIX/LINUX User used the connect to the servers? [y/n]: n
Do you want to change the WINDOWS User used the connect to the servers? [y/n]: y
Enter user name: Administrator
Enter password:
Enter domain|realm [none]: none
Enter transport mode (basic|ntlm|kerberos) [kerberos]: ntlm
Current path: /var/log/
Do you want to change the current path for log file? [y/n]: n

tercero: ejecute cualquier comando que necesite en estos servidores:

# collectnode --file hosts.file --command='whatever command you need'

https://collectnode.com/executing-commands-on-remote-windows-from-linux-terminal/

fvidalmolina
fuente
2
Link no funciona y sin él, la respuesta es inútil.
Andrew Savinykh