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

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Наборы обновлений для Windows XP/2003/Windows 7 (http://forum.oszone.net/forumdisplay.php?f=62)
-   -   [addon] SetEnvCD (http://forum.oszone.net/showthread.php?t=92607)

dimich22 22-10-2007 09:33 664886

[addon] SetEnvCD
 
Аддон SetEnvCD для интеграции в дистрибутив Windows XPSP2 посредством UpdatePack-XPSP2-Rus
Тип интеграции - svcpack
Добавляет собственную переменную %CDROM% в систему.
Необходима при установке, например, на компьютер с картридером.

--
Ссылки на закачку:

Зеркало 1
Зеркало 2
~ 60 Кб
--
Для интеграции в дистрибутив Windows распакуйте архив в папку "Addons" UpdatePack-XPSP2-Rus
----

Тут чуть поподробнее распишу. Наверняка когда-нибудь вам приходилось сталкиваться с такими вещами, когда при установке ОС находились дисковые устройства и буква CD диска сбивалась, при этом часть программ (аддонов) уже не могла выполниться. Конечно, можно все перенести на T-13, но некоторые вещи - никак. Например, у меня часть ПО ставится при первом входе в систему из RunOnceEx. А так как я являюсь счастливым обладателем картридера, то вот как раз та часть ПО и не ставится. По небольшой подсказке jameszero на основе этой темы и был реализован аддон SetEnvCD, который добавляет переменную %CDROM% в систему.
Полевые испытания прошли успешно. Так что у кого возникает подобная проблема - пользуйтесь. Да и вообще можно всем ее включить - вреда не будет. Ведь бывают ситуации, когда мы к кому-то приходим со своим диском, а там как раз описанная выше проблема. При наличии SetEnvCD никаких лишних телодвижений вам не потребуется - устанавливать систему можно будет не задумываясь о переназначении букв дисков.

biork 20-12-2007 05:35 700322

Прочитав описание, обрадовался тому, что наконец-то кто-то поборол эту маленькую неприятность и сразу же пересобрал диск, добавив Ваш аддон, не сильно вникая что где и куда, а сегодня, как по заказу получаю то, с чем боролись... :-)
У меня в RunOnceEx переменная CD привода прописана так: SET CDROM=%~D0
Убрать, что-ли, эту строку?

dimich22 20-12-2007 15:33 700668

Да, можно убрать. Так как переменная %CDROM% прописывается в систему на T13. У меня на домашней машине проблем не возникало. Но вот собрать какую-то статистику не получается.

Spirkaa 21-12-2007 12:23 701161

наверное нужно уточнить, что в корне диска должен лежать маркерный файл WIN51

dimich22 23-12-2007 10:48 702188

Akella130986, не знаю как у вас, а у меня на домашей системе намертво прописалась переменная %CDROM%

hobbit25 24-12-2007 10:42 702756

а кто нить пробовал этот аддон на совместимость с BS POST ????

dimich22 25-12-2007 21:28 703899

Что-то действительно не так. Пока до конца ясной картины у меня нет. Но я работаю над этим вопросом)))

zver5 27-12-2007 11:08 704921

dimich22,
Не работает даный аддон мне так кажется.
Подключаю кардридер устанавливаю систему, Wpi теряется так было и с аддоном и без него. А вообще идея была хорошая.

dimich22 27-12-2007 14:30 705036

Интересно, что у меня на компе без аддона система установилась, но приложения из RunOnceEx не запустились. А при его наличии все прошло гладко. Попробую на праздниках другой вариант.
Вот только мне интересно, а когда тогда назначается буква диска? Если при первом входе в систему, то решение только одно - ставить приложения при второй перезагрузке. А если раньше - то можно и другой способ. Видимо, дело в том, что использовав в своем аддоне прописывание переменной в реестр, изменения вступают в силу только после перезагрузки. Поэтому для RunOnceEx (при запуске из cmdlines) вновь введенную переменную %CDROM% использовать еще нельзя.
Все-таки основной вопрос - в какой момент происходит сдвиг буквы диска CD-ROM. Тогда можно все-таки обойти проблему.

simplix 27-12-2007 16:56 705123

В начале текстового этапа установки, после загрузки основных драйверов, с помощью редактора разделов можно определить буквы дисков. Если у нас один винт и на нём будет создаваться один раздел, естественно он получит букву C, а сидюк - D. Но когда разделов несколько, тут есть нюанс. Допустим мы хотим разбить винт на 2 раздела. Если нажать C (создать), ввести размер, Enter, и тут же нажать C на втором разделе, размер уже будет введён, Enter, - то первый раздел получит букву C, второй E, а сидюк D. Если же в начале разметки нажать C, Enter, D, Enter (то есть создать и удалить раздел), а потом повторить предыдущие действия (C, ввести размер, Enter, вниз, C, Enter), то буквы назначатся правильно: первый и второй разделы - C и D соответственно, и сидюк E.

dimich22 27-12-2007 17:24 705145

simplix, тут все немного сложнее. Букву сидюка я определить могу. И назначить переменную тоже. Но вот такие вещи, как кардридеры портят всю малину. Им буквы назначаются потом - после того, как мы определили букву CD-ROM. Почему-то мне кажется, что происходит это после первого входа в систему.

simplix 27-12-2007 18:06 705175

Цитата:

Цитата dimich22
Им буквы назначаются потом »

Потом так потом, но если у сидюка уже буква D к примеру, то кардриадеру назначатся буквы E-Z - как это повлияет на установку, если сидюк уже имеет свою постоянную букву?

dimich22 27-12-2007 21:55 705285

simplix, так в том-то все и дело, что буква сидюка сбивается - кардридеру буквы назначаются до него. Если бы все сразу жестко прописывалось, то и проблем бы при установке приложений с CD не возникало бы.

simplix 27-12-2007 22:21 705291

Попробуй пошаманить над этими статьями:
http://technet2.microsoft.com/Window....mspx?mfr=true
http://support.microsoft.com/kb/300415/ru

biork 28-12-2007 14:21 705678

Цитата:

Цитата dimich22
Да, можно убрать. Так как переменная %CDROM% прописывается в систему на T13. У меня на домашней машине проблем не возникало. Но вот собрать какую-то статистику не получается. »

В этом случае вообще из RunOnceEx ни чего с CD не запускается.

Короче, заменил в RunOnceEx строку
Код:

SET CDROM=%~D0
на
Код:

for %%i 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 %%i:\WIN51 set CDROM=%%i:
REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v cdrom /d %CDROM% /f

вроде бы на десятке установок проблема потери сидюка не наблюдалась.

dimich22 28-12-2007 16:41 705755

simplix, посмотрю. Но пока не понял, как применить во время установки.
biork, у меня переменная %CDROM% определяется именно вторым способом. Попробую потом выложить еще один вариант, чтобы для RunOnceEx можно было бы сразу использовать эту переменную.

simplix 28-12-2007 21:54 705913

До меня вообще плохо доходит полезность этого аддона. А если сидюков много? Теряем универсальность. Вообще драйвера устройств ставятся до T13, поэтому на T13 буквы дисков уже должны быть определены, а если есть кардриадер - его буквы должны быть за сидюком, и после такого расклада буква сидюка уже не изменится. Почему они у вас меняются после перезагрузки - не понятно, такого быть не должно, и правильным будет хорошенько покопаться в установке и выяснить, почему так происходит. В частности - на T13 давим Shift+F10 и смотрим где у нас какие буквы.

biork 30-12-2007 11:18 706505

Ну... вобщем ни чего не помогло... и в RunOnceEx строчки и аддон, а каждая вторая третья установка, как на зло с перепутанными буквами... Где то пораньше это должно применяться.
Нашёл выход из положения - отказ от установки приложений с сидюка из RunOnceEx (или раньше, или позже)

simplix 31-12-2007 00:18 706806

Вложений: 1
Вот ещё один вариант, который прост, как лопата (с). При запуске программа перебирает все сидюки в системе и добавляет в переменную %cdrom% первый найденный сидюк, в корне которого лежит файл WIN51. Тестируйте, когда именно её запускать - на T13 или непосредственно перед началом установки приложений при первом логоне (в таком случае её можно будет скопировать в %WinDir%).

vserd 31-12-2007 10:19 706859

dimich22,
Цитата:

Цитата dimich22
при установке ОС находились дисковые устройства и буква CD диска сбивалась, при этом часть программ (аддонов) уже не могла выполниться. Конечно, можно все перенести на T-13, но некоторые вещи - никак. Например, у меня часть ПО ставится при первом входе в систему из RunOnceEx. А так как я являюсь счастливым обладателем картридера, то вот как раз та часть ПО и не ставится. »

Можешь выполнить эту программку http://ifolder.ru/4789763 с такими параметрами:
DevicePath2DosPath.exe /ini=%WINDIR%\system32\$winnt$.inf[data]sourcepath >> t1
До и после того как меняются буквы дисков.
А затем опубликовать результаты?

dimich22 02-01-2008 15:53 707619

Нашел интересную программку на MSFN Она назначает переменные для CD-ROM, жестких дисков и прочих устройств.
Мысль проверить буквы в различные моменты установки у меня возникала. Времени пока нет. А мой аддон и так определяет переменную именно путем поиска маркерного файла WIN51. Можно, конечно, переменную определять уже при первом логоне. Но тогда это будет уже не столько универсальный аддон.

asmol 04-01-2008 23:44 709136

для других целей, но тоже пытался определить букву привода в котором стоит диструбутив видны. использовал такой код
Код:

for %%i 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 %%i:\WIN51 set CDROM=%%i:
обнаружил грабли:

в системе 2 сидирома (например D и E) дистрибутив находится в E, привод D - пустой. при выполнении скрипта получаем сообщение что нет диска в приводе и соответсвенно выход с ошибкой - дистрибутив не найден.

как в подобной ситуации поведет себя картридер смогу проверить только после 9го.

greg_b 05-01-2008 09:51 709300

asmol, алфавит выверни в обратную сторону от Z к С - прекратиться, было такое как-то пару раз. Потом забросил, перешол на OEMPreinstall.

vserd, dimich22,
Цитата:

Цитата dimich22
А так как я являюсь счастливым обладателем картридера, то вот как раз та часть ПО и не ставится. »

- а вы господа в биосе указываете порядок устройств? По дефолту биоса первым будет - картридер, потом хард, потом cd-rom - т.е. hdd получает букву зю, если расставить девайсы, то все нормально будет.

vserd 05-01-2008 10:25 709306

Цитата:

Цитата greg_b
а вы господа в биосе указываете порядок устройств? »

У меня нет кард ридера. По этому и хочу узнать работает мой способ всегда или нет (как на ранних стадиях установки, так и после изменения буквы диска).

greg_b 05-01-2008 12:25 709386

vserd, set-ы назначаются каждый раз при ре-старте системы, так что работать должно.

asmol 06-01-2008 11:45 709992

greg_b,
Цитата:

Цитата greg_b
алфавит выверни в обратную сторону от Z к С - прекратиться »

не вариант - заранее не угадаещь в какой из двух приводов дистриб будет установлен.

я вообщето только хотел предупредить что у этого метода есть грабли и в случае картридером они тоже возможны.

jameszero 06-01-2008 15:45 710159

Вложений: 1
На основе утилиты от simplix набросал sysoc аддон, определяющий букву CDROM, т.е. аддон срабатывает до T13/12

После установки на моей системе расклад такой:
Код:

С - системный диск
D,E - жесткие диски
F,G,H,I,J - диски картридера
K - привод с которого устанавливалась система

В реестре прописалось:
Код:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment]
"cdrom"="K:\\"

Проверьте у кого в системе установлены картиридер и особенно несколько CD/DVD приводов.

greg_b 06-01-2008 16:52 710217

asmol, простейший вариант - отключить лишний привод в биосе - :)

dimich22 07-01-2008 23:05 711446

Интересно, что воспользовавшись своим вариантом, получил точно такой же результат, как и у jameszero. Т.е. CD-ROM была присвоена буква K. Но наверное не всегда все проходит гладко. На праздниках не получается заняться проверкой - работал даже 31го и 1го(( Ну и кардридер бы на работу... Видимо, придется купить. А кто-нибудь пробовал вариант с DetectDevice, ссылку на который я давал ранее? Как мне кажется, их способ более правильный.

spectre4 12-02-2008 23:17 738929

Неправильно пропысывать переменную на T13. Особенность в том что порядок дисков на T13 и при первом входе в систему может отличатся.

Например возьмем машины в составе HDD(один раздел), DVD-ROM и USB флешка.

На T13 буквы будут:
Код:

С  -  HDD, D - USB флешка, E - DVD-ROM
При первом входе в систему уже будет:
Код:

С  -  HDD, D - DVD-ROM, E - USB флешка
Посему если планируется использовать переменную при первом входе в систему, то ее и устанавливать надо там-же.

dimich22 20-02-2008 09:51 744449

spectre4, в итоге пришел к тому же выводу. Надо бы только идею оформить надлежащим образом, да все руки не доходят.

spectre4 20-02-2008 11:34 744518

Особенность в том что многочисленные опыты с setenv и setx никчему так и не привели. Т.е. хотя во всех мануалах и описаниях сказанно что переменную можно использовать уже с следующеей CMD сейсии, реально, она доступна только после ребута :(
У себя эту проблемму я решил тупо в лоб, для каждой софтины которая ставится с диска следал персональный .cmd файл вида:
Код:

@echo off
cmdow @ /HID

SET TAGFILE=\WIN51
FOR %%i IN (C D E F G H I J K L M N O P Q R S T U V W X Y) DO IF EXIST "%%i:%TAGFILE%" SET CDDRIVE=%%i:

{тут комманды для устанавки софта}

EXIT

и уже их вызываю из RunOnceEx.

dimich22 20-02-2008 14:21 744654

spectre4, а если использовать вот эту утилиту

Garry071 20-02-2008 15:12 744695

Странная проблема...
Я не единожды ставил свой анаттенд на ноуты со встроенными картридерами - не разу из-за них проблем не было! (Для спецов: дрова на картридеры ставятся на Т-39. Но как будет очередной ноут с кардридером - проверю через Shift+F10 что и как распределилось. Плюс, думаю, проверю со вставленной карточкой/флешкой...)
В RunOnceEx.cmd нужная буква выясняется через SET CDROM=%~d0, правда, а не поиском WIN51 - может в этом дело?
Возможно, перед установкой, стоит извлечь все флешки и карточки из картридеров? Или там что-то нужное для установки лежит?

greg_b 20-02-2008 21:45 745000

Garry071,
Цитата:

Цитата Garry071
SET CDROM=%~d0 »

- не всегда срабатывает, особенно на двухядреных точилках.

Garry071 21-02-2008 11:48 745333

greg_b, я в основном только на такие и ставлю...

Tutle 14-03-2008 02:17 759925

а ели у меня никакой софт не ставится при первом входе в систему, мне может быть полезен этот аддон?

dimich22 14-03-2008 09:40 760060

Tutle, может, так как в системе потом прописывается жестко переменная %CDROM%
Но пока аддон до конца не доведен. Уж больно мало у меня в последнее время свободных ресурсов.

mercuryn 15-03-2008 15:18 760939

dimich22, а поможет Ваш аддон в такой ситуации: при установке системы на ПК с картридером системный диск определился как H... При этом некоторые аддоны не установились.

zver5 16-03-2008 00:40 761353

mercuryn,
нет не помогает хотя тоже надеялся на это

aset 16-03-2008 08:12 761428

mercuryn,
аналогичная ситуация была у клиента

Цитата:

Цитата dimich22
Тут чуть поподробнее распишу. Наверняка когда-нибудь вам приходилось сталкиваться с такими вещами, когда при установке ОС находились дисковые устройства и буква CD диска сбивалась, при этом часть программ (аддонов) уже не могла выполниться. »

Цитата:

Цитата zver5
нет не помогает хотя тоже надеялся на это »

вроде для этого и аддон?

zver5 16-03-2008 09:11 761442

aset,
аддон для этого, но с данной функцией не справляется

aset 16-03-2008 11:47 761510

zver5,
тогда надо к автору обращаться

mercuryn 16-03-2008 12:24 761534

aset, zver5, вот и я об этом... dimich22, отзовись...

Vadikan 17-03-2008 19:33 762352

Цитата:

Цитата spectre4
Особенность в том что порядок дисков на T13 и при первом входе в систему может отличатся.
Например возьмем машины в составе HDD(один раздел), DVD-ROM и USB флешка. »

А на Т-9 и первом входе тоже отличались в вашем случае? Можете проверить?

d petr 23-03-2008 15:42 766115

Цитата:

Цитата spectre4
Особенность в том что порядок дисков на T13 и при первом входе в систему может отличатся.

Если при установке системы запретить изменение реестра на раздел где прописываются буквы дисков у кардридеров, а после полной установки вернуть разрешения? Не будет ли это выход из ситуации? Есть ли аналог cacls, только для реестра?

spectre4 24-03-2008 13:34 766710

Цитата:

Цитата Vadikan
А на Т-9 и первом входе тоже отличались в вашем случае? Можете проверить? »

В процесе всей установки порядок букв одинаковый, переназначение происходит после ребута.

mbgroot 26-10-2008 17:23 934167

Насколько я понял, данный аддон на 100% не срабатывает. Я тут бродил по инету, и наткнулся на такой пост. Может знающим людям это чем-то поможет и аддон можно будет довести до ума?

norem 20-10-2010 15:57 1523201

проблемму с поиском диска, при наличии в системе картриадера, я решил следующим образом:

Код:

@echo off
SETLOCAL enabledelayedexpansion
FOR %%d 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 DIR %%d:>NUL 2>&1 && SET zz=!zz!%%d
FOR %%d IN (%zz%) DO IF EXIST %%d:\DiskRoot.txt SET fleshko=%%d:
%fleshko%

PAUSE

Файл DiskRoot.txt должен лежать на том диске, который хотим найти, и независимо от того флешка это или CD диск.


Время: 21:37.

Время: 21:37.
© OSzone.net 2001-