Мне нужен способ запустить удаленное приложение и не более того. У меня есть автоматизированный тестовый запуск, который отлично работает удаленно, но мне нужно запускать приложение как часть процесса развертывания, а не процесса тестирования. PSExec запускает приложение, но поддерживает соединение с процессом и никогда не выпускает. Это приведет к тайм-ауту моего развертывания, а затем тестовый запуск завершится неудачно из-за сбоя развертывания. Я создал второй сценарий, чтобы убить процесс PSExec, но он никогда не запускается, поскольку первый сценарий никогда не завершается. Когда я вручную использую эти два сценария, я могу сделать весь процесс сборки-развертывания-тестирования своим вмешательством, но я не могу заставить их работать как часть самого процесса развертывания.
В дополнение к этой проблеме у меня есть проблема с кредитами, информацией о версии и информацией об авторских правах, которые рассматриваются как недопустимые команды, когда процесс развертывания инициирует сценарий, и это приводит к сбою процесса развертывания.
Есть ли более простой инструмент, который ничего не делает, кроме удаленного запуска приложения? Если нет, есть ли способ удалить кредиты и др., Не нарушая файл PSExec, и какой-либо другой способ закрыть процесс PSExec?
У PSExec возникает проблема при выполнении нескольких вызовов с одного компьютера на один и тот же компьютер. Допустим, имя вашего компьютера - «Alpha», а имя сервера - «Tango», это вызовет выдачу 3 параллельных PSExec от «Alpha» до «Tango». Если я правильно помню, PSExec использует NamePipes, которые вызывают эту проблему.
Если процесс зависает, перейдите на сервер, на котором вы выдали PSExec («Tango»), откройте службы, найдите «psexesvc» и остановите его. Вы можете использовать командную строку net stop или даже sc, если вам нужно.
Теперь решение - я рекомендую вам использовать WinRS и WinRM вместо PSExec. Это намного быстрее, стабильнее и позволяет одновременное подключение.
Надеюсь, это поможет, Идан.
Я не совсем понимаю, что вы имеете в виду под «он поддерживает связь с процессом и никогда не выпускает», но как насчет использования PSExec для чего-то вроде
psexec \\computer -d -s "%systemroot%\system32\cmd.exe /c c:\someprogram.exe"
Параметр -d определяется следующим образом: «Не дожидайтесь завершения работы приложения. Параметр -s означает запуск от имени локальной системы. Использование параметра / c с cmd.exe означает выход из cmd.exe после выполнения команды. оставить оболочку открытой.