Wie führe ich Windows-Befehle mit dem Befehl rdesktop von einem Linux-Computer aus aus?


20

Ist es möglich, Windows-Befehle mit dem rdesktopTool unter Linux auszuführen ? Ich habe es mit rdesktop -sOption versucht :

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

aber ich bin nicht in der lage das cmd.exemit dem obigen befehl zu öffnen , auch ich habe es mit dem vollen pfad versucht:

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

Aber es gibt keinen Unterschied in der RDP-Sitzung, auch wenn ich verwende -s.

Ich versuche, eine Liste der RDP-Sitzungen zu erhalten, die qwinsta /serverin Windows unter Linux verwendet werden.


Dies liegt wahrscheinlich daran, dass nur der Standardadministrator Aufgaben ausführen kann, ohne zum Fortfahren befördert zu werden. Jedes andere Konto, auch mit den richtigen Berechtigungen, würde als Administrator fungieren.


Haben Sie sich die Psexec-Tools für Windows angesehen? Sie könnten unter WEIN laufen.
jc__

Antworten:


5

Wenn Sie Zugriff auf den Computer haben, installieren Sie einen SSH-Server darauf. Unter Linux können Sie zum Beispiel Overlook-Fing verwenden, um die IP des Computers zu ermitteln. Dann tippst du ssh username@ipaddressin die Linux-Shell.

Beispiel:

ssh Lenovo@192.168.0.100

Geben Sie dann das Kennwort des Benutzers ein und Sie sollten Zugriff auf die Windows-Eingabeaufforderung des Computers haben. Sie können auch Telnet verwenden, aber ssh ist verschlüsselt.


4

Ich habe keine Lösung, benutze rdesktopaber ein Programm, das winexeunter Linux aufgerufen wird , um Remote-Befehle auf Windows-Computern auszuführen. Sie können die Anwendung unter der folgenden URL abrufen oder das Software-Repository-System Ihrer Distribution verwenden, um sie zu installieren.

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

UPDATE: Das SSL-Zertifikat ist für den obigen SourceForge-Link selbst signiert, daher stelle ich einen weiteren Link bereit:

https://github.com/skalkoto/winexe

Hier ist ein Beispiel für die Verwendung:

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

Sie möchten eine credentials.cfg-Datei mit den folgenden Anmeldeinformationen erstellen:

username=user
password=pass
domain=workplace

Geben Sie die Domain nur an, wenn sie auf Sie zutrifft. Es wird empfohlen, Ihre Anmeldeinformationen (insbesondere das Kennwort) nicht in die Befehlszeile einzugeben. Versuchen Sie es cmd.exemit dem obigen Beispiel, wenn Sie eine interaktive Eingabeaufforderung wünschen. Das Schöne an diesem Ansatz ist, dass Sie die Ausgabe des Remote-Befehls in Ihren Linux-Skripten verwenden oder die Ausgabe abrufen können.


In winexe sollte der Benutzer "Administrator" sein, um ordnungsgemäß zu funktionieren, aber in meinem Fall versuche ich es mit einem normalen RDP-Benutzer, sodass winexe nicht funktioniert.
Augustin

@ Augustin: Was bedeutet "sollte"? Hast du das irgendwo gelesen oder hast du es versucht und es funktioniert nicht, wenn der Benutzername ein anderer als ist administrator? Hast du es tatsächlich schon probiert?
Bananguin,

Winexe installiert einige Pakete auf dem Windows-Computer. Dann funktioniert nur das und die Paketinstallation ist für normale Benutzer nicht möglich.
Augustin

3

Ab heute können Sie xfreerdpmit der RemoteApp-Funktion bestimmte Software ausführen:

  1. Aktivieren Sie RemoteApps auf einem Windows-Host. Sollte so einfach sein wie das Bearbeiten der Registrierung .
  2. Installieren Sie xfreerdpauf Ihrem Linux-Host. Es gibt gebrauchsfertige Builds für Ubuntu, Debian, Fedora, OpenSUSE und macOS.
  3. Führen Sie den Befehl aus, xfreerdp /u:user /d:domain /p:password /app:"||calc" /v:serverwobei:
    • /u:- Windows Benutzer
    • /d:- Domain (könnte sein, WORKGROUPwenn kein AD beigetreten ist)
    • /p:- Windows Passwort
    • /app:"||calc"- App ausgeführt werden. Könnte sein, cmdwie Sie wollen
    • /v:- IP-Adresse oder Hostname des Windows-Hosts.

0

Ich habe entwickelt collectnode, die winrmProtokoll verwenden, um mit Windows zu verbinden.

erstens: erstelle eine hosts Datei:

# cat hosts.file


    [group1:vars] 
    nodetype=windows



    [group1] 
    server1
    server2
    server3
    server4
    server5

Zweitens: Konfigurieren Sie den Berechtigungsnachweis bei 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

Drittens: Führen Sie einen beliebigen Befehl auf diesen Servern aus:

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

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


2
Link funktioniert nicht und ohne funktioniert die Antwort nicht.
Andrew Savinykh
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.