Войти

Показать полную графическую версию : [решено] PATHMAN почему-то не изменяет переменную %PATH% на T-12


tralkz
09-01-2009, 12:47
Ситуация:
Устанавливаю 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
PATHMAN почему-то не изменяет переменную %PATH% на T-12 »
Обращаюсь к ней из RunOnce.cmd по полному пути: »
Так откуда вы все-таки к ней обращаетесь?

но переменная PATH так и остается девственно чистой. »
Вообще-то, в ней должны уже содержаться пути %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;

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

tralkz
11-01-2009, 11:37
Так откуда вы все-таки к ней обращаетесь? »

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

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

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

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

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

Что-то мне подсказывает, что виноват 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
.\useraccounts1.cmd
.\RunOnce1.cmd
Если в useraccounts1.cmd есть команда Exit, после него уже ничего не выполнится.
Уберите Exit и сделайте так:
Call .\useraccounts1.cmd
Call .\RunOnce1.cmd

tralkz
11-01-2009, 12:08
Если в useraccounts1.cmd есть команда Exit, после него уже ничего не выполнится.
Уберите Exit и сделайте так: »

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

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




© OSzone.net 2001-2012