Запуск команд удаленно через RDP соединение

Вопрос или проблема

Этот вопрос является продолжением этого. Я пытаюсь выполнить команду через командную строку на удаленной машине с Windows 7 из рабочей станции под управлением Debian в SSH-сессии на этой машине. Настройка в основном выглядит следующим образом:

debian box 1 === (SSH) ===> debian box 2 === (RDP) ===> Windows 7

Я пробовал запустить rdesktop с debian box 2:

rdesktop <сетевой адресWindows 7> -u имя_пользователя -p пароль -r disk:local="./TestRDP" -s "cmd.exe /K net use C: \\\\tsclient\local & C:\\test.bat & logoff"

но cmd.exe не запускается на удаленном устройстве. Я также попытался открыть cmd.exe отдельно:

rdesktop <сетевой адресWindows 7> -u имя_пользователя -p пароль -s "cmd.exe"

но терминал не запускается при входе (rdesktop успешно подключается через RDP).

Я также пробовал использовать FreeRDP:

xfreerdp /u:user /p:пароль /app:"||cmd" /v:<сетевой адресWindows 7>

но эта ошибка была выдана при выполнении cmd.exe:

RAIL exec error: execResult=RAIL_EXEC_E_NOT_IN_ALLOWLIST NtError=0x15

Читая это (устаревшее) сообщение в блоге, рекомендуется добавить ключ реестра с путем к бинарному файлу (%windir%\System32\cmd.exe), но я не могу редактировать значения реестра на удаленной машине.

Этот вопрос предлагает использовать удаленную оболочку Windows и клиент RDP стороннего производителя для запуска терминала на удаленной машине с Windows. Есть ли какие-либо альтернативы для Linux (кроме FreeRDP и rdesktop)?

вам нужно открыть порт на вашем брандмауэре, чтобы клиенты могли подключаться к нему, SSH работает на порту 22, так что это порт, который вы хотите перенаправить.

Если вы используете рабочий стол KDE, вам может понравиться krdc tuto, клиент RDP для KDE. Командная строка будет выглядеть так:

krdc --window --high-quality rdp:/1.2.3.4[:3389]

замените “1.2.3.4” на IP-адрес хоста, а 3389 на другой порт, если необходимо.

Программа, которую вы пытаетесь запустить, не входит в список разрешенных программ. Этот список можно найти в Windows 2008 RC2 в разделе Административные инструменты -> Службы удаленного рабочего стола -> Диспетчер RemoteApp

Если этот пункт меню не найден, следуйте этому руководству Установка роли терминального сервера.

Ответ или решение

Для выполнения команд удаленно через соединение RDP (Remote Desktop Protocol) с Windows 7 из рабочего места на Debian, как описано в ситуации, вам нужно учесть несколько аспектов, которые помогут вам достичь желаемого результата. Ниже приведены наиболее значимые шаги и советы.

1. Подключение к удаленной машине через RDP

Для начала важно корректно настроить RDP-клиент на Debian. На данный момент вы пробовали использовать rdesktop и FreeRDP, однако встретились с рядом ошибок, связанных с запуском командной строки cmd.exe. Чтобы избежать подобных проблем, рассмотрим некоторые варианты.

Использование xfreerdp

Если вы хотите запустить cmd.exe непосредственно, убедитесь, что у вас достаточно прав на удаленной машине и что соответствующие настройки RDP не заблокированы. Приведенный вами пример легко исправить добавлением параметра --no-auth:

xfreerdp /u:username /p:password /v:<Windows 7 box network address> --no-auth -app:"||cmd"

Этот параметр отключает аутентификацию, что может помочь, если есть ограничения на запуск программ.

2. Альтернативные RDP-клиенты

Если xfreerdp и rdesktop не работают, вы можете рассмотреть другие RDP-клиенты для Linux:

  • KRDC: Это графический клиент для KDE, позволяющий легко подключаться к RDP. Команда для подключения:
krdc rdp://username:password@<Windows 7 box network address>
  • Remmina: Это еще один мульти-протокольный клиент, который поддерживает RDP и может быть более удобным для использования:
remmina --connect rdp://username:password@<Windows 7 box network address>

3. Запуск скриптов и команд

Для запуска ваших скриптов и команд, таких как test.bat, можно использовать PowerShell или psexec. Однако убедитесь, что RDP-сессия запущена в окружении с необходимыми правами. Вы можете подготовить команду следующим образом:

  1. Использование PowerShell:
    Если у вас есть доступ, вы можете выполнить желаемый скрипт через PowerShell:
powershell.exe -ExecutionPolicy Bypass -File "C:\path\to\your\script.ps1"
  1. psexec:
    Вы можете использовать утилиту psexec, которая позволяет запускать процессы на других машинах. Убедитесь, что это установленное приложение на удаленной машине:
psexec \\<Windows 7 box network address> -u username -p password cmd.exe /c "C:\path\to\your\script.bat"

4. Настройки Windows для выполнения команд

Если у вас возникают проблемы с запуском cmd.exe, возможно, необходимо изменить настройки разрешений на удаленной машине:

  • Проверка списка разрешенных приложений: Вы можете найти это в Administrative Tools > Remote Desktop Services > RemoteApp Manager. Убедитесь, что cmd.exe включен в список разрешенных программ.

  • Файловые и сетевые разрешения: Убедитесь, что ваша учётная запись имеет все необходимые разрешения для доступа к файлам и папкам на удаленной машине.

Заключение

Эти шаги помогут вам улучшить подключение и выполнение команд на удаленной Windows машине через RDP. Убедитесь в наличии необходимых прав и настроек на обоих концах соединения. Если возникнут дополнительные вопросы, не стесняйтесь обращаться за помощью в специализированные форумы или техническую поддержку, чтобы получить более персонализированные решения.

Оцените материал
Добавить комментарий

Капча загружается...