Назад | Перейти на главную страницу

Как запустить асинхронный пакетный файл с помощью PSExec?

У меня есть командный файл, который я запускаю, который, среди прочего, сбрасывает сетевые адаптеры в машине. У меня есть сторожевое программное обеспечение, работающее на другом компьютере, которое контролирует первый. Я хотел бы запустить этот командный файл с помощью PSExec, когда он обнаруживает определенные типы сбоев. Проблема, с которой я столкнулся, заключается в том, что, поскольку пакетный файл сбрасывает сетевую карту, он убивает соединение, которое имеет PSExec (я в порядке с этим). Реальная проблема заключается в том, что когда PSExec умирает, командный файл перестает работать (оставляя сетевой адаптер отключенным).

Я безуспешно пытался использовать параметр -i с PSExec. Любые идеи о том, чтобы просто запустить командный файл и НЕ остановить его, когда PSExec отключен?

И, как обычно, выясняю ситуацию через 10 минут после того, как задаю вопрос. Оказывается, у меня были параметры в неправильном порядке. Вот что сработало:

psexec \\MyServer -i -d C:\Misc\ResetNICs.bat

Использовать НАЧАЛО команда для асинхронного запуска вещей. Хитрость здесь в том, что START нельзя вызвать напрямую через PSExec. Вызов его через командный интерпретатор позволит обойти это ограничение. Вот так...

psexec \\RemoteMachine cmd.exe /c start c:\test.bat

Или, если вам нужно больше мощности, вы можете вызвать psexec на удаленном компьютере с параметром -d, аналогично команде START выше.

Как насчет использования SOON.exe из набора ресурсов Windows, чтобы запланировать пакетный файл за несколько секунд.

лучший способ сделать это:

PsExec.exe \\server -s -d  cmd /c \\servershared\shared\install.cmd

-s (запускать как систему) -d (не интерактивно)

конечно, удаленная машина должна иметь общий доступ к c $, и вы должны быть "администратором домена"

Если вы не являетесь «администратором домена», вы можете использовать параметры -u и -p для передачи вашего пользователя и пароля, например:

PsExec.exe \\server -u user p password -d  cmd /c \\servershared\shared\install.cmd