Jak wykonywać polecenia systemu Windows zdalnie z komputera z systemem Linux za pomocą polecenia rdesktop?

20

Czy można uruchamiać polecenia systemu Windows za pomocą rdesktopnarzędzia w systemie Linux? Próbowałem z rdesktop -sopcją:

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

ale nie jestem w stanie otworzyć cmd.exepowyższego polecenia, próbowałem też z pełną ścieżką:

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

ale nie ma różnicy w sesji RDP, nawet jeśli używam -s.

Próbuję uzyskać listę sesji RDP korzystających qwinsta /serverz systemu Windows w systemie Linux.

Augustin
źródło
Jest to prawdopodobnie spowodowane tym, że tylko domyślny administrator może wykonywać zadania bez awansu do programu prpvere. Każde inne konto, nawet z prawidłowymi uprawnieniami, działałoby jako administrator.
Czy spojrzałeś na narzędzia psexec dla systemu Windows? Mogą działać pod WINEM.
jc__

Odpowiedzi:

5

Jeśli masz dostęp do komputera, zainstaluj na nim serwer ssh. W systemie Linux można na przykład użyć funkcji Overlook-Fing, aby znaleźć adres IP komputera. Następnie piszesz ssh username@ipaddressw powłoce Linux.

Przykład:

ssh [email protected]

Następnie wpisz hasło użytkownika i powinieneś mieć dostęp do wiersza poleceń systemu Windows. Możesz także użyć telnetu, ale ssh jest szyfrowany.

aka91x
źródło
4

Nie mam rozwiązania, rdesktopale używam programu o nazwie winexeLinux do wykonywania poleceń zdalnych na komputerach z systemem Windows. Możesz pobrać aplikację z następującego adresu URL lub użyć systemu repozytorium oprogramowania swojej dystrybucji, aby ją zainstalować.

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

AKTUALIZACJA: Certyfikat SSL jest samopodpisany dla powyższego linku sourceforge, więc podaję inny link:

https://github.com/skalkoto/winexe

Oto przykład użycia:

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

Będziesz chciał utworzyć plik credentials.cfg z danymi logowania, aby:

username=user
password=pass
domain=workplace

Podaj domenę tylko, jeśli dotyczy Ciebie. Najlepiej jest nie umieszczać danych logowania (zwłaszcza hasła) w wierszu poleceń. Spróbuj uruchomić cmd.exekorzystając z powyższego przykładu, jeśli chcesz interaktywnego monitu. Dobrą rzeczą w tym podejściu jest to, że możesz użyć danych wyjściowych polecenia zdalnego w skryptach Linuksa lub grepować dane wyjściowe.

cmevoli
źródło
W winexe użytkownik powinien być „administratorem”, aby działać poprawnie, ale w moim przypadku próbuję z normalnym użytkownikiem RDP, więc winexe nie będzie działać.
Augustin
@Augustin: Co oznacza „powinno”? Czytałeś to gdzieś, czy próbowałeś i nie działa, jeśli nazwa użytkownika jest inna niż administrator? Czy już tego próbowałeś?
Bananguin
Winexe zainstaluje niektóre pakiety na maszynie Windows, wtedy tylko będzie działać, a instalacja pakietu nie jest możliwa dla zwykłego użytkownika.
Augustin
3

Na dzień dzisiejszy można używać xfreerdpfunkcji RemoteApp do uruchamiania określonego oprogramowania:

  1. Włącz RemoteApps na hoście Windows. Powinno być tak proste, jak edycja rejestru ;
  2. Zainstaluj xfreerdpna swoim hoście Linux. Istnieją gotowe kompilacje dla Ubuntu, Debian, Fedora, OpenSUSE i macOS.
  3. Wykonaj polecenie, xfreerdp /u:user /d:domain /p:password /app:"||calc" /v:servergdzie:
    • /u:- użytkownik systemu Windows
    • /d:- Domena (może być, WORKGROUPjeśli nie dołączyła do AD)
    • /p:- Hasło systemu Windows
    • /app:"||calc"- Aplikacja do wykonania. Może być cmdtak, jak chcesz
    • /v:- Adres IP lub nazwa hosta hosta Windows.

źródło
0

Opracowałem protokół collectnodewykorzystujący winrmprotokół do łączenia się z systemem Windows.

po pierwsze: utwórz plik hosts:

# cat hosts.file


    [group1:vars] 
    nodetype=windows



    [group1] 
    server1
    server2
    server3
    server4
    server5

po drugie: skonfiguruj poświadczenie w 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

po trzecie: Wykonaj dowolne polecenie na tych serwerach:

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

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

fvidalmolina
źródło
2
Link nie działa i bez niego odpowiedź jest bezużyteczna.
Andrew Savinykh