Поиск на сайте: Расширенный поиск


Новые программы oszone.net Читать ленту новостей RSS
CheckBootSpeed - это диагностический пакет на основе скриптов PowerShell, создающий отчет о скорости загрузки Windows 7 ...
Вы когда-нибудь хотели создать установочный диск Windows, который бы автоматически установил систему, не задавая вопросо...
Если после установки Windows XP у вас перестала загружаться Windows Vista или Windows 7, вам необходимо восстановить заг...
Программа подготовки документов и ведения учетных и отчетных данных по командировкам. Используются формы, утвержденные п...
Red Button – это мощная утилита для оптимизации и очистки всех актуальных клиентских версий операционной системы Windows...

Запуск RunOnceEx с CD

Текущий рейтинг: 4.36 (проголосовало 25)
 Посетителей: 18939 | Просмотров: 29557 (сегодня 0)  Шрифт: - +

Существует возможность установки приложений с CD без предварительного копирования на жесткий диск с использованием $OEM$\$1\ директорий. Осуществляется это достаточно просто при помощи добавления некоторых строк в RunOnceEx.cmd. Если вы еще не читали статью про RunOnceEx.cmd, то ознакомьтесь с ней.

Изменения в существующем RunOnceEx.cmd

Основным препятствием для установки приложений с CD является "непостоянство" буквы CD-ROM. В зависимости от конфигурации компьютера это может быть D или E или F и т.д. Таким образом основная задача - назначить переменную %CDROM% независимо от конфигурации компьютера. Существует несколько способов сделать это. Я убрал со страницы самый старый способ, изложенный когда-то на MSFN в угоду другому, o котором сообщил в письме cREoz (creoz(at)canada.com), за что ему большое спасибо.

Откройте RunOnceEx.cmd в Блокноте и добавьте следующую строку сразу после @echo off:

SET CDROM=%~d0

Это на самом деле самый простой метод назначения переменной %CDROM%. Принцип работы изложен в справочной системе Windows (команда FOR, последний блок документации). Вы также можете почитать объяснения vserd в этой теме на OSZone. Учтите, однако, что этот метод работает только в том случае, если команда исполняется из пакетного файла, запущенного с CD. Кроме того, по сообщениям участников конференции OSZone этот метод иногда не работает с двухъядерными компьютерами, поэтому если вы столкнулись с такой проблемой, используйте альтернативный метод, описанный ниже.

Альтернативный метод, который я использовал ранее и который описан сейчас на MSFN, основан на поиске файла WIN51 и если таковой найден на диске, то ему соответственно назначается переменная %CDROM%. :

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:

Этот метод сработает откуда бы не запускался пакетный файл с данной командой. Вообще, если вас интересуют различные методы назначения переменной %CDROM%, то рекомендую заглянуть в эту тему на MSFN. Или просто поискать в форуме Unattended Windows по CDROM в названиях тем.

Следующим шагом будет перемещение всех программ из директории C:\XPCD\$OEM$\$1\install\ в C:\XPCD\Software\ (вы можете назвать новую директорию как угодно).

Теперь вернитесь к RunOnceEx.cmd и проделайте следующие изменения:

  • Все значения %systemdrive% меняем на %CDROM%

  • Изменяем все пути к установочным файлам программ, чтобы они соответствовали новой директории Software и системной переменной %CDROM%

Это все, что требуется сделать! Теперь RunOnceEx.cmd назначит переменную %CDROM% и экспортирует соответствующую букву диска в реестр. Ваш RunOnceEx.cmd должен выглядеть примерно так:

cmdow @ /HID
@echo off

SET CDROM=%~d0

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 "Preparing Installation..." /f
REG ADD %KEY%\%i% /V 1 /D "%systemdrive%\install\prepare.cmd" /f
SET /A i+=1

REG ADD %KEY%\%i% /VE /D "WinRar 3.51" /f
REG ADD %KEY%\%i% /V 1 /D "%CDROM%\Software\WinRar.exe /s" /f
REG ADD %KEY%\%i% /V 2 /D "REGEDIT /S %CDROM%\Software\rar_set.reg /s" /f
SET /A i+=1

REG ADD %KEY%\%i% /VE /D "Opera" /f
REG ADD %KEY%\%i% /V 1 /D "%CDROM%\Software\Opera.exe /s" /f
SET /A i+=1

REG ADD %KEY%\%i% /VE /D "Download Master" /f
REG ADD %KEY%\%i% /V 1 /D "%CDROM%\Software\Download_Master_4.4.3.947.exe" /f
SET /A i+=1

REG ADD %KEY%\%i% /VE /D "QIP" /f
REG ADD %KEY%\%i% /V 1 /D "%CDROM%\Software\QIP.exe" /f
SET /A i+=1

REG ADD %KEY%\%i% /VE /D "Light Alloy" /f
REG ADD %KEY%\%i% /V 1 /D "%CDROM%\Software\Light_Alloy.msi /passive" /f
SET /A i+=1

REG ADD %KEY%\%i% /VE /D "Importing Registry Tweaks" /f
REG ADD %KEY%\%i% /V 1 /D "REGEDIT /S %CDROM%\Software\regtweaks.reg" /f
SET /A i+=1

REG ADD %KEY%\%i% /VE /D "Cleaning Up and Rebooting" /f
REG ADD %KEY%\%i% /V 1 /D "%CDROM%\Software\cleanup.cmd" /f
SET /A i+=1

EXIT

О чем необходимо помнить

Переменная %CDROM% не является постоянной. Она будет существовать только на протяжении сессии, в течение которой запускался RunOnceEx.cmd. Поскольку в этом файле команда на определение буквы CD-ROM находится вместе с параметрами REG ADD, то волноваться не о чем. Однако если вы запускаете другой пакетный файл, работающий с файлами, расположенными на компакт-диске, то вы обязательно должны включить в него определение буквы CD-ROM.

Если вы хотите назначить постоянные системные переменные, то ознакомьтесь со статьей Переменные среды.

В пакетном файле, рассматриваемом в статье, используется способ назначения переменной %CDROM%, который в некоторых сценариях может не привести к ожидаемым результатам. Это произойдет только в том случае, если после назначения переменной и внесения параметров в реестр на Т13/Т12, система обнаружит дисковые устройства и, как следствие, назначит им буквы. В результате при первом входе в систему привод CD или DVD может иметь букву, отличную от той, которая была присвоена на более раннем этапе установки ОС.

Автор: Вадим Стеркин aka Vadikan  •  Иcточник: unattended.oszone.net  •  Опубликована: 04.03.2005
Нашли ошибку в тексте? Сообщите о ней автору: выделите мышкой и нажмите CTRL + ENTER
Теги:   скрипты, RunOnceEx, CMD, BAT.


Оценить статью:
Вверх
Комментарии посетителей
Комментарии отключены. С вопросами по статьям обращайтесь в форум.