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

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Автоматическая установка Windows 2000/XP/2003 (http://forum.oszone.net/forumdisplay.php?f=32)
-   -   [решено] PATHMAN почему-то не изменяет переменную %PATH% на T-12 (http://forum.oszone.net/showthread.php?t=128148)

tralkz 09-01-2009 12:47 1001434

PATHMAN почему-то не изменяет переменную %PATH% на T-12
 
Ситуация:
Устанавливаю XP Pro SP3 с мультизагрузкой и автоустановкой. Утилита pathman.exe лежит в ...\$OEM$\$$\System32\mytools . Обращаюсь к ней из RunOnce.cmd по полному пути:


Код:

...
%systemroot%\System32\mytools\pathman.exe /as "%systemroot%\system32\mytools";"D:\SCRIPTS"
...

Операционная система устанавливается; утилита, как и положено, лежит в ...\Windows\System32\mytools, но переменная PATH так и остается девственно чистой. Пробовал через "%systemdrive%\windows..." обращаться к утилите - бесполезно. Что делаю не правильно?

Vadikan 11-01-2009 04:23 1003395

Цитата:

Цитата tralkz
PATHMAN почему-то не изменяет переменную %PATH% на T-12 »

Цитата:

Цитата tralkz
Обращаюсь к ней из RunOnce.cmd по полному пути: »

Так откуда вы все-таки к ней обращаетесь?

Цитата:

Цитата tralkz
но переменная PATH так и остается девственно чистой. »

Вообще-то, в ней должны уже содержаться пути
Код:

%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;
После установки команда срабатывает?

tralkz 11-01-2009 11:37 1003551

Цитата:

Цитата Vadikan
Так откуда вы все-таки к ней обращаетесь? »

Обращаюсь из RunOnce.cmd... Но ведь он исполняется именно на отрезке Т-12, если я не ошибаюсь? То есть и утилита pathman.exe должна запускаться и делать свое дело в начале исполнения RunOnce.cmd? За ней уже происходит определение буквы загрузочного диска и добавление в реестр ключей для установки программ... Если делать по Вашему мануалу.

Цитата:

Цитата Vadikan
Вообще-то, в ней должны уже содержаться пути »

Да, конечно же, стандартные пути там уже есть. Я имел в виду, что отсутствуют желаемые мной изменения.

Цитата:

Цитата Vadikan
После установки команда срабатывает? »

После установки ОС команда срабатывает как надо!

Что-то мне подсказывает, что виноват choice.cmd, из которого и запускается по идее (но, похоже, не запускается на практике) соответствующий RunOnce[№x].cmd :). Потому что ключи реестра, добавляемые в HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx также не копировались туда. Соответственно, не устанавливаются и программы. Раньше (до того, как я решил сделать мультизагрузочную сборку с разными наборами программ и твиков) приложения устанавливались без проблем, но PATHMAN так же не срабатывал...
Привожу код файла choice.cmd:

Код:

%systemroot%\system32\mytools\cmdow.exe @ /HID 

if exist %systemdrive%\Temp\dummy1.fle goto START1 
if exist %systemdrive%\Temp\dummy2.fle goto START2 
if exist %systemdrive%\Temp\dummy3.fle goto START3 
if exist %systemdrive%\Temp\dummy4.fle goto START4 
goto END   

:START1 
REGEDIT /S hkcu1.reg 
.\useraccounts1.cmd 
.\RunOnce1.cmd 
goto END   

:START2 
REGEDIT /S hkcu2.reg 
.\useraccounts2.cmd 
.\RunOnce2.cmd 
goto END 

:START3 
REGEDIT /S hkcu3.reg 
.\useraccounts3.cmd 
.\RunOnce3.cmd 
goto END   

:START4 
REGEDIT /S hkcu4.reg 
.\useraccounts4.cmd 
.\RunOnce4.cmd 
goto END   

:END

Первые две команды в каждой из процедур :START исполняются без проблем! А вот с RunOnce*.cmd что-то не то... Имена файлов RunOnce*.cmd специально копировал отсюда, чтоб не было несостыковок.

Вот код файла RunOnce4.cmd (от отчаяния уже попробовал достучаться до pathman.exe разными путями, включая и указанный Вами в мануале. Кстати, он ошибочен по идее. Ведь за %systemdrive% не может идти сразу System32) :

Код:

%systemroot%\System32\mytools\PATHMAN.EXE /as "%systemroot%\system32\mytools";"D:\SCRIPTS";"C:\SCRIPTS"
%systemdrive%\Windows\System32\mytools\PATHMAN.EXE /as "%systemroot%\system32\mytools";"D:\SCRIPTS";"C:\SCRIPTS"
%systemdrive%\System32\mytools\PATHMAN.EXE /as "%systemroot%\system32\mytools";"D:\SCRIPTS";"C:\SCRIPTS"

cmdow @ /HID

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:\WIN51 SET CDROM=%%d:

SET KEY=HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnceEx
SET i=100

REG ADD %KEY% /V TITLE /D "Installing Applications" /f

REG ADD %KEY%\%i% /VE /D "Adobe_Reader_9.0_RU" /f
REG ADD %KEY%\%i% /V 1 /D "%CDROM%\software\Adobe_Reader_9.0_RU.exe /sAll /rs /l /msi /qb-! /norestart ALLUSERS=1 EULA_ACCEPT=YES SUPPRESS_APP_LAUNCH=YES" /f
SET /A i+=1

...(много всяких неинформативных ключей)...

REG ADD %KEY%\%i% /VE /D "Office_2007_ENTERPRISE" /f
REG ADD %KEY%\%i% /V 1 /D "%CDROM%\software\Office_2007_ENTERPRISE_(BLUE_EDITION)\setup.exe /config Enterprise.WW\config.xml"  /f
SET /A i+=1

REG ADD %KEY%\%i% /VE /D "Cleaning..." /f
REG ADD %KEY%\%i% /V 1 /D "%CDROM%\$OEM$\Cleanup4.cmd" /f
SET /A i+=1

EXIT

Надеюсь, теперь дал достаточно полную картину моей ситуации.

Petya V4sechkin 11-01-2009 11:49 1003558

Цитата:

Цитата tralkz
.\useraccounts1.cmd
.\RunOnce1.cmd

Если в useraccounts1.cmd есть команда Exit, после него уже ничего не выполнится.
Уберите Exit и сделайте так:
Код:

Call .\useraccounts1.cmd
Call .\RunOnce1.cmd


tralkz 11-01-2009 12:08 1003567

Цитата:

Цитата Petya V4sechkin
Если в useraccounts1.cmd есть команда Exit, после него уже ничего не выполнится.
Уберите Exit и сделайте так: »

Точно... Упустил это... Спасибо! Сейчас попробую заново. Но, учитывая, что раньше даже при успешном запуске RunOnce.cmd pathman все равно не работал, тема остается открытой по крайней мере до следующих испытаний :)

UPD: Испытания пройдены, утилита работает. Возможно, изначально проблемы с запуском утилиты были из-за разного регистра букв в названии файла (PATHMAN.EXE) и в первоначальном обращении к нему из скрипта (pathman.exe). Спасибо за помощь!


Время: 00:49.

Время: 00:49.
© OSzone.net 2001-