Показать полную графическую версию : [статья] SetupComplete.cmd
Muv, msi или все-таки msu? Запустите с ключом /? и будет вам счастье.
Доброго времени суток!
Есть проблема.
При установки Shockwave Player, компьютер уходит в перезагрузку, запускал с SetupComplete.cmd и RunOnceEx, толку не какого, даже на автозапуск системы ставил все равно в перезапуск уходит, после выдачи рекламного сообщения (хотя после перезапуска по второму разу нормально ставится, при том что он просто пересортировывается). Может каку-это службу нужно отключить?
SetupComplete.cmd
cd /d %~dp0
for %%c in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do Call :cdromsearch %%c
for %%c in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do Call :cdromsearchadd %%c
IF EXIST "%CDROM%\upgrade\Disable_UAC.reg" (start /wait regedit /s "%CDROM%\upgrade\Disable_UAC.reg")
SET i=100
SET KEY=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx
REG ADD %KEY% /V TITLE /D "Installing ... WAIT!!!" /f
REG ADD %KEY%\%i% /V 2 /D "BEEPER.EXE" /f
SET /A i+=1
IF EXIST "%CDROM%\WPI\Common\WPI.hta" (REG ADD %KEY%\%i% /V 1 /D "\"%CDROM%\WPI\Common\WPI.hta\"" /f)
SET /A i+=1
IF EXIST "%ADDETDRV%\fWindowsStart\RUN7.CMD" (REG ADD %KEY%\%i% /V 1 /D "%ADDETDRV%\fWindowsStart\RUN7.CMD" /f)
SET /A i+=1
EXIT
:cdromsearchadd
set var=1
for /f "tokens=1" %%a in ('dir /d %1:\fWindowsStart\RUN7.CMD') do set var=%%a
if %var% EQU 0 set ADDETDRV=%1:
:cdromsearch
set var=1
for /f "tokens=1" %%a in ('dir /d %1:\efi\pokemons.jpeg') do set var=%%a
if %var% EQU 0 set CDROM=%1:
Установка Shockwave Player
@echo off
cmdow @ /hid
set "LDIRS=%~dp0"
"%LDIRS%\sleep.exe" 2
Start "cmd" "%LDIRS%\LOCKSWAP.cmd"
"%LDIRS%\sleep.exe" 1
Start "shw" /wait "%LDIRS%\Shockwave_Installer_Full.exe" /S
"%LDIRS%\sleep.exe" 1
echo.>>exit.code.sw
"%LDIRS%\sleep.exe" 1 exit
Установка Shockwave Player LOCKSWAP.cmd
@echo off
cmdow @ /hid
title=SW lock (Silent Install)
:R
for /f "tokens=1-2,8" %%a in ('cmdow') do ( if /i "%%c"=="SHOCKWAV" if "%%b"=="1" cmdow %%a /CLS > nul )
if exist "exit.code.sw" del "exit.code.sw"&exit
goto R
Exit
Заранее огромное спасибо.
(хотя после перезапуска по второму разу нормально ставится, при том что он просто пересортировывается) »
Смысл этой фразы от меня ускользает... Неважно, впрочем.
Надо полагать, что проблема не в том, что установка выполняется из SetupComplete.cmd или RunOnceEx, а в том, что устанавливается и как. Проверяется легко - на установленной системе нужно воспроизвести эти команды. Если уходит в перезагрузку, значит, вам нужно спрашивать в автоустановке приложений.
Vadikan,
Muv, msi или все-таки msu? Запустите с ключом /? и будет вам счастье. »
Набрал в командной строке - счастья не получил. Подробнее можно?
Vadikan, на установленную систему ставится нормально без перезапуска, может нужно запустить какуэто службу?
(хотя после перезапуска по второму разу нормально ставится, при том что он просто пересортировывается) »
Всмисле после перезапуска системы тот-же скрипт нормально отрабатывается.
Всмисле после перезапуска системы тот-же скрипт нормально отрабатывается. »
Возможно, дело в том, что setupcomplete работает от имени системной учетной записи, а вы после перезапуска ОС выполняете его интерактивно.
Проверьте запуск от имени системы с помощью psexec (пример (http://www.outsidethebox.ms/10539/#_Toc277326816)).
Набрал в командной строке - счастья не получил. Подробнее можно? »
Должно быть окно с параметрами командной строки. Что конкретно вам непонятно?
Vadikan, благодарю за ответ :)
Вопрос снят, разобрался
geepnozeex
10-06-2012, 13:52
а почему в статье ничего не говорится о том,что SetupComplete.cmd неработает без файла ответов с этими строками ?
<RunSynchronous>
<RunSynchronousCommand wcm:action="add">
<Order>1</Order>
<Path>cmd /c "FOR %i IN (C D E F G H I J K L N M O P Q R S T U V W X Y Z) DO IF EXIST %i:\DiskRoot.txt SETX DiskRoot %i: -m"</Path>
</RunSynchronousCommand>
</RunSynchronous>
а почему в статье ничего не говорится о том,что SetupComplete.cmd неработает без файла ответов с этими строками ? »
Потому что работа setupcomplete никак не зависит от файла ответов.
В примере используется %DiskRoot%, но смысл этой переменной объясняется в других статьях.
geepnozeex
10-06-2012, 15:10
Потому что работа setupcomplete никак не зависит от файла ответов. »
значит только у меня зависит работа setupcomplete от файла ответов.
пример команды
start /wait %DiskRoot%\flash.exe -install
DiskRoot.txt в корне диска.
geepnozeex, файл должен исполняться в любом случае, а уж какие в нем команды прописаны, зависит от вас. Элементарная проверка выполнения файла:
md %systemdrive%\test
geepnozeex
10-06-2012, 17:07
зачем мне что то проверять если всё работает,но только если в файле ответов есть это
<RunSynchronous>
<RunSynchronousCommand wcm:action="add">
<Order>1</Order>
<Path>cmd /c "FOR %i IN (C D E F G H I J K L N M O P Q R S T U V W X Y Z) DO IF EXIST %i:\DiskRoot.txt SETX DiskRoot %i: -m"</Path>
</RunSynchronousCommand>
</RunSynchronous>
geepnozeex, повторяю еще раз. Приведенный вами фрагмент кода просто задает переменную DiskRoot, и к работе setupcomplete это никакого отношения не имеет. Если вы вставляете в файл команды с %DiskRoot%, то таки да, код нужен.
geepnozeex
10-06-2012, 23:10
start /wait %DiskRoot%\Install\7z464.msi /qn
так в примере к статье команды с %DiskRoot%.
как иначе указывать поиск месторасположения файлов для установки ?
Lennyvets
10-06-2012, 23:33
как иначе указывать поиск месторасположения файлов для установки ? »
так задайте в самом командном файле переменную DiskRoot:
for %%D in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do @if exist %%D:\DiskRoot.txt set DiskRoot=%%D
а вне командного файла:
cmd /c for %D in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do @if exist %D:\Install\7z464.msi start /w %D:\Install\7z464.msi /qn
Первый раз такой вопрос за все время, если честно :) Ок, добавил задание переменной в файл.
geepnozeex
11-06-2012, 11:50
@echo off
for %%D in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do @if exist %%D:\DiskRoot.txt set DiskRoot=%%D
start /wait regedit /s %DiskRoot%\copy.reg
start /wait %DiskRoot%\dpinst.exe
start /wait %DiskRoot%\nero.exe /S
start /wait %DiskRoot%\flash.exe -install
start /wait %DiskRoot%\winrar.exe /VERYSILENT
start /wait %DiskRoot%\MicrosoftFixit50531.msi /quiet
exit
ну так задал в самом командном файле переменную DiskRoot
не отрабатывает
Lennyvets
11-06-2012, 12:11
ну так задал в самом командном файле переменную DiskRoot »
двоеточия не хватает. Либо так
for %%D in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do @if exist %%D:\DiskRoot.txt set DiskRoot=%%D:
либо так
start /wait regedit /s %DiskRoot%:\copy.reg
Доброго времини суток!
Решил отписатся по своей проблемке:
Доброго времени суток!
Есть проблема.
При установки Shockwave Player, компьютер уходит в перезагрузку, запускал с SetupComplete.cmd и RunOnceEx, толку не какого, даже на автозапуск системы ставил все равно в перезапуск уходит, после выдачи рекламного сообщения (хотя после перезапуска по второму разу нормально ставится, при том что он просто пересортировывается). Может каку-это службу нужно отключить?
»
Может кто-то тоже столкнется с подобной проблемой.
Решилось все элементарно (баг системы), интегрировал в Windows 7 обновление SP1, и все пошло как нужно.
Возможно ли такое? Или есть какая нибудь альтернатива запуску файла SetupComplete.cmd. Хочу в этом файле запустить exe-шник, в котором можно будет указать желаемое имя учетной записи администратор как указано здесь (http://forum.oszone.net/thread-94589.html)
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.