Як виконувати команди Windows віддалено від машини Linux за допомогою команди rdesktop?


20

Чи можливо запускати команди Windows за допомогою rdesktopінструмента в Linux? Я спробував з rdesktop -sваріантом:

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

але я не в змозі відкрити cmd.exeвищевказану команду, також я намагався з повним шляхом:

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

але різниці в сесії RDP немає, навіть якщо я використовую -s.

Я намагаюся отримати список сеансів RDP за допомогою qwinsta /serverWindows в Linux.


Це, мабуть, тому, що лише адміністратор за замовчуванням може виконувати завдання, не заохочуючи його виконувати. Будь-який інший обліковий запис, навіть із правильними дозволами, буде виконувати функції адміністратора.


Ви подивилися інструменти psexec для вікон? Вони можуть працювати під WINE.
jc__

Відповіді:


5

Якщо у вас є доступ до комп'ютера, встановіть на нього ssh-сервер. У Linux ви можете використовувати, наприклад, Overlook-Fing, щоб знайти IP-адресу комп'ютера. Потім ви вводите ssh username@ipaddressоболонку Linux.

Приклад:

ssh Lenovo@192.168.0.100

Потім введіть пароль користувача, і ви повинні мати доступ до командного рядка Windows на комп'ютері. Ви також можете використовувати telnet, але ssh зашифровано.


4

У мене немає рішення щодо використання, rdesktopале winexeдля виконання віддалених команд на машинах Windows я використовую програму, закликану Linux. Ви можете отримати програму за вказаною нижче URL-адресою або скористатися системою сховища програмного забезпечення вашого дистрибутива, щоб встановити її.

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

ОНОВЛЕННЯ: Сертифікат SSL самостійно підписується для джерела sourceforge, тому я надаю ще одне посилання:

https://github.com/skalkoto/winexe

Ось приклад використання:

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

Ви хочете створити файл credentials.cfg з інформацією про вхід таким чином:

username=user
password=pass
domain=workplace

Подавайте домен, лише якщо він стосується вас. Найкраща практика не ставити свої вхідні дані (особливо пароль) у командному рядку. Спробуйте запустити, cmd.exeскориставшись наведеним вище прикладом, якщо ви хочете інтерактивне запит. Приємна річ у цьому підході полягає в тому, що ви можете використовувати вихід віддаленої команди у ваших скриптах Linux або переглядати вихід.


У winexe користувач повинен бути "адміністратором" для належної роботи, але в моєму випадку я намагаюся з нормальним користувачем RDP, тому winexe не працюватиме.
Августин

@ Августин: Що означає "повинен"? Ви десь читали це чи ви спробували це, і воно не працює, якщо ім'я користувача інше administrator? Ви насправді ще пробували?
Bananguin

Winexe встановить деякі пакети на машині Windows, тоді лише вона працюватиме, а установка пакету неможлива для звичайного користувача.
Августина

3

На сьогоднішній день ви можете використовувати xfreerdpфункцію RemoteApp для виконання певного програмного забезпечення:

  1. Увімкніть RemoteApps на хості Windows. Повинно бути таким же простим, як редагування реєстру ;
  2. Встановіть xfreerdpна хості Linux. Існують готові до використання версії для Ubuntu, Debian, Fedora, OpenSUSE та macOS.
  3. Виконайте команду xfreerdp /u:user /d:domain /p:password /app:"||calc" /v:serverде:
    • /u:- Користувач Windows
    • /d:- Домен (може бути, WORKGROUPякщо він не приєднався до AD)
    • /p:- Пароль Windows
    • /app:"||calc"- Додаток для виконання. Можливо, cmdяк хочеш
    • /v:- IP-адреса або ім'я хосту хоста Windows.

0

Я розробив collectnode, що використовую winrmпротокол для підключення до Windows.

перше: створіть файл хостів:

# cat hosts.file


    [group1:vars] 
    nodetype=windows



    [group1] 
    server1
    server2
    server3
    server4
    server5

друге: налаштуйте обліковий запис на 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

третє: Виконайте будь-яку команду, яка вам потрібна на цих серверах:

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

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


2
Посилання не працює і без нього відповідь марна.
Андрій Савіних
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.