Como executar comandos do Windows remotamente na máquina Linux usando o comando rdesktop?

20

É possível executar comandos do Windows usando a rdesktopferramenta no Linux? Eu tentei com a rdesktop -sopção:

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

mas não consigo abrir o cmd.execomando acima, também tentei com o caminho completo:

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

mas não há diferença na sessão RDP, mesmo que eu use -s.

Estou tentando obter uma lista de sessões RDP usando qwinsta /serverno Windows no Linux.

Augustin
fonte
Provavelmente porque apenas o administrador padrão pode executar tarefas sem ser promovido a prpceed. Qualquer outra conta, mesmo com as permissões corretas, atuaria como administrador.
Você já viu as ferramentas psexec para windows? Eles podem ser executados sob WINE.
precisa saber é o seguinte

Respostas:

5

Se você tiver acesso ao computador, instale um servidor ssh nele. No Linux, você pode usar, por exemplo, o Overlook-Fing para encontrar o IP do computador. Então você digita ssh username@ipaddressno shell do Linux.

Exemplo:

ssh [email protected]

Em seguida, digite a senha do usuário e você deverá ter acesso ao prompt de comando do Windows do computador. Você também pode usar o telnet, mas o ssh é criptografado.

aka91x
fonte
4

Não tenho uma solução usando, rdesktopmas uso um programa chamado winexeLinux para executar comandos remotos em máquinas Windows. Você pode obter o aplicativo a partir da URL a seguir ou usar o sistema de repositório de software da sua distribuição para instalá-lo.

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

ATUALIZAÇÃO: o certificado SSL é autoassinado no link sourceforge acima, por isso estou fornecendo outro link:

https://github.com/skalkoto/winexe

Aqui está um exemplo do uso:

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

Você deseja criar um arquivo credentials.cfg com as informações de login da seguinte maneira:

username=user
password=pass
domain=workplace

Forneça o domínio apenas se for aplicável a você. É uma prática recomendada não colocar suas credenciais de login (especialmente a senha) na linha de comando. Tente executar cmd.exeusando o exemplo acima, se desejar um prompt interativo. O bom dessa abordagem é que você pode usar a saída do comando remoto em seus scripts Linux ou grep a saída.

cmevoli
fonte
No winexe, o usuário deve ser "administrador" para funcionar corretamente, mas no meu caso, estou tentando com o usuário RDP normal, para que o winexe não funcione.
Augustin
@ August: O que significa "deveria"? Você leu isso em algum lugar ou já tentou e não funciona se o nome de usuário for outro administrator? Você realmente já tentou?
Bananguin
O Winexe instalará alguns pacotes na máquina Windows, somente ele funcionará e a instalação do pacote não será possível com o usuário comum.
Augustin
3

A partir de hoje, você poderia usar xfreerdpo recurso RemoteApp para executar software específico:

  1. Habilite o RemoteApps em um host do Windows. Deve ser tão fácil quanto editar o registro ;
  2. Instale xfreerdpno seu host Linux. Existem versões prontas para uso para Ubuntu, Debian, Fedora, OpenSUSE e macOS.
  3. Execute o comando em xfreerdp /u:user /d:domain /p:password /app:"||calc" /v:serverque:
    • /u:- usuário do Windows
    • /d:- Domínio (pode ser WORKGROUPse não ingressou em um AD)
    • /p:- senha do Windows
    • /app:"||calc"- App para ser executado. Pode ser o cmdque você quiser
    • /v:- Endereço IP ou nome do host do host do Windows.

fonte
0

Eu desenvolvi collectnode, que usam winrmprotocolo para se conectar com o Windows.

primeiro: crie um arquivo de hosts:

# cat hosts.file


    [group1:vars] 
    nodetype=windows



    [group1] 
    server1
    server2
    server3
    server4
    server5

segundo: configurar a credencial em 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

terceiro: execute qualquer comando necessário nesses servidores:

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

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

fvidalmolina
fonte
2
O link não está funcionando e, sem ele, a resposta é inútil.
Andrew Savinykh