Немного предыстории: мы пытаемся автоматизировать установку агента на серверы. Автоматизированный рабочий процесс проверит наличие серверов, которым требуется эта установка. Если это так, рабочий процесс копирует необходимые файлы установки, а также пакетный файл .cmd.
При локальном вызове этого сценария .cmd установка работает нормально. Но при попытке вызвать этот скрипт удаленно с сервера рабочего процесса, он зависает на определенной строке в пакете. Фрагмент из скрипта se_install.cmd:
echo Installing SE 9.4 Agent
start "" /wait "Installcimextensions.exe" -i silent
echo Install completed
Мы используем psexec для удаленного вызова вышеупомянутого сценария, используя учетную запись уровня администратора, которую мы используем для выполнения многих других сценариев для других процессов. Вот что будет работать сервер рабочего процесса:
c:\scripts\psexec.exe -accepteula \\targetserver -u domain\username -p password \\targetserver\c$\temp\se\se_install.cmd
При удаленном запуске последним выводом, который я вижу, является «Установка агента SE 9.4». После этого он как бы зависает на неопределенный срок. В то же время я на локальном сервере просматриваю список запущенных процессов, и installcimextensions.exe никогда не отображается в этом списке, как должно быть. Я не смог найти каких-либо известных проблем с удаленным запуском команды «Пуск», но я предполагаю, что это может быть частью проблемы. Или это может быть проблема с тем, как я настроил кавычки, или с флагом «-i без звука»? Я также попытался заменить эту «стартовую» строку в пакете вызовом другого пакетного файла, который содержит эту строку, но не кости.
Любой совет? Спасибо.
cd c:\temp\se\se_install.cmd
дело в том, что при локальном запуске ваш текущий рабочий каталог находится в папке с .exe, но когда вы запускаете его удаленно, ваш текущий рабочий каталог используется по умолчанию, и вы должны изменить его для своего .bat работать - person Ionut Hulub   schedule 28.09.2012