Выполнение exe или bat файла на удаленной машине Windows из * nix - PullRequest
8 голосов
/ 12 августа 2011

Я пытаюсь запустить файл bat на удаленной машине Windows в облаке из моего Linux.Файлы bat запускают сервер селена, а затем запускаются мои тесты селена.Я не могу запустить сервер Селена RC на этой машине.Я попытался с Telnet, но проблема с ним в том, что когда сеанс telnet закрыт, порт сервера RC также закрыт.В качестве моего кода мой код должен запускать сервер, поэтому я попытался выполнить задачу ANT telnet, а также выполнил сценарий оболочки telnet в обоих случаях, когда порт был закрыт.

Я читал об Open SSH, psexec для Linux и Cygwin.Но я не понимаю, как их использовать, и они решат мою проблему.

Я попытался запустить службу, которая запустит сервер, но в этом методе я не вижу браузер видимым, все тесты выполняются вфон, поскольку мой сценарий принимает снимок экрана, браузер должен видеть.

Теперь мой вопрос - что использовать и что будет предпочтительнее для моей работы.и то, что я выберу, должно быть выполнено кодом, это может быть shell, ant или php.

Заранее спасибо.

Ответы [ 3 ]

15 голосов
/ 12 августа 2011

Давайте рассмотрим различные варианты, которые вы упомянули:

  • psexec : Это в основном только для ПК. Кроме того, вы должны убедиться, что более новые машины Windows могут пройти через UAC, которые настроены по умолчанию. UAC - это то, что вы постоянно видите в Vista и Windows 7, когда пытаетесь сделать что-то, требующее прав администратора. Вы можете попробовать что-то под названием winexe , которое является программой для Linux, которая может выполнять протокол psexec , но у меня были проблемы с его работой.
  • OpenSSH : существует два основных варианта SSH, и Open SSH используется большинством сайтов. SSH имеет несколько преимуществ перед другими методами:
    • SSH безопасен : Ваш сетевой трафик зашифрован.
    • SSH может быть независимым от пароля : Вы можете настроить SSH для использования закрытых / открытых ключей. Таким образом, вам даже не нужно знать пароль на удаленном сервере. Это делает его более безопасным, поскольку у вас нет паролей, хранящихся в разных системах. И на многих сайтах Windows пароли нужно менять каждый месяц или около того, или аккаунт заблокирован.
    • SSH может делать больше, чем просто выполнять удаленные команды : В SSH есть два подпротокола, которые называются SCP и SFTP. Это позволяет передавать файлы между двумя компьютерами. Поскольку они работают над SSH , вы получаете все преимущества SSH , включая зашифрованные пакеты и защиту открытого / закрытого ключа.
    • SSH хорошо реализован в Unix World : вы найдете SSH-клиенты, встроенные в Ant , Maven и другие инструменты сборки. Такие программы, как CVS, Subversion и Git, также могут работать через соединения SSH. К сожалению, Windows World работает в другом пространстве-времени. Для использования SSH в системе Windows требуется стороннее программное обеспечение, такое как Cygwin.
  • Cygwin : Cygwin - своего рода странный зверь. Это слой поверх Windows, который позволяет многим библиотекам Unix / GNU работать поверх Windows. Первоначально он был разработан, чтобы позволить разработчикам Unix запускать свое программное обеспечение в системах Windows DOS. Тем не менее, Cygwin теперь содержит полную Unix-подобную систему, включая такие инструменты, как Perl и Python, оболочку BASH и множество утилит, таких как сервер SSH. Поскольку Cygwin имеет открытый исходный код, вы можете скачать его бесплатно и запустить SSH сервер. К сожалению, у меня были проблемы с SSH-сервером Cygwin. Другая проблема: если вы запускаете программы удаленно, вы, вероятно, захотите запустить их в среде Windows, а не в среде Cygwin.

Я рекомендую вам посмотреть WinSSHD от Bitvise. Это реализация SSSS-сервера с использованием OpenSSH, но не с открытым исходным кодом. Это около $ 100 за лицензию, и вам нужна лицензия на каждый сервер. Однако это надежная реализация, обладающая всеми функциями, которые может предложить SSH.

Вы можете посмотреть на CoSSH , который представляет собой пакет утилит Cygwin и сервера OpenSSH. Это бесплатно и все с открытым исходным кодом, но если вы хотите простой способ его настройки, вам придется заплатить за Advanced Administrator Console . Вам не нужна расширенная консоль администратора, поскольку вы можете использовать Cygwin, чтобы все настроить, и она поставляется с базовой консолью, чтобы помочь.

8 голосов
/ 12 августа 2011

Я предпочитаю использовать cygwin и использовать SSH для входа в систему Windows для выполнения команд. Помните, что по умолчанию в Cygwin не установлен OpenSSH.

После того, как SSH работает на компьютере с Windows, вы можете запустить на нем команду с компьютера с Linux, например:

ssh user@windowsmachine 'mycommand.exe'

Вы также можете настроить ssh-аутентификацию ключей, чтобы вам не приходилось каждый раз вводить пароль.

0 голосов
/ 12 августа 2011

Не очень безопасный способ, но если у вас есть работающий веб-сервер, вы можете использовать PHP или ASP для запуска системной команды.Просто скройте сценарий thgat под www.myserver.com/02124309c9867a7616972f52a55db1b4.php или что-то еще.И убедитесь, что команда зафиксирована в коде, а не открыта через параметр ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...