Как выполнить команды 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 /serverв Windows из Linux.

Augustin
источник
Это возможно потому, что только администратор по умолчанию может выполнять задачи, не повышаясь до prpceed. Любая другая учетная запись, даже с правильными разрешениями, будет действовать как администратор.
Вы смотрели на инструменты psexec для окон? Они могут работать под вином.
jc__

Ответы:

5

Если у вас есть доступ к компьютеру, установите на него ssh-сервер. В Linux вы можете использовать, например, Overlook-Fing, чтобы найти IP-адрес компьютера. Затем вы вводите ssh username@ipaddressв оболочку Linux.

Пример:

ssh Lenovo@192.168.0.100

Затем введите пароль пользователя, и вы получите доступ к командной строке компьютера на компьютере. Вы также можете использовать telnet, но ssh зашифрован.

aka91x
источник
4

У меня нет решения, использующего, rdesktopно я использую программу под названием winexeLinux для выполнения удаленных команд на машинах Windows. Вы можете получить приложение по следующему 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 или grep.

cmevoli
источник
В Winexe пользователь должен быть "администратором", чтобы работать должным образом, но в моем случае я пытаюсь с обычным пользователем RDP, поэтому Winexe не будет работать.
Августин
@Augustin: Что значит «должен»? Вы читали это где-нибудь, или вы попробовали это, и это не работает, если имя пользователя - любое, кроме administrator? Вы уже попробовали это?
Bananguin
Winexe установит некоторые пакеты на Windows Machine, тогда только он будет работать, и установка пакета невозможна для обычного пользователя.
Августин
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.

сначала: создайте файл hosts:

# 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/

fvidalmolina
источник
2
Ссылка не работает и без нее ответ бесполезен.
Андрей Савиных