Come eseguire i comandi di Windows in remoto dalla macchina Linux usando il comando rdesktop?


20

È possibile eseguire i comandi di Windows utilizzando lo rdesktopstrumento in Linux? Ho provato con l' rdesktop -sopzione:

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

ma non riesco ad aprire cmd.exeusando il comando sopra, ho anche provato con il percorso completo:

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

ma non c'è differenza nella sessione RDP anche se uso -s.

Sto cercando di ottenere un elenco di sessioni RDP utilizzando qwinsta /serverin Windows da Linux.


Probabilmente è perché solo l'amministratore predefinito può eseguire attività senza essere promosso per procedere. Qualsiasi altro account, anche con le autorizzazioni corrette, fungerebbe da amministratore.


Hai guardato gli strumenti di psexec per Windows? Potrebbero correre sotto VINO.
jc__

Risposte:


5

Se hai accesso al computer, installa un server ssh su di esso. Su Linux è possibile utilizzare, ad esempio, Overlook-Fing per trovare l'IP del computer. Quindi digiti ssh username@ipaddressnella shell di Linux.

Esempio:

ssh Lenovo@192.168.0.100

Quindi digitare la password dell'utente e si dovrebbe avere accesso al prompt dei comandi di Windows del computer. Puoi anche usare telnet ma ssh è crittografato.


4

Non ho una soluzione usando rdesktopma uso un programma chiamato winexesu Linux per eseguire comandi remoti su macchine Windows. È possibile ottenere l'applicazione dal seguente URL o utilizzare il sistema di repository software della propria distribuzione per installarla.

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

AGGIORNAMENTO: Il certificato SSL è autofirmato per il link sourceforge sopra, quindi sto fornendo un altro link:

https://github.com/skalkoto/winexe

Ecco un esempio dell'uso:

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

Ti consigliamo di creare un file credentials.cfg con le informazioni di accesso in questo modo:

username=user
password=pass
domain=workplace

Fornisci il dominio solo se applicabile. È consigliabile non inserire le credenziali di accesso (in particolare la password) sulla riga di comando. Prova a eseguire cmd.exeutilizzando l'esempio sopra se desideri un prompt interattivo. La cosa bella di questo approccio è che puoi usare l'output del comando remoto nei tuoi script Linux o grep l'output.


In winexe l'utente dovrebbe essere "amministratore" per funzionare correttamente, ma nel mio caso, sto provando con un normale utente RDP, quindi winexe non funzionerà.
Augustin,

@Augustin: cosa significa "dovrebbe"? L'hai letto da qualche parte o l'hai provato e non funziona se il nome utente è diverso da administrator? L'hai già provato?
Bananguin,

Winexe installerà alcuni pacchetti nel computer Windows, quindi funzionerà solo e l'installazione dei pacchetti non è possibile con l'utente normale.
Augustin,

3

Ad oggi, è possibile utilizzare xfreerdpcon la sua funzione RemoteApp per eseguire software specifici:

  1. Abilita RemoteApps su un host Windows. Dovrebbe essere facile come modificare il registro ;
  2. Installa xfreerdpsul tuo host Linux. Esistono build pronte per l'uso per Ubuntu, Debian, Fedora, OpenSUSE e macOS.
  3. Eseguire il comando xfreerdp /u:user /d:domain /p:password /app:"||calc" /v:serverdove:
    • /u:- Utente Windows
    • /d:- Dominio (potrebbe non essere WORKGROUPiscritto a un annuncio)
    • /p:- Password di Windows
    • /app:"||calc"- App da eseguire. Potrebbe essere cmdcome vuoi tu
    • /v:- Indirizzo IP o nome host dell'host Windows.

0

Ho sviluppato collectnode, che usano il winrmprotocollo per connettersi con Windows.

primo: crea un file hosts:

# cat hosts.file


    [group1:vars] 
    nodetype=windows



    [group1] 
    server1
    server2
    server3
    server4
    server5

secondo: configurare le credenziali in 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

terzo: eseguire qualsiasi comando necessario su questi server:

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

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


2
Link non funziona e senza di essa la risposta è inutile.
Andrew Savinykh,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.