Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Не работает команда start в bat-файле, запускаемом с помощью psexec (http://forum.oszone.net/showthread.php?t=339550)

smitsaec 05-03-2019 21:27 2861592

Не работает команда start в bat-файле, запускаемом с помощью psexec
 
Добрый день.

Моя задача состоит в инсталляции приложения на удаленном компьютере, предварительно проверив, что его текущая версия устарела.
На удаленном компьютере есть расшаренная папка c:\TestAutoInstall
Инсталлятор %FileName% = *.exe (Inno Setup)
Делаю следующим образом (через два бат-файла):
1. В первом произвожу некоторые действия + копирую инсталлятор в расшаренную папку на удаленной машине.
Код:

NET use x: \\%compname%\TestAutoInstall /user:%login% %pass%
xcopy %InstallerFolder%\%FileName% x:\  /s /e /d /y
NET use x: /delete

2. Здесь же запускаю второй батник с помощью PsExec.exe
Код:

%InstallerFolder%\PsExec.exe \\%compname% -f -u %login% -p %pass% /c %InstallerFolder%\InstallProcess.bat
3. Весь процесс InstallProcess.bat отрабатывает как надо, за исключением команды start:
Код:

START /WAIT C:\TestAutoInstall\%FileName% /DIR="C:\Program Files (x86)\SomeApp\"  /sp- ^
/verysilent ^
/suppressmsgboxes ^
/closeapplications ^
/components="..." ^
/tasks="..." ^
/log="%~n0.log"

Она не выполняется. Ошибок не пишет, просто проскакивает ее.
Такое поведение встречал, когда из-за нехватки ключей не срабатывала тихая установка (при запуске InstallProcess.bat локально). После добавления всех нужных ключей проблема ушла. Теперь запуск InstallProcess.bat локально на удаленной машине работает отлично.

Наверняка, что-то простое упускаю. Буду рад любым советам

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

mwz 05-03-2019 21:44 2861596

smitsaec, запись
Код:

START "" /WAIT ........
(с двумя двойными кавычками) тоже не срабатывает?

smitsaec 05-03-2019 21:51 2861598

Цитата:

Цитата mwz
(с двумя двойными кавычками) тоже не срабатывает? »

Да, к сожалению, уже пробовал такой вариант. Результат аналогичен

Забыл уточнить, моя машина - Win 7, 64. Удаленная - Win 10, 64.
InstallProcess.bat завершается с кодом ошибки 0

Serguei Kouzmine 06-03-2019 06:55 2861643

@mwz попробуйте записать команду инсталятора в комадный файл и уже его выполять

start /wait <cmd файл с inno командой > - похоже MZ не любит поддерживать вложенные команды.

если получится ватоматизируйте это..

или даже
start /min /wait cmd /c <cmd файл с inno командой >

smitsaec 06-03-2019 09:59 2861656

Цитата:

Цитата Serguei Kouzmine
или даже
start /min /wait cmd /c <cmd файл с inno командой > »

Если я правильно понял совет эту часть записал в Install.cmd, закинул на удаленный компьютер
Код:

C:\TestAutoInstall\%FileName% /DIR="C:\Program Files (x86)\SomeApp\"  /sp- ^
/verysilent ^
/suppressmsgboxes ^
/closeapplications ^
/components="..." ^
/tasks="..." ^
/log="%~n0.log"

В InstallProcess.bat изменил на:
Код:

start /min /wait cmd /c C:\TestAutoInstall\Install.cmd
Результат тот же.
Попробовал в Install.cmd сделать элементарный вывод "echo trulala" и он также не отработал

Вообще, скорее всего, я слишком усложняю и есть методы для решения моей задачи попроще. С радостью послушаю почитаю

mwz 06-03-2019 14:53 2861727

Цитата:

Цитата Serguei Kouzmine
@mwz попробуйте »

Это ко мне предложение?? Я тут ни сном ни духом...

smitsaec 06-03-2019 21:57 2861794

Проблема решена. Не хватало ключа -s.
Код:

%InstallerFolder%\PsExec.exe -s \\%%c -f -u %%a -p %%b -c %InstallerFolder%\InstallProcess.bat


Время: 06:11.

Время: 06:11.
© OSzone.net 2001-