PDA

Показать полную графическую версию : [статья] SetupComplete.cmd


Страниц : 1 2 3 4 5 6 7 8 9 10 [11] 12 13 14 15 16 17 18 19 20 21 22 23 24 25

Vadikan
26-05-2012, 10:58
Muv, msi или все-таки msu? Запустите с ключом /? и будет вам счастье.

DEDI
26-05-2012, 12:58
Доброго времени суток!

Есть проблема.
При установки 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

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

Vadikan
26-05-2012, 14:53
(хотя после перезапуска по второму разу нормально ставится, при том что он просто пересортировывается) »
Смысл этой фразы от меня ускользает... Неважно, впрочем.

Надо полагать, что проблема не в том, что установка выполняется из SetupComplete.cmd или RunOnceEx, а в том, что устанавливается и как. Проверяется легко - на установленной системе нужно воспроизвести эти команды. Если уходит в перезагрузку, значит, вам нужно спрашивать в автоустановке приложений.

Muv
26-05-2012, 15:31
Vadikan,
Muv, msi или все-таки msu? Запустите с ключом /? и будет вам счастье. »
Набрал в командной строке - счастья не получил. Подробнее можно?

DEDI
26-05-2012, 15:49
Vadikan, на установленную систему ставится нормально без перезапуска, может нужно запустить какуэто службу?

(хотя после перезапуска по второму разу нормально ставится, при том что он просто пересортировывается) »
Всмисле после перезапуска системы тот-же скрипт нормально отрабатывается.

Vadikan
29-05-2012, 14:10
Всмисле после перезапуска системы тот-же скрипт нормально отрабатывается. »
Возможно, дело в том, что setupcomplete работает от имени системной учетной записи, а вы после перезапуска ОС выполняете его интерактивно.

Проверьте запуск от имени системы с помощью psexec (пример (http://www.outsidethebox.ms/10539/#_Toc277326816)).

Набрал в командной строке - счастья не получил. Подробнее можно? »
Должно быть окно с параметрами командной строки. Что конкретно вам непонятно?

Muv
29-05-2012, 14:30
Vadikan, благодарю за ответ :)
Вопрос снят, разобрался

geepnozeex
10-06-2012, 13:52
а почему в статье ничего не говорится о том,что SetupComplete.cmd неработает без файла ответов с этими строками ?

<RunSynchronous>
<RunSynchronousCommand wcm:action="add">
<Order>1</Order>
<Path>cmd /c &quot;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&quot;</Path>
</RunSynchronousCommand>
</RunSynchronous>

Vadikan
10-06-2012, 14:51
а почему в статье ничего не говорится о том,что SetupComplete.cmd неработает без файла ответов с этими строками ? »
Потому что работа setupcomplete никак не зависит от файла ответов.

В примере используется %DiskRoot%, но смысл этой переменной объясняется в других статьях.

geepnozeex
10-06-2012, 15:10
Потому что работа setupcomplete никак не зависит от файла ответов. »
значит только у меня зависит работа setupcomplete от файла ответов.

пример команды
start /wait %DiskRoot%\flash.exe -install
DiskRoot.txt в корне диска.

Vadikan
10-06-2012, 15:59
geepnozeex, файл должен исполняться в любом случае, а уж какие в нем команды прописаны, зависит от вас. Элементарная проверка выполнения файла:
md %systemdrive%\test

geepnozeex
10-06-2012, 17:07
зачем мне что то проверять если всё работает,но только если в файле ответов есть это
<RunSynchronous>
<RunSynchronousCommand wcm:action="add">
<Order>1</Order>
<Path>cmd /c &quot;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&quot;</Path>
</RunSynchronousCommand>
</RunSynchronous>

Vadikan
10-06-2012, 22:07
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

Vadikan
11-06-2012, 01:02
Первый раз такой вопрос за все время, если честно :) Ок, добавил задание переменной в файл.

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

DEDI
19-06-2012, 00:21
Доброго времини суток!

Решил отписатся по своей проблемке:
Доброго времени суток!
Есть проблема.
При установки Shockwave Player, компьютер уходит в перезагрузку, запускал с SetupComplete.cmd и RunOnceEx, толку не какого, даже на автозапуск системы ставил все равно в перезапуск уходит, после выдачи рекламного сообщения (хотя после перезапуска по второму разу нормально ставится, при том что он просто пересортировывается). Может каку-это службу нужно отключить?
»

Может кто-то тоже столкнется с подобной проблемой.

Решилось все элементарно (баг системы), интегрировал в Windows 7 обновление SP1, и все пошло как нужно.

Pozia
10-07-2012, 23:26
Возможно ли такое? Или есть какая нибудь альтернатива запуску файла SetupComplete.cmd. Хочу в этом файле запустить exe-шник, в котором можно будет указать желаемое имя учетной записи администратор как указано здесь (http://forum.oszone.net/thread-94589.html)




© OSzone.net 2001-2012