Сайт AutoIt
Русскaя справка к AutoIt
Коллекция AutoIt скриптов от Sanja Alone
AutoIt скрипты .:[общие вопросы]:.
(тема на OSZone)
Автор: Валерий Иванов, Sanja Alone
Источник: Русская справка к AuotIt; forum.oszone.net
Наши форумы
Опубликована- 15.02.06
© Все права защищены OSzone.net 2001-2007 |
Распечатано 15.02.06 |
Спроeктировала и разработала сайт Ginger |
Используйте этот экран, чтобы создать настройки, которые будут применены ко всем Вашим пользователям. Эти настройки включают в себя параметры по умолчанию клиентов электронной почты и новостей. Кроме того, Вы можете обеспечить пользователей информацией о получении дополнительных учетных записей электронной почты. Наконец, Вы можете подготовить файл с настроенными правилами сообщений.
Следующие параметры изменяются в элементе консоли групповой политики Поддержка Internet Explorer (Internet Explorer Mainantance), и не требует настройки в диспетчере профилей IEAK. Параметры системных политик и ограничений в Windows 2000 не могут быть изменены во время установки, с использованием unattend.txt.
«Живые» картинки (Animated Bitmaps)
Эмблема (Custom Logo)
Кнопки панели управления обозревателя (Browser Toolbar Buttons)
Настройки подключения (Connection Settings)
Программы (Programs)
Зоны безопасности и оценка содержимого (Security Zones and Content Ratings)
Настройки Authenticode (Certificate Settings)
Сегодня одной из наиболее трудоемких и дорогостоящих функций, выполняемых персоналом ИТ, является развертывание операционных систем на клиентских компьютерах в сети. Функция удаленной установки в Windows® 2000 была создана для развертывания операционной системы в сети предприятия без физического взаимодействия с каждым клиентским компьютером.
Службы удаленной установки (Remote Installation Services, RIS) используют преимущества новой технологии удаленной загрузки, основанной на новом Протоколе Динамической Конфигурации Узла (Dynamic Host Configuration Protocol, DHCP), помогая персоналу ИТ в удаленном развертывании Windows 2000 Professional, сокращая и, в некоторых случаях, полностью устраняя необходимость непосредственного взаимодействия с компьютером. Этот документ описывает необходимые действия по установке, настройке и использованию RIS.
В процессе выполнения скрипта может понадобиться возможность запустить exe-файлы с параметрами (или без). Для реализации этого в выполняемой секции требуется указать по крайней мере один из двух параметров: RunPreSetupCommands или RunPostSetupCommands. Как видно из названия параметров, первый выполнит свои дочерние функции перед установкой (обработкой скрипта), второй - после. Более подробно: RunPreSetupCommands обрабатывается после CheckAdminInstall (NTAdmin), RequiredEngine, но перед всеми остальными, а RunPostSetupCommands после всех, но перед EndPrompt. Параметры поддерживаются только интерпретатором AdvancedINF. Это единственные параметры, которые в своих значениях поддерживают флаги, а именно: при указании соответствующих флагов существует возможность запускать один список команд скрытым, другой - не ожидая завершения команд, третий - с задержкой после выполнения. Флаг, выглядящий, как одно число, пишется сразу после имени дочерней секции, отделяясь знаком двоеточия. Пример:
[DefaultInstall]
RunPreSetupCommands=cmd.begin, cmd.delay_post:4
RunPostSetupCommands=cmd.end, cmd.hidden:1, cmd.no_wait:2, cmd.nowait_hidden:3
;Простое выполнение команд с показом окон и ожиданием завершения каждого процесса
[cmd.begin]
filename.exe /param1 /param2
;Выполнение команд с задержкой в 400 ms завершения каждого процесса
[cmd.delay_post]
filename.exe /param1 /param2
;Выполнение команд со скрытием окон (SW_HIDE) и ожиданием завершения каждого процесса
[cmd.hidden]
filename.exe /param1 /param2
;Выполнение команд с показом окон (SW_SHOW) и без ожидания завершения каждого процесса
[cmd.nowait]
filename.exe /param1 /param2
;Выполнение команд со скрытием окон (SW_HIDE) и без ожидания завершения каждого процесса
[cmd.nowait_hidden]
filename.exe /param1 /param2
;Простое выполнение команд с показом окон и ожиданием завершения каждого процесса
[cmd.end]
filename.exe /param1 /param2
filename2.exe /param1 /param2
filename3.exe /param1 /param2
Расшифровка ключей управления процессами в дочерних секциях:
1 - Попытаться скрыть окна создаваемого процесса
2 - Не ожидать завершения процессов, запускаемых в дочерних секциях
4 - После завершения каждого процесса будет выдержана пауза в 400 миллисекунд.
Число флага кратно и может складываться из нескольких значений, то есть, содержать в себе несколько флагов. К примеру, число 6 содержит в себе 2 флага - 4 и 2; 5 - 4 и 1. В итоге могут получаться уникальные числа, содержащие любой набор флагов.
В статье делается упор на tftpd32, так как он бесплатен, не требует установки, и включает в себя 2 сервера в 1 (DHCP и TFTP), а также запускается под Windows любой версии. Но сам принцип - загрузка и запуск бинарника pxelinux (с последующей загрузкой нашего образа) - не привязан к tftpd32, а требует наличия в сети DHCP сервера с двумя дополнительными параметрами - 067 (имя загружаемого бинарника - pxelinux.0) и 066 (IP адрес TFTP сервера который нам и выдает искомый бинарник), а также собственно TFTP сервер, на который ссылается DHCP. Какими системами, сервисами или железками это реализовано нам совершенно неважно, потому можно использовать любой находящийся в сети сервер (Linux, Windows, Novell). Ну а если его нет, то tftpd32, запущенный на любой машине. Главное - это добраться по сети до PXELINUX.
Автор: способа RIS - Владимир Сердюк aka vserd; способа TFTPD32 - Power User
Иcточник: unattended.oszone.net
Наши форумы
Опубликована - 03.12.2005
© Все права защищены OSzone.net 2001-2008. Материалы взяты с сайта unattended.oszone.net. Дальнейшее применение материалов в других печатных изданиях, включая электронные статьи, должно сопровождаться указанием имени сайта unattended.OSzone.net и имени автора. |
Распечатано 03.12.05 |
Спроeктировала и разработала сайт Ginger |
Сайт программы
(Обзор программы - мой, на основе описания Vics)
Наверное, не слишком уместно писать обзор программы, которую даже не протестировал. Однако Post выглядит весьма несложной, так что я попробую :) Команда на запуск программы прописывается в cmdlines.txt, соответственно она будет выполнена на Т-12 (за 12 минут до конца установки). За основу для работы берется хорошо знакомый файл RunOnceEx.cmd, в который вставляются маркеры. Рассмотрим на примере:
cmdow @ /HID
@echo off
SET KEY=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx
REG ADD %KEY% /V TITLE /D "Установка выбранных программ" /f
;1
REG ADD %KEY%\005 /VE /D "Adobe Reader 6" /f
REG ADD %KEY%\005 /V 1 /D "%systemdrive%\install\AdobeReader6\AR6.msi /qn" /f
;2
REG ADD %KEY%\010 /VE /D "Diskeeper 8" /f
REG ADD %KEY%\010 /V 2 /D "%systemdrive%\install\Diskeeper\setup.exe /s /v/qn" /f
;3
REG ADD %KEY%\015 /VE /D "Photoshop CS" /f
REG ADD %KEY%\015 /V 1 /D "%systemdrive%\install\Photoshop\setup.exe" /f
;f
EXIT
Примечание: если вы устанавливаете ПО с CD, то для корректной работы Post.exe нужно использовать второй метод для назначения переменной %CDROM% со страницы Запуск RunOnceEx с CD.
Перед каждым параметром, вносящимся в ключ HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx (попросту говоря, перед каждой программой), ставится маркер, который является порядковым номером и выглядит как ;n (где n=1, 2, ... , n). Маркеры обязательно должны идти по порядку, и пропуск цифры недопустим. Перед командой EXIT ставится финализирующий маркер ;f. Вот собственно и все, проще некуда. Остается внести в файл cmdlines.txt команду:
[COMMANDS]
"post.exe"
и убрать оттуда команду на запуск RunOnceEx.cmd во избежание двойного срабатывания.
Преимущества: простота конфигурирования при наличии готового файла RunOnceEx.cmd; графический интерфейс; выбор желаемых приложений и запуск их всех одной кнопкой; запуск на Т-12 плюс все преимущества файла RunOnceEx.cmd.
Недостатки: напрашивается доработка графического интерфейса; порядок установки приложений определяется файлом RuOnceEx.cmd и если добавить в середину приложения; то придется менять порядок маркеров.
Как известно, твики реестра позволяют настроить практически любые параметры системы. Я уже забыл, когда последний раз пользовался твикером, т.к. система уже сразу устанавливается с учетом моих предпочтений. Вероятно, вы захотите сделать тоже самое. Резонный вопрос: как узнать какой твик реестра отвечает за те или иные изменения в системе, произвoдимые через пользовательский интерфейс?
В сети масса сайтов, содержащих информацию о параметрах реестра. Начать можете с www.oszone.net/14. Там очень большая подборка твиков, созданная силами участников форумов автоустановки. Не копируйте все твики разом, а постарайтесь вникнуть в смысл каждого из них. Сравните со своими настройками системы.
Кстати, экспортирование параметров вашей настроенной системы - отличный вариант. Так, например, изрядное количество настроек меню Пуск и вида папок находится в разделее
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced.
Если вы не уверены за что отвечает тот или иной параметр, вбейте его название в Google, и ответ не заставит себя ждать.
Если ваши поиски не увенчались успехом, то... вы плохо искали :) Можете попробовать произвести мониторинг системы
самостоятельно. В этом вам помогут бесплатные программы Regmon или Process Monitor (мониторинг в реальном времени) и Regshot (снимок до и после изменений).
Ну и конечно, вы всегда можете задать вопрос на форуме в теме про твики реестра.
Автор: Вадим Стеркин aka Vadikan
Иcточник: unattended.oszone.net
Наши форумы
Опубликована- 28.02.2005
© Все права защищены OSzone.net 2001-2008. Материалы взяты с сайта unattended.oszone.net. Дальнейшее применение материалов в других печатных изданиях, включая электронные статьи, должно сопровождаться указанием имени сайта unattended.OSzone.net и имени автора. |
Распечатано 09.04.05 |
Спроeктировала и разработала сайт Ginger |
Если вы не устали, то нам еще есть что рассказать
Вашему вниманию предлагается два примера, демонстрирующих применение BCDW в реальных условиях.Управление изменениями и конфигурацией | Компонент | Компонент | Преимущества | Технологии |
Управление изменениями и конфигурацией | IntelliMirror | Управление пользовательскими данными |
Мои данные и документы следуют за мной! Перемещаясь от одного компьютера сети к другому, пользователи сохраняют доступ к необходимым для их работы данным в любом режиме подключения к сети. Администраторы могут централизованно управлять этой возможностью при помощи групповой политики, что снижает затраты на поддержку. |
- Active Directory - Групповая политика - Автономные папки - Диспетчер синхронизации - Расширения оболочки Windows - Перенаправление папок - Дисковые квоты |
Управление изменениями и конфигурацией | IntelliMirror | Установка и поддержка ПО |
Мое ПО следует за мной! У пользователей есть необходимое для работы программное обеспечение. ПО и дополнительные компоненты устанавливаются по запросу. Однажды установленное ПО самовосстанавливается. Администраторы централизованно (посредством групповой политики) управляют развертыванием и обновлениями ПО, а также обновлениями ОС. Это минимизирует стоимость поддержки. |
- Active Directory - Групповая политика - Windows Installer - Установка/Удаление программ из панели управления - Расширения оболочки Windows |
Управление изменениями и конфигурацией | IntelliMirror | Управление пользовательскими настройками |
Мои настройки следуют за мной! Пользователи видят любимые настройки рабочего стола на любом компьютере. Личные предпочтения, а также настройки рабочего стола и ПО доступны при входе в систему любого компьютера сети. Администраторы могут централизованно управлять этой возможностью при помощи групповой политики, что уменьшает затраты на поддержку |
- Active Directory - Групповая политика - Автономные папки - Перемещаемые профили пользователей - Расширения оболочки Windows |
Управление изменениями и конфигурацией | Удаленная установка OS | Администраторы могут позволить удаленную установку операционных систем на базе Windows 2000 и развертывание готовых образов на новых или заменяемых компьютерах без вызова службы технической поддержки. |
- Active Directory - Групповая политика - Протокол DHCP - Службы удаленной установки (RIS) |
|
Управление изменениями и конфигурацией | IntelliMirror + Удаленная установка OS > Замена компьютеров | IntelliMirror + Удаленная установка OS > Замена компьютеров | IntelliMirror + Удаленная установка OS > Замена компьютеров |
В начало скрипта добавьте такие строки:
If WinExists(@ScriptName) Then Exit
AutoItWinSetTitle(@ScriptName)
Просмотреть изменения можно несколькими способами.
Можно использовать программу XPreview, написанную jcarle. Для ее работы требуется .NET Framework. После установки и запуска программы достаточно зайти в меню File | Open и выбрать модифицированный файл winntbbu.dll. В некоторых случаях программа некорректно отображает цвета, судя по сообщениям на MSFN.
Альтернативно можно (после замены оригинальных файлов в дистрибутиве своими) запустить winnt32.exe. Начнется установка Windows, которая остановится на первом же экране. Этого будет достаточно, чтобы рассмотреть все как следует.
Ну и наконец, можно запустить установку Windows на виртуальной машине и дождаться ее графического этапа.
Автор: Вадим Стеркин aka Vadikan
Иcточник: (переведено с англ.) unattended.msfn.org
Наши форумы
Опубликована- 06.04.2005
© Все права защищены OSzone.net 2001-2008. Материалы взяты с сайта unattended.oszone.net. Дальнейшее применение материалов в других печатных изданиях, включая электронные статьи, должно сопровождаться указанием имени сайта unattended.OSzone.net и имени автора. |
Распечатано 09.04.05 |
Спроeктировала и разработала сайт Ginger |
Просмотреть изменения можно несколькими способами.
Можно использовать программу XPreview, написанную jcarle. Для ее работы требуется .NET Framework. После установки и запуска программы достаточно зайти в меню File | Open и выбрать модифицированный файл winntbbu.dll. В некоторых случаях программа некорректно отображает цвета, судя по сообщениям на MSFN.
Альтернативно можно (после замены оригинальных файлов в дистрибутиве своими) запустить winnt32.exe. Начнется установка Windows, которая остановится на первом же экране. Этого будет достаточно, чтобы рассмотреть все как следует.
Ну и наконец, можно запустить установку Windows на виртуальной машине и дождаться ее графического этапа.
Автор: Вадим Стеркин aka Vadikan
Иcточник: (переведено с англ.) unattended.msfn.org
Наши форумы
Опубликована- 08.04.2005
© Все права защищены OSzone.net 2001-2008. Материалы взяты с сайта unattended.oszone.net. Дальнейшее применение материалов в других печатных изданиях, включая электронные статьи, должно сопровождаться указанием имени сайта unattended.OSzone.net и имени автора. |
Распечатано 09.04.05 |
Спроeктировала и разработала сайт Ginger |
Просмотреть изменения можно несколькими способами.
Можно использовать программу XPreview, написанную jcarle. Для ее работы требуется .NET Framework. После установки и запуска программы достаточно зайти в меню File | Open и выбрать модифицированный файл winntbbu.dll. В некоторых случаях программа некорректно отображает цвета судя по сообщениям на MSFN.
Альтернативно можно (после замены оригинальных файлов в дистрибутиве своими) запустить winnt32.exe. Начнется установка Windows, которая остановится на первом же экране. Этого будет достаточно, чтобы рассмотреть все как следует.
Ну и наконец, можно запустить установку Windows на виртуальной машине и дождаться ее графического этапа.
Автор: Вадим Стеркин aka Vadikan
Иcточник: (переведено с англ.) unattended.msfn.org
Наши форумы
Опубликована- 08.04.2005
© Все права защищены OSzone.net 2001-2008. Материалы взяты с сайта unattended.oszone.net. Дальнейшее применение материалов в других печатных изданиях, включая электронные статьи, должно сопровождаться указанием имени сайта unattended.OSzone.net и имени автора. |
Распечатано 09.04.05 |
Спроeктировала и разработала сайт Ginger |
Mы будем использовать $ОЕМ$ директории на инсталляционном диске для установки драйверов, приложений и твиков реестра. Чтобы это все работало, необходимо прописать два параметра в файле winnt.sif в секции [Unattended]. Откройте winnt.sif в любом текстовом редакторе и добавьте следующие строки:
[Unattended]
OemPreinstall=Yes
UnattendSwitch="yes"
OEMPreinstall=Yes сообщает Windows, что на диске находится директория $OEM$. Таким образом во время установки все содержимое директории будет скопировано на раздел жесткого диска, на который устанавливается система.
UnattendSwitch="yes" говорит Windows пропустить этап "Добро пожаловать в Windows XP", который помогает пользователю создать Учетные записи и подключение к сети Интернет.
Не забудьте, что использование виртуальных машин сильно сэкономит вам время и записываемые носители. Пожалуй, единственным недостатком виртуальных машин применительно к этому разделу будут драйверы. Их действительно нельзя протестировать на виртуальной машине. Однако, приложения, твики реестра и все остальное, обсуждаемое в этом разделе, очень удобно тестировать на виртуальной машине.
Мы начинаем с методов установки драйверов и приложений.
Автор: Вадим Стеркин aka Vadikan
Иcточник: unattended.msfn.org
Наши форумы
Опубликована- 27.02.2005
© Все права защищены OSzone.net 2001-2008. Материалы взяты с сайта unattended.oszone.net. Дальнейшее применение материалов в других печатных изданиях, включая электронные статьи, должно сопровождаться указанием имени сайта unattended.OSzone.net и имени автора. |
Распечатано 09.04.05 |
Спроeктировала и разработала сайт Ginger |
См. Приложение A ниже, чтобы проверить соответствие серверного и клиентского оборудованию системным требованиям для удаленной установки.
Диск на сервере, который Вы выбрали для установки RIS, должен быть отформатирован в файловой системе NTFS. Для RIS требуется значительное дисковое пространство, и он не может быть установлен на тот же диск или раздел, где установлена ОС Windows 2000 Server. Удостоверьтесь, что выбранный диск содержит достаточно свободного места, по крайней мере, для одного установочного компакт-диска Windows 2000 Professional – минимум около 800 мегабайт (Мб) – 1 гигабайта (Гб).
RIS требует наличия нескольких других служб, которые также входят в состав Windows 2000 Server. Данные службы могут быть установлены на различные сервера или на единственный сервер, в зависимости от схемы Вашей сети:
Сервер Службы Доменных Имен (Domain Name Service (DNS) Server). Удаленная установка нуждается в DNS для обнаружения службы каталогов и учетных записей клиентских компьютеров. Вы можете использовать любой DNS-сервер совместимый со службой каталогов Active DirectoryTM или DNS-сервер, поставляемый с Windows 2000 Server.
Сервер DHCP (Dynamic Host Configuration Protocol (DHCP) Server). RIS требует наличия в сети активного сервера DHCP. Компьютеры с возможностью удаленной загрузки получают IP адрес от сервера DHCP перед соединением с RIS.
Служба каталогов Active Directory. RIS использует Active Directory для хранения информации об имеющихся компьютерах и серверах RIS. Службы RIS должны быть установлены на сервере под управлением Windows 2000, который имеет доступ к Active Directory. Это может быть контроллер домена или сервер, входящий в домен, с доступом к Active Directory.
Для успешной установки и работы RIS, Вы должны установить и настроить дополнительные службы, в порядке описанном ниже. Кроме того: у Вас должны быть установочные компакт-диски Windows 2000 Server и Professional.
Для выполнения этого пошагового руководства, Вам необходимо создать базовую инфраструктуру, которая включает в себя индивидуальные настройки оборудования и программного обеспечения. Данный процесс описан в пошаговом руководстве по созданию базовой инфраструктуры «Часть 1, Установка Windows 2000 Server в качестве контроллера домена». ("Part 1: Installing a Windows 2000 Server as a Domain Controller") http://www.microsoft.com/windows2000/techinfo/planning/server/serversteps.asp (EN). Если Вы не используете базовую инфраструктуру, Вам нужно сделать соответствующие изменения в данном наборе инструкций.
Хотя это и не является обязательным, мы также рекомендуем изучить и выполнить примеры, описанные в Пошаговое руководство по использованию возможностей набора Групповой политики (Step-by-Step Guide to Understanding the Group Policy Feature Set). Это позволит понять, как работают Групповые политики и как их можно использовать в контексте удаленных установок.
Убедитесь, что сетевая карта клиентского компьютера установлена в BIOS в качестве первичного загрузочного устройства. При загрузке с сетевой карты компьютер запрашивает сетевую загрузку службы с сервера удаленной установки. Установив соединение, сервер RIS предлагает пользователям нажать клавишу F12 для загрузки Мастера установки клиентов (Client Installation wizard). Пользователи будут уведомлены о том, что нужно нажать клавишу F12
только после приглашения, и только в тех случаях, если им необходима установка новой ОС или доступ к инструментам обслуживания и восстановления. После начала установки ОС через RIS, пользователь может игнорировать приглашение нажать клавишу F12 во время последующих перезагрузок компьютера. Если используется загрузочная дискета RIS, просто вставьте дискету в дисковод и включите компьютер. Компьютер загрузится с данной дискеты, и пользователю будет предложено нажать клавишу F12 для запуска сетевой загрузки службы. При использовании загрузочной дискеты RIS, пользователь должен вынуть дискету после нажатия клавиши F12, но до завершения части установки, проходящей в текстовом режиме.
Примечание: Компьютеры Compaq предоставляют возможность нажатия клавиши F12 во время загрузки компьютеров соответствующих стандартам PC98 или Net PC. В этом случае пользователю необходимо нажать F12 во время заставки Compaq, и затем еще раз нажать клавишу F12 после приглашения сервера RIS.
Наверх страницы
cmdow @ /HID @echo off
attrib -r "%programfiles%\cdex\*.*" /s attrib -r "%programfiles%\Edialer\*.*" /s attrib -r "%programfiles%\IrfanView\*.*" /s attrib -r "%programfiles%\Opera75\*.*" /s attrib -r "%programfiles%\Proxomitron\*.*" /s attrib -r "%programfiles%\Winamp\*.*" /s
DEL /F /Q "%systemroot%\*.bmp" DEL /F /Q "%systemroot%\Web\Wallpaper\*.jpg" DEL /F /Q "%systemroot%\system32\*.scr"
DEL /F /Q "%AllUsersProfile%\Start Menu\Windows Update.lnk" DEL /F /Q "%AllUsersProfile%\Start Menu\Set Program Access and Defaults.lnk" DEL /F /Q "%AllUsersProfile%\Start Menu\Windows Catalog.lnk"
regsvr32 /u /s zipfldr.dll
EXIT
Этот пункт необязателен. Вы можете использовать исполняемые файлы для выполнения задач, которые проще запустить отдельно, чем добавлять их в строки REG ADD в файле RunOnceEx.cmd. Чтобы увидеть как они запускаются, посмотрите пример файла RunOnceEx.cmd выше. В принципе, запуск их ничем не отличается от запуска других приложений и *.reg файлов.
Prepare.cmd может содержать все, что вы хотите выполнить
cmdow @ /HID
DEL "%systemroot%\*.bmp"
DEL "%systemroot%\Web\Wallpaper\*.jpg"
DEL "%systemroot%\system32\dllcache\*.scr"
DEL "%systemroot%\system32\*.scr"
DEL "%AllUsersProfile%\Start Menu\Windows Update.lnk"
DEL "%AllUsersProfile%\Start Menu\Set Program Access and Defaults.lnk"
DEL "%AllUsersProfile%\Start Menu\Windows Catalog.lnk"
EXIT
Если вы не понимаете, что делает данный файл, то не используйте его. Вкратце, он удаляет все обои и скринсэйверы, используемые в Windows по умолчанию, а также удаляет различные ярлыки из меню Пуск.
Cleanup.cmd может содержать команды для удаления ненужных директорий и перезагрузки компьютера после установки всех приложений.
cmdow @ /HID
shutdown.exe -r -f -t 30 -c "Windows XP will now restart in 30 seconds..."
net user aspnet /delete
RD /S /Q %systemdrive%\drivers\
RD /S /Q %systemdrive%\install\
EXIT
Вы можете объединить оба файла в один, без разницы.
Цифровой префикс | Пример записи и предлагаемый порядок аддонов |
0 | Служебные |
0 | 0-HTMLINFO |
1 | Аддоны базового набора |
1 | 1-BASECSP |
1 | 1-FLASH |
1 | 1-HDA |
1 | 1-IE |
1 | 1-IMAPI2 |
1 | 1-MMC3 |
1 | 1-MSXML |
1 | 1-MU |
1 | 1-PKGINST |
1 | 1-PNRP |
1 | 1-RDC6 |
1 | 1-ROOTSUPD |
1 | 1-WEBFLDRS |
1 | 1-W |
2 | Разного рода обновления и дополнения встроенных компонентов ОС. |
2 | 2-SHOCKWAVE |
2 | 2-DOTNET35 |
2 | 2-DX9U |
2 | 2-HTMCD |
2 | 2-WMP11RUS |
3 | Неофициальные обновления или не рекомендуемые обновления ОС. |
3 | 3-KB893056-MSGINA |
3 | 3-KB901190-IME |
3 | 3-EXTREMEPACK |
4 | Хаки |
4 | 4-OOBE |
4 | 4-RAID |
4 | 4-RCADMIN |
4 | 4-NODEP |
5 | Различные DLL и OCX файлы. |
5 | 5-EXPEXT |
5 | 5-HASHTAB |
5 | 5-PRIO |
5 | 5-TARGET |
6 | Аддоны, предназначенные для внесения изменений в реестр и настройки ОС. |
6 | 6-UNPNC |
6 | 6-XPRIGHTS |
6 | 6-MYCUSTOM |
7 | Программы сторонних производителей. |
7 | 7-WINRAR |
7 | 7-EMEDITOR7 |
7 | 7-REGSHOT |
7 | 7-SALAMANDER |
7 | 7-VOLUMEC |
8 | Аддоны, предназначенные для удаления компонентов ОС и драйверов. |
8 | 8-DEL_CAM |
8 | 8-DEL_LANDRV |
8 | 8-DEL_MODEM |
8 | 8-DEL_MULTIPORT |
8 | 8-DEL_PRN |
8 | 8-DEL_SCANER |
8 | 8-DEL_SCSI-4 |
8 | 8-DEL_VIDEODRV |
8 | 8-DELBMPINWIN |
8 | 8-DELGAMES |
8 | 8-DELMOUSETOUR |
8 | 8-DELNETMEETING |
8 | 8-DELPINBALL |
8 | 8-DELSCR |
8 | 8-DELWINTOUR |
8 | 8-DELZONEGAMES |
9 | Служебные. Предназначены для пост-обработки информации или создания образа. |
9 | 9-ZLOG |
9 | 9-BCDW |
К содержанию
(с) Gosh http://gosh.msfn.org/txtsetup.htm
авторский перевод + мелкие дополнения - Volk1234
Txtsetup.sif - это, как следует из названия файла, Text setup system information file - файл установки текстового режима. После текстового режима этот файл не нужен системе, поэтому он не копируется из дистрибутива, не защищен цифровой подписью и не включен в состав файлов, защищаемых SFC. В связи с этим, Txtsetup.sif идеально подходит для целей автоустановки, добавления- удаления компонентов и записей реестра.
Добавление\удаление записей
Удалить строку из Txtsetup.sif проще простого - любой текстовый редактор это может. Также, можно закомментировать строку точкой с запятой (что лучше, если вы не знаете что делаете). А вот добавить строку сложнее, требуется знать синтаксис.
Синтаксис записи в секции копирования Txtsetup.sif:
filename_on_source= diskid, , , , , , , subdir, upgradecode, newinstallcode, spare, spare, newfilename, flag, unknown
Рассмотрим пример:
locsecw.chm = 1, , , , , , , 21, 0, 0, localsec.chm
[locsecw.chm] - файл дистрибутива (понятно, что он находится в i386)
[1] - соответствует секции [SourceDisksNames.x86] в Txtsetup.sif. В данном случае параметр [1] означает,
что файл из оригинальной (RTM) сборки. Значение [100], например, означает принадлежность файла к SP1, SP2.
Отвечает на вопрос ОТКУДА?
[,,,,,,,] - пустые параметры отделенные знаками запятой специфика winnt систем. Точные значения неизвестны.
[21] - указывает папку назначения, секция [WinntDirectories], в данном случае %Windir%\Help
Отвечает на вопрос КУДА?
[0] - upgradecode - режим копирования файла. Предназначен для корректного обновления с более старых ОС.
значения:
0 - Копировать всегда
1 - Копировать только в том случае, если файл присутствует в папке назначения
2 - Не копировать, если файл присутствует в папке назначения
3 - Не копировать файл
[0] - newinstalcode - указывает на "чистую" установку. Необязателен. Если не указан, используется значение по умолчанию = 3, а файл не копируется.
Здесь то немногое, что удалось собрать.
Sysoc (System Optional Components) - это диспетчер установки дополнительных компонентов ОС. В процессе выполнения программы установки выполняется файл sysoc.inf, посредством ocgen.dll и других библиотек. Файл Состоит в основном из секций [Components] где указываются устанавливаемые дополнительные компоненты.
Синтаксис:
WGA=ocgen.dll, OcEntry, Pck_WGA.inf, HIDE, 7
WGA - имя исполняемой секции
ocgen.dll - библиотека обработчик sysoc
OcEntry - команда ocgen.dll (нечто вроде точки входа)
Pck_WGA.inf - название INF-файла устанавливаемого компонента
Hide - скрыть компонент
7- флаг (неизвестно); для ocgen.dll всегда равен 7
Для установки через Sysoc в ваш INF-файл необходимо добавить секцию:
[Optional Components]
Имя исполняемой секции
Для размещения вашего приложения, устанавливаемого через Sysoc в группе 3rdParty (Программы сторонних разработчиков), добавьте в исполняемую сецию инструкцию Parent=NonMS. Также, уберите параметр HIDE из строки в Sysoc.
Параметр Modes=0,1,2,3 точное значение неизвестно, однако разместить его в исполняемой секции можно двумя способами:
Modes=0,1,2,3 ;аддон будет установлен по умолчанию
;Modes=0,1,2,3 ;аддон не будет установлен по умолчанию, его доустановка возможна из "Установки компонентов Windows"
Без параметра Modes аддон не будет установлен.
К содержанию
Бродя по темным закоулкам Technet и просматривая одним глазом DDK и SDK KIT для Win98, я наткнулся на описание загадочной секции, использующейся для установки через sysoc.inf. Я подозревал, что это штатная секция INF-файлов, просто не сильно афишировавшаяся. Итак, подробнее об этой секции.
Синтаксис:
[Optional Components]
Имя секции - ссылка на секцию в файле, которую надо исполнить для установки
.....
[Имя секции] - сама установочная секция
Данная секция служит для добавления устанавливаемого приложения в список оснастки "Установка/Удаление программ - Компоненты Windows". Секция не будет исполнена при попытке выполнить файл по правому щелчку мышью и выбору пункта "Установить". Ее также нельзя выполнить с помощью команды [Setupx.dll InstallHinfSection точка_входа]. В первом случае будет выполнятся секция [DefaultInstall], a во втором секция - указанная точкой входа. В обоих случаях параметры секции [Optional Components] будут игнорированны.
Насколько я понимаю, для обработки дополнительных инструкций секции [Optional Components] и существуют файлы sysoc.inf, ocgen.dll и sysocmgr.exe. В основном инструкции [Optional Components] служат для управления отображения компонентов в окне "Компоненты Windows".
Вернемся к синтаксису. В секцию установки могут быть добавлены следующие инструкции OC:
OptionDesc=название дополнительного компонента
Tip=Подсказка в поле "Описание".
InstallDefault=0 | 1 ; Устанавливать компонент по умолчанию. 1=Да, 0=Нет.
IconIndex=Номер иконки для отображения
Parent= (имя секции\группы) группа или подгруппа в "Компоненты Windows" (Пример: "Игры Windows" относятся к Parent=AccessUtil, аддоны 3dParty к Parent=NonMS)
Needs=имя секции, имя секции
Include=INF-файл, [INF-файл]
OptionDesc - это строковой параметр задающий название дополнительного компонента отображающегося в "Компоненты Windows". Может быть задан через Strings.
Tip - это текст подсказки в поле "Описание", ограничение - 255 символов.
Может быть задан через Strings.
IconIndex - это иконка, которая будет отображатся рядом с названием компонента. Привожу список иконок в оригинале:
0 Machine (base and display)
1 Integrated circuit chip
2 Display
3 Network wires
4 Windows flag
5 Mouse
6 Keyboard (3 keys)
7 Phone
8 Speaker
9 Hard disks
10 Comm connector
11 Diamond (default value)
12 Checked box
13 Un-checked box
14 Printer
15 Net card
16 Same as 0
17 Same as 0 w/ a sharing hand underneath
18 Unknown (question mark)
19 Atwork
20 Greyed check box
21 Dial-up networking
22 Direct cable connection
23 Briefcase
24 Exchange
25 Partial check
26 Accessories group
27 Multimedia group
28 Quick View
29 MSN
30 Calculator
31 Defrag
32 Generic document
33 DriveSpace
34 Solitaire
35 HyperTerminal
36 Object Packager
37 Paint
38 Screen saver
39 WordPad
40 Clipboard Viewer
41 Accessibility
42 Backup
43 Bitmap document
44 Character map
45 Mouse pointers
46 Net Watcher
47 Phone Dialer
48 System Monitor
49 Help book
50 Globe (international settings)
51 Audio compression
52 CD player
53 Media Player
54 Sound scheme
55 Video clip
56 Video compression
57 Volume control
58 Musica sound scheme
59 Jungle sound scheme
60 Robotz sound scheme
61 Utopia sound scheme
Parent - это инструкция, указывающая, является компонент подчиненным или родительским. Если параметр отсутствует, то менеджер дополнительных компонентов считает что компонент родительский. Если указать несуществующий родительский компонент (например, сам аддон), менеджер компонентов зависнет в попытке найти такого родителя. Для всех авторов аддонов должен быть только один вариант - Parent=NonMS (аддон 3dParty), чтобы не загромождать менеджер дополнительных компонентов (конечно, кроме особых случаев).
Needs указывает на секцию другого дополнительного компонента, от которого зависит устанваливаемый компонент. Секция должна быть в этом же файле, в противном случае
необходимо использовать Include.
Include присоединяет INF-файл стороннего компонента к текущей установке, что позволяет ссылатся на секции в присоединенном файле.
InstallDefault, скорее всего, достался в наследство от Win98. Я пробовал ставить аддон с этим параметром = 1 вместо Modes= 0,1,2,3. Аддон не поставился, но в списке
компонентов появился и позволил доустановить себя. У кого получится установить - сообщите. Пока могу посоветовать использовать Modes=0,1,2,3.
Пример:
[Optional Components]
InstallMyToys
InstallGames
[InstallMyToys]
OptionDesc=%Toys_DESC%
Tip=%Tomytoysys_TIP%
IconIndex=35 ;Иконка "Телефон"
Parent=MailApps
Needs=MSMAIL, MAPI, MicrosoftNetwork
Include=mos.inf, msmail.inf
CopyFiles=MyToysFiles
UpdateInis=MyToysLinks
AddReg=MyToysRegItems
[InstallOtherApps]
OptionDesc=%Other_DESC%
Tip=%Other_TIP%
IconIndex=4 ;windows mini icon for dialogs
CopyFiles=OtherFiles
UpdateInis=OtherLinks
AddReg=OtherRegItems
[Strings]
Toys_DESC="Почтовая утилита"
Toys_TIP="Дополнительные почтовые инструменты"
Other_DESC="Другие полезные утилиты"
Other_TIP="Калькулятор, очистка диска и монитор производительности"
Дополнительно можно прочесть про файл ответов sysocmgr.exe (для установленной системы) здесь.
К содержанию
Этапы текстового режима различаются в зависимости от режимов установки. Здесь рассматриваются этапы установки с дистрибутивного CD, из удаленного сетевого дистрибутива и с локального дистрибутива на жестком диске (zip, flash). В принципе, мастер установки рассматривает любой вариант установки, кроме установки с CD, как установку из удаленного источника, отсюда и дополнительный этап копирования во временную папку $win_nt$.~ls, перезагрузку и уже только затем копирование в папку установки.
В составе Update pack приcутствует патч SFCfiles.dll, написанный участником конференции BoaSoft. Взаимодействовать с патчером возможно путем конфигурационных файлов KillWFP.lst, DelDrv.lst, DelOC.lst. Синтаксис простой: имя файла (с расширением), для которого необходимо отключить WFP и/или который необходимо удалить из дистрибутива.
Описание патча sfcfiles.dll предоставим автору:
Зачем это нужно?
Большая часть важных для системы файлов в Windows XP защищена от удаления и изменения функцией WPF (Windows File Protection). Если вы хотите удалять или изменять некотрые файлы, система не даст этого сделать. Точнее, это ограничение можно обойти, но при запуске SFC произойдет замена файлов на оригинальные или же последует запрос на вставку диска с дистрибутивом. Можно полностью отключить защиту, но тогда система становится беззащитной перед шаловливыми руками пользователя или криво перепакованными дистрибутивами игрушек. Результат - отсутствующие файлы и падение системы.
В большинстве случаев требуется исключить лишь несколько фалов. Этого можно легко достичь патчем SfcFiles.dll, заставив библиотеку "забыть" о этих файлах.
Алгоритм работы
Программа действует очень просто. Операционная система определяет, какие файлы защищены, на основе информации, содержащейся в библиотеке SfcFiles.dll. Эта библиотека не несет в себе прямых функций защиты, а только выдает список защищенных файлов. Там находятся списки защищаемых файлов, целых 5 штук для разных систем:
XP Pro
XP Home
Xp Tablet PC
XP Media Center Edition
XP Starter
В серверной библиотечке тоже 5 списков, но их назначения (соответствия версиям продуктов) не выяснены. Система защиты получает список защищенных файлов с полными путями из этой библиотеки, вызывая API - функцию SfcGetFiles. Нам же требуется, чтобы в этот список не попали нужные нам файлы.
В 3-й версии патчера применен новый алгоритм - патчатся не строковые значения, а таблица указателей. Этих таблиц также 5 - по числу версий продукта.
В этой таблице просто происходит подмена указателей на выводимые из защиты файлы на указатель на любой из оставшихся файлов. В результате при выдаче списка файлов некоторые файлы будут присутствовать более одного раза, а работа SFC никак не изменится - все невыведенные файлы будут защищены.
Патчер автоматом корректирует CRC в PE заголовке файла, после чего файл готов к применению. Если в логе говорится, что файл не найден, скорее всего он не входит в список защищенных. Для стабильного результата патчите всегда оригинал, хотя повторный патч библиотеки, уже пропатченной этой версией патчера, не приведет к ошибке.
Важно! Если патчить библиотеку, ранее уже патченную более старыми версиями патчера или другими утилитами, то возможны разные непредсказуемые проблемы.
Проверялось с SfcFiles.dll от Windows XP SP2 rus/ SP2 en/ SP1/2003 Server rus. (Во всей линейке ОС одного семейства и пакета обновлений библиотека одинакова!). С другими версиями программа также должна работать. Проверить правильность работы можно на рабочей ОС, временно заменив оригинальную библиотеку на патченую, проигнорировав запрос о вставке диска и перезагрузившись.
Патчер не нарушает работу функции восстановления системных файлов командой SFC /scannow.
К содержанию
Addon.nfo обязателен для всех аддонов в целях удобства пользователей. Стандартная структура файла Addon.nfo:
Название аддона и версия программы, для которой делается аддон: Аддон (Аддон-конструктор) Example 3.1.1.2
Дата создания аддона: 01.01.2008
Версия аддона: v 0.8
Тип интеграции аддона: SVCPACK.inf
Требуемые компоненты: аддон 3rdParty
Краткое описание: Эту замечательную програмку испробовали многие пользователи по всему свету. Вот я и решил сделать небольшой аддончик.
Сайт производителя программы: www.site.org
Сайт\ветка аддона. forum.oszone.ru/example
Автор аддона: Author_name
Итого имеем:
Addon.nfo
Аддон (Аддон-конструктор) Example 3.1.1.2
Дата создания аддона: 01.01.2008
Версия аддона: v 0.8
Тип интеграции аддона: SVCPACK.inf
Требуемые компоненты: аддон 3rdParty
Эту замечательную програмку испробовали многие пользователи по всему свету.
Вот я и решил сделать небольшой аддончик.
Сайт производителя программы:www.site.org
Ветка аддона в форуме OSzone: forum.oszone.ru/example
Автор аддона: Author_name
К содержанию
Требования к аппаратному обеспечению сервера:
• | Компьютер с процессором Pentium или Pentium II 166 МГц (рекомендуется процессор 200 МГц или более производительный). |
• | Не менее 32 Мб ОЗУ. Если установлены такие дополнительные службы, как Active Directory, DHCP и DNS, то требуется не менее 128 Мб ОЗУ. |
• | Жесткий диск объемом не менее 2 Гб, выделенный для дерева каталогов служб удаленной установки. |
• | Сетевой адаптер, поддерживающий скорость 10 или 100 Мбит/с (рекомендуется 100 Мбит/с). |
Примечание. Для установки RIS требуется отдельный (не загрузочный) раздел жесткого диска. С учетом того, что на сервере размещаются образы операционной системы, может потребоваться выделение отдельного жесткого диска для дерева каталогов RIS.
Требования к аппаратному обеспечению клиентских компьютеров:
• | Компьютер с процессором Pentium 166 МГц или более производительным. |
• | Не менее 32 Мб ОЗУ. |
• | Жесткий диск объемом не менее 800 Мб. |
• | Сетевой адаптер PCI с поддержкой Plug and Play. В «Приложении Б» Вы найдете список сетевых адаптеров, которые поддерживает загрузочный диск RIS. |
• | Необязательно: загрузочное ПЗУ PXE версии .99c или более новой версии. |
Наверх страницы
Как узнать, поддерживает ли версия моего ПЗУ процесс PXE?
При загрузке клиентского компьютера, поддерживающего стандарт NetPC или клиентского компьютера, имеющего ПЗУ удаленной загрузки, на экране отображается сообщение PXE (LSA) ПЗУ. Вы можете увидеть версию ПЗУ PXE во время загрузки на клиентской машине. RIS Windows 2000 поддерживают версию ПЗУ PXE .99c и выше. Если Вы не добились успеха с имеющейся версией ПЗУ, Вы можете обратиться за новой версией к производителю Вашего оборудования.
Как я могу узнать, что клиентский компьютер получил IP-адрес и подключился к Серверу удаленной установки?
При загрузке компьютера, начинает загружаться и инициироваться Загрузочное ПЗУ PXE. Последовательность из следующих четырех шагов выполняется на большинстве компьютеров с поддержкой стандарта Net PC или на компьютерах с PXE ПЗУ. (Примечание: на вашем компьютере последовательность может выполняться иначе)
Шаг 1: Клиентский компьютер показывает сообщение BootP. Это сообщение указывает, что клиент получил IP-адрес от сервера DHCP.
Устранение неполадок: Если компьютер не отображает сообщение BootP, это означает, что клиент не получил IP-адреса. Проверьте следующее:
Доступен ли сервер DHCP, и запущена ли на нем соответствующая служба? Серверы DHCP и RIS должны быть авторизованы в Active Directory, чтобы их службы смогли запуститься. Проверьте, что служба запущена, и что при локальной загрузке другие клиенты получают IP-адреса в этом сегменте.
Могут ли другие клиентские компьютеры (с локальной загрузкой) получать IP-адреса в этом сегменте сети?
Определена ли область IP-адресов сервера DHCP и активирована ли она? Чтобы проверить это нажмите Пуск (Start), выберите Программы (Programs), выберите Администрирование (Administrative Tools) и нажмите DHCP.
Нажмите Пуск (Start), выберите Программы (Programs), выберите Администрирование (Administrative Tools), нажмите Просмотр событий (Event Viewer). Есть ли в журнале «Система» сообщения об ошибках DHCP?
Не расположен ли между клиентским компьютером и сервером DHCP маршрутизатор, который блокирует проходящие через него пакеты DHCP?
Ниже приводится список сетевых адаптеров, которые поддерживает загрузочный диск RIS. Служебную программу для создания загрузочного диска RIS (Rbfg.exe) можно найти в папке \Admin\i386\Remoteinstall.
В этом разделе мы расскажем, как устанавливать приложения автоматически (без участия пользователя). На страницах раздела вы увидите различные команды для пакетных файлов, которые вы сможете добавить в свои пакетные файлы, запускаемые из [GuiRunOnce]. Вы можете посмотреть, как это сделано, у меня на странице Примеры в файле start.cmd. Эти же команды после небольших модификаций можно использовать и для способа RunOnceEx.
Вы заметите, что при добавлении дополнительных кавычек (" ") к значениям REG ADD, эти значения не импортируются в реестр. Чтобы обойти это препятствие используйте обратную косую черту (backslash) \" для каждых кавычек, которые вы добавляете. Пример:
%KEY%\%i% /V 1 /D "\"%systemdrive%\install\AdobeReader6\Adobe Reader 6.msi\" /qn" /f
Это позволит запускать приложения, которые содержат пробелы в именах файлов (надежнее, правда, переименовать их заранее), а также использовать ключи приложений, которые надо заключать в кавычки.
© Все права защищены OSzone.net 2001-2008. Материалы взяты с сайта unattended.oszone.net. Дальнейшее применение материалов в других печатных изданиях, включая электронные статьи, должно сопровождаться указанием имени сайта unattended.OSzone.net и имени автора. |
Распечатано 09.04.05 |
Спроeктировала и разработала сайт Ginger |
© Все права защищены OSzone.net 2001-2008. Материалы взяты с сайта unattended.oszone.net. Дальнейшее применение материалов в других печатных изданиях, включая электронные статьи, должно сопровождаться указанием имени сайта unattended.OSzone.net и имени автора. |
Распечатано 09.04.05 |
Спроeктировала и разработала сайт Ginger |
© Все права защищены OSzone.net 2001-2008. Материалы взяты с сайта unattended.oszone.net. Дальнейшее применение материалов в других печатных изданиях, включая электронные статьи, должно сопровождаться указанием имени сайта unattended.OSzone.net и имени автора. |
Распечатано 09.04.05 |
Спроeктировала и разработала сайт Ginger |
© Все права защищены OSzone.net 2001-2008. Материалы взяты с сайта unattended.oszone.net. Дальнейшее применение материалов в других печатных изданиях, включая электронные статьи, должно сопровождаться указанием имени сайта unattended.OSzone.net и имени автора. |
Распечатано 07.05.05 |
Спроeктировала и разработала сайт Ginger |
© Все права защищены OSzone.net 2001-2008. Материалы взяты с сайта unattended.oszone.net. Дальнейшее применение материалов в других печатных изданиях, включая электронные статьи, должно сопровождаться указанием имени сайта unattended.OSzone.net и имени автора. |
Распечатано 09.04.05 |
Спроeктировала и разработала сайт Ginger |
© Все права защищены OSzone.net 2001-2008. Материалы взяты с сайта unattended.oszone.net. Дальнейшее применение материалов в других печатных изданиях, включая электронные статьи, должно сопровождаться указанием имени сайта unattended.OSzone.net и имени автора. |
Распечатано 09.04.05 |
Спроeктировала и разработала сайт Ginger |
Применить твики реестра ко всем пользователям проще всего во время установки системы, поскольку изменения вносятся в профиль Default User, который служит основой для создаваемых впоследствии профилей пользователей (см. статью Tвики реестра). Однако нередко бывает так, что уже после установки системы необходимо внести изменения в настройки имеющихся в системе пользователей, т. е. для каждого пользователя изменить параметры раздела HKCU. Поскольку этот раздел всегда отражает настройки текущего пользователя, изменяя его параметры, можно добиться только изменений в настройках собственной учетной записи. А как быть с остальными пользователями? Эта задача решается путем загрузки пользовательского куста реестра и внесения в него изменений из-под учетной записи, обладающей правами администратора. В зависимости от ситуации можно выполнить изменения как вручную, так и автоматически при помощи пакетного файла. Ниже рассматриваются оба способа.
Для примера я выбрал программу Netlook. Причина заключается в желании совместить приятное с полезным - такого аддона еще нет, программка не очень большая, записей в реестр не делает (то есть практически переносная), и лично мне пригодится. Сознательно не использовались средства автоматизации создания аддона (смотрите во втором примере), чтобы пример был более наглядным. Аддон можно скачать здесь и подробно изучить.
Этап один.
После изучения структуры самой программки, я скопировал ее в отдельную папку для экспериментов и распотрошил, извлек все файлы в одну папку. Их оказалось 32 штуки. Наступило время создать собственно INF-файл. Сначала создаем заголовок.
[Version]
Signature = "$WINDOWS NT$"
SetupClass = BASE
$WINDOWS NT$ стоит использовать вместо $CHICAGO$, мы же не делаем аддон для win95? Кроме указания на базовый класс установки больше в заголовке ничего не пишем, пока и не нужно. Затем создаем самую главную секцию нашего INF-файла - исполняемую:
[DefaultInstall]
CopyFiles = CopyMain, CopyConfig, CopyHelp, CopyHist, CopyLang, CopySkin, CopySound, CopyTools, CopyInf, RenToolsLang
ProfileItems = NL.AddShortcut
Эта секция не обязательно должна иметь такое скучное имя, но поверьте от того, что она есть вам хуже не будет.
Разбираем по строчкам: CopyFiles копирует файлы, попутно создавая нужные папки, ProfileItems добавляет ярлык программы. В моем случае (хороший стиль написания INF-файла) я воспользовался уже кем-то созданной папкой по адресу Пуск\Все программы\Утилиты. На первый взгляд все выглядит просто. Но, для того чтобы создать секции копирования, которые так красиво смотрятся в строке CopyFiles=, придется попотеть- создать все эти секции с перечислением файлов вручную. Вам никто не мешает проявить смекалку и, используя специальные утилитки, получить на руки в текстовом виде список файлов из папки куда вы их "распотрошили". Секции я поименовал в соответствии с названием папок аддона Copymain - корневая и т. д. Далее прописываем будущую структуру папок в секции [DestinationDirs].
Не буду вас утомлять и просто приведу ее:
[DestinationDirs]
CopyMain=16422, "Netlook"
CopyConfig=16422, "Netlook\Config"
CopyHelp=16422,"Netlook\Help"
CopyLang=16422,"Netlook\Languages"
CopySkin=16422,"Netlook\Skin"
CopySound=16422,"Netlook\Sound"
CopyTools=16422,"Netlook\Tools\Configurator"
RenToolsLang=16422,"Netlook\Tools\Configurator\Languages"
Здесь я поясню, почему так называется последняя секция. Оказалось, что создатель программы Netlook ничего не слышал про хороший стиль программирования и присвоил двум файлам в своей программе одинаковое имя. Вот и пришлось один из них переименовать (файлы-то лежат вместе), с тем чтобы далее, в секции [RenToolsLang] при копировании в отдельную папку, вернуть все обратно.
[RenToolsLang]
"russian.lng",russian2.lng,,4
И последняя секция, указывающая, откуда копировать [SourceDisksNames]. Я запаковал все файлы из одной папки в CAB-архив с гордым именем netlook.cab и прописал его в INF-файле:
[SourceDisksNames]
1="NetLook Files","netlook.cab",0
Создал секцию добавления ярлыка:
[NL.AddShortcut]
Name= "Netlook 2.3"
CmdLine= 16422,"Netlook",NetLook.exe
WorkingDir= 16422,"Netlook"
SubDir= "Утилиты"
Infotip= "Netlook 2.3"
Второй этап.
Поместив INF- и CAB-файлы рядом, я проверил, как устанавливается приложение. Хорошо устанавливается, клещами не вытянешь. На этом этапе мы и будем изобретать клещи - секции для удаления нашего приложения (uninstall). Сразу скажу, мне это далось нелегко. В теории (учебнике по INF-файлам) все выглядело просто. Указав в исполняемой секции AddReg= Секция добавления строк в реестр мы еще при установке приложения добавляем его в список установки/удаления программ. Сама секция незамысловата и подробно описана в Учебнике. Самая важная строка это
HKLM,"%Key%","DisplayName",,"Netlook 2.3"
HKLM,"%Key%","DisiplayIcon",,"16422,"Netlook",0"
HKLM,"%Key%","UninstallString",,"rundll32.exe advpack,LaunchINFSectionEx %17%\netlook.inf,NL.Uninstall"
нижняя запись, которая указывает, какую секцию выполнить в INF- файле при удалении программы. Наблюдательный человек сразу заметит, что путь к netlook.inf необычный, %17% = Windows\INF\. Для корректной отработки нам необходимо скопировать наш файл именно в эту директорию. Добавляем секции копирования
[CopyInf]
netlook.inf
и добавляем в
[DestinationDirs]
CopyInf=17 (Знаки процента в этой секции использовать нельзя)
Собственно секция, которая отвечает за удаление, должна выглядеть так: удаление файлов, удаление директорий, удаление записей в реестре, удаление ярлыков программы. У вас, наверняка, как и у меня, сразу мелькнула мысль: "А может просто удалить всю папку с файлами и подпапками и дело с концом?". Сразу огорчу - не получилось. Оговорюсь, что не получилось достичь этого методами, описанными в учебнике. Есть гораздо более действенные способы. См. Приложение 2. Тонкости использования INF файлов. По итогам консультаций на форуме пришлось создавать отдельные секции удаления файлов (по сути дублирование секций COPY). Зато результат был налицо - файлы удалялись. Дальше я создал секции удаления записей в реестре (чтобы сразу после удаления программы она исчезала из списка удаления программ), удаления ярлыка и удаления директорий. Все работало замечательно. Огорчало только, то что директории не удалялись. Учебник однозначно говорит, что вызвать DelDirs проще простого:
1) Вызвать из секции деинсталяции
Commandline="""%11%\rundll32.exe"" advpack,LaunchINFSection ""%17%\netlook.inf"",NL.DD,4"
2) Затем указать в секции саму команду
[NL.DD]
DelDirs=dirs
3) И уже в секции [dir] указать директорию, которую необходимо удалить. Не буду вас мучать, мне помогли добрые люди на форуме и средства автоматизации создания аддонов, которые мы решили здесь не рассматривать.
Оказалось, что во- первых DelDirs необходимо запускать только через RunPostSetupCommands, т. к. команда Run, которую я упорно использовал, принадлежит setupapi.dll, а DelDirs запускается через advapi.dll; во-вторых, необходимо было удалить всю структуру папок снизу. Только после этого мой скрипт заработал так, как надо.
Секции деинсталяции аддона:
[NL.Uninstall]
DelFiles=DelCopyMain, DelCopyConfig, DelCopyHelp, DelCopyHist, DelCopyLang, DelCopySkin, DelCopySound, DelCopyTools, DelCopyInf, DelRenToolsLang
DelReg=Dreg
ProfileItems = ShortcutD
RunPostSetupCommands=NL.AdinfCall
[NL.AdinfCall]
Commandline="""%11%\rundll32.exe"" advpack,LaunchINFSection ""%17%\netlook.inf"",NL.DD,4"
[NL.DD]
DelDirs=dirs
[dirs]
"%16422%\Netlook\Tools\Configurator\Languages"
"%16422%\Netlook\Tools\Configurator"
"%16422%\Netlook\Tools"
"%16422%\Netlook\Sound"
"%16422%\Netlook\Skin"
"%16422%\Netlook\Languages"
"%16422%\Netlook\Help"
"%16422%\Netlook\Config"
"%16422%\Netlook"
[Dreg]
HKLM,"%Key%"
[ShortcutD]
Name = "Netlook 2.3",0x00000002
SubDir = "Утилиты"
Этап третий.
Создание собственно аддона. Все, что мы делали ранее, это создание собственного инсталлятора для программы. Инсталлятор готов, можно использовать его на здоровье. Вспомним структуру аддонов и приступим. Копируем откуда-нибудь скелет аддона. Сразу же присваиваем главной папке аддона собственное имя, правим файл Addon.nfo, где пишем информацию, которую все равно никто не будет читать. Копируем в папку Files\Forcecopy CAB- и INF-файлы. Оттуда их проинтегрирует в i386 скрипт Petya V4sechkin.
Важно! Поскольку мы все делаем вручную, надо проверить папку i386 на предмет совпадений с нашими файлами, чтобы не перезаписать что-нибудь важное или просто принадлежащее системе. В любом случае при совпадениях имен система копирует свой родной файл из дистрибутива, а не "чужой".
К счастью, я нашел только нечто с именем NETLOOP.inf.
Теперь нам необходимо создать в корневой папке аддона три файла. Начнем по порядку. Сначала наш аддон будет скопирован из дистрибутива посредством Txtsetup.sif при помощи Dosnet.inf и только позднее будет обнаружен и установлен через Sysoc.inf. В такой последовательности я и предлагаю создавать файлы, не забывая о том, что в UpdatePack эти файлы без расширений. Здесь же в приложениях есть статья про Txtsetup. Поверьте, совсем не лишняя в багаже знаний.
Txtsetup
[SourceDisksFiles]
Netlook.inf = 100,,,,,,,20,0,0
Netlook.cab = 100,,,,,,_x,,3,3
При установке INF-файл копируется в Windows\INF\, а CAB-архив не копируется, так как это наш дистрибутив.
Dosnet
[Files]
d1,Netlook.inf
d1,Netlook.cab
*здесь d1 это папка i386.
Ну и собственно,
Sysoc
Netlook=ocgen.dll,OcEntry,Netlook.inf,,7
Вроде бы все готово. Однако если подумать, то в файле Txtsetup мы не скопировали наш CAB-файл. Обязательно надо переделать секцию, указывающую на источник копирования, чтобы сообщить программе установки, где искать CAB-файл.
[SourceDisksNames]
1="Netlook Files","netlook.cab",,"I386"
Но еще не все! Я, как и все новички, споткнулся на файле Sysoc. Запись Netlook=ocgen.dll,OcEntry,Netlook.inf,,7 означает, что будет исполнена секция [netlook] в файле netlook.inf. А моя исполняемая секция называлась DefaultInstall. Естественно, ничего не установилось. Кроме того, необходимо добавить в наш установочный файл секцию, указывающую Sysoc на то, что это "его" компонент, и команду для автоустановки аддона:
[Optional Components]
Netlook (указатель для sysoc на исполняемую секцию)
.....
[Netlook]
...
Modes=0,1,2,3
Также, после проверки работоспособности установщика удаляются записи о копировании INF-файла, так как Txtsetup.sif скопирует его самостоятельно.
Теперь аддон готов к интеграции в дистрибутив. Интегрируем, проверяем аддон, проверяем журнал событий и выполняем qfecheck, чтобы проверить отсутствие ошибок.
К содержанию
Текст автора сохранен. Перед разбором примера скачайте исходники .
Перед прочтением данного материала настоятельно рекомендуется ознакомиться с Руководством по работе с INF-файлами. В нём вы найдёте ответы на большинство возникающих вопросов.
Разберём пример создания аддона Punto Switcher (в дальшейшем PS). Я выбрал его для рассмотрения потому, что несмотря небольшой объём аддона, в нём присутствуют как секции копирования/деинсталляции файлов, так и секции добавления/удаления записей в реестр, ярлыков, регистрация/дерегистрация библиотек. Этих знаний вполне достаточно для изготовления 90% аддонов.
Проведение предварительной подготовки аддона доверим скрипту для создания секций копирования/удаления от XXXler. Создаём пустую папку, в которой хотим получить аддон. Назовём её, к примеру, Punto_sw. Запустив скрипт, выбираем в качестве исходной папку с файлами PS и заполняем поля:
- Корневая папка – путь, куда будет установлена программа, в данном случае Program Files (перед ней стоит её цифровое обозначение согласно dirids)
- Подкаталог – папка, которая будет создана в Program Files (C:\Program Files\Punto Switcher\)
- Название – имя программы в «Установке компонентов Windows»
- Подсказка – дополнительная информация при выборе программы в «Установке компонентов Windows»
- Иконка – иконка, которая будет отображена возле программы в «Установке компонентов Windows»
- Имя секции – идентификатор программы в системе (рекомендуемое имя до 8-и символов)
Нажимаем «Cоздать» и выбираем созданную на первом этапе папку Punto_sw. Ждём пару секунд, пока не откроется созданный INF-файл для дальнейшей, уже ручной, работы с ним.
Дальнейшая работа производится в любом текстовом редакторе.
1. Секция [punto_sw] приводится к следующему виду
[punto_sw]
OptionDesc="Punto Switcher"
Tip="Переключатель раскладок"
Modes=0,1,2,3
CopyFiles=punto_sw.Copy
;AddReg=Секции добавления в реестр
;DelReg =
;UnRegisterDlls=Секции регистрации библиотек
;ProfileItems=Секции создания ярлыков
SizeApproximation=502755
Uninstall=punto_sw.Uninstall
RegisterDlls меняем на UnRegisterDlls и добавляем DelReg (об этом ниже).
2. Приступаем к секции внесения записей в реестр.
Оговорюсь сразу, что разделы реестра, которые необходимо учитывать при изготовлении конкретного аддона, можно определить несколькими способами. Существуют специализированные программы для отслеживания обращения к реестру, но в данном материале я не буду заострять на этом внимание.
Все настройки программы хранятся по пути HKCU,"Software\Punto Switcher\2.5". Автозапуск PS происходит из HKCU,"Software\Microsoft\Windows\CurrentVersion\Run". Необходимо настроить установленный PS по своему усмотрению, экспортировать вышеназванные ветки реестра и конвертировать их в INF-формат (на этом останавливаться не будем, необходимая информация есть в шапке темы Авторам аддонов.
Возвращаемся к INF-файлу аддона. В его секции [punto_sw] находим строчку ;AddReg=Секции добавления в реестр. Снимаем комментарий «;» и присваиваем ей значение, например, punto_sw.AddReg (значение может быть любым, точка перед AddReg, как и само буквосочетание AddReg не обязательны, важно чтобы имя было уникальным в листинге INF-файла)
Получаем следующее:
[punto_sw]
OptionDesc="Punto Switcher"
Tip="Переключатель раскладок"
Modes=0,1,2,3
CopyFiles=punto_sw.Copy
AddReg= punto_sw.AddReg
;DelReg =
;UnRegisterDlls=Секции регистрации библиотек
;ProfileItems=Секции создания ярлыков
SizeApproximation=502755
Uninstall=punto_sw.Uninstall
В дальнейшем, я не буду подробно останавливаться на редактировании строк «шапки» INF-файла. Создаём в INF-файле соответствующую секцию [punto_sw.AddReg] (название её должно совпадать со значением директивы AddReg). Я привожу секцию из реального аддона (у вас она может отличаться в зависимости от ваших настроек программы).
[punto_sw.AddReg]
HKCU,"Software\Microsoft\Windows\CurrentVersion\Run","Punto Switcher",,"%16422%\Punto Switcher\ps.exe"
HKCU,"Software\Punto Switcher\2.5","Options",1,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,33,4c,37,44,31,38,63,\
67,00,00,00,00,56,e8,df,45,00,01,01,00,01,00,00,01,01,01,00,00,00,01,00,00,\
01,01,00,00,00,00,01,00,00,01,00,01,01,00,00,00,00,01,00,00,00,01,00,00,00,\
01,00,00,00,00,00,00,2c,01,00,00,2c,01,00,00,64,00,00,00,64,00,00,00,f4,01,\
00,00,5e,01,00,00,01,01,01,00,00,01,01,00,01,00,00,00,02,00,00,00
HKCU,"Software\Punto Switcher\2.5","Sound_0",,"%16422%\Punto Switcher\typerus.wav"
HKCU,"Software\Punto Switcher\2.5","Sound_1",,"%16422%\Punto Switcher\typeeng.wav"
HKCU,"Software\Punto Switcher\2.5","Sound_2",,"%16422%\Punto Switcher\switch.wav"
HKCU,"Software\Punto Switcher\2.5","Sound_3",,"%16422%\Punto Switcher\misprint.wav"
HKCU,"Software\Punto Switcher\2.5","Sound_4",,"%16422%\Punto Switcher\ru.wav"
HKCU,"Software\Punto Switcher\2.5","Sound_5",,"%16422%\Punto Switcher\en.wav"
HKCU,"Software\Punto Switcher\2.5","Sound_6",,"%16422%\Punto Switcher\switch.wav"
HKCU,"Software\Punto Switcher\2.5","Sound_7",,"%16422%\Punto Switcher\switch.wav"
HKCU,"Software\Punto Switcher\2.5","Sound_8",,"%16422%\Punto Switcher\switch.wav"
HKCU,"Software\Punto Switcher\2.5","Sound_9",,"%16422%\Punto Switcher\switch.wav"
HKCU,"Software\Punto Switcher\2.5","Sound_10",,"%16422%\Punto Switcher\switch.wav"
HKCU,"Software\Punto Switcher\2.5","Sound_11",,"%16422%\Punto Switcher\switch.wav"
HKCU,"Software\Punto Switcher\2.5","Sound_12",,"%16422%\Punto Switcher\switch.wav"
HKCU,"Software\Punto Switcher\2.5","Sound_13",,"%16422%\Punto Switcher\switch.wav"
HKCU,"Software\Punto Switcher\2.5","Sound_14",,"%16422%\Punto Switcher\switch.wav"
HKCU,"Software\Punto Switcher\2.5","Sound_15",,"%16422%\Punto Switcher\replace.wav"
HKCU,"Software\Punto Switcher\2.5","SoundState_0",0x10001,03,00,dc,05
HKCU,"Software\Punto Switcher\2.5","SoundState_1",0x10001,03,00,d0,07
HKCU,"Software\Punto Switcher\2.5","SoundState_2",0x10001,03,00,c4,09
HKCU,"Software\Punto Switcher\2.5","SoundState_3",0x10001,03,00,bc,02
HKCU,"Software\Punto Switcher\2.5","SoundState_4",0x10001,03,00,e8,03
HKCU,"Software\Punto Switcher\2.5","SoundState_5",0x10001,03,00,d0,07
HKCU,"Software\Punto Switcher\2.5","SoundState_6",0x10001,03,00,d0,07
HKCU,"Software\Punto Switcher\2.5","SoundState_7",0x10001,03,00,d0,07
HKCU,"Software\Punto Switcher\2.5","SoundState_8",0x10001,03,00,d0,07
HKCU,"Software\Punto Switcher\2.5","SoundState_9",0x10001,03,00,d0,07
HKCU,"Software\Punto Switcher\2.5","SoundState_10",0x10001,03,00,d0,07
HKCU,"Software\Punto Switcher\2.5","SoundState_11",0x10001,03,00,dc,05
HKCU,"Software\Punto Switcher\2.5","SoundState_12",0x10001,03,00,a4,06
HKCU,"Software\Punto Switcher\2.5","SoundState_13",0x10001,03,00,6c,07
HKCU,"Software\Punto Switcher\2.5","SoundState_14",0x10001,03,00,f4,01
HKCU,"Software\Punto Switcher\2.5","SoundState_15",0x10001,03,00,90,01
HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce","msimtf",0x20000,"regsvr32.exe /s /u %11%\msimtf.dll"
HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce","msctf",0x20000,"regsvr32.exe /s /u %11%\Msctf.dll"
О двух последних строчках я расскажу ниже при рассмотрении дерегистрации библиотек. Поскольку PS предназначен для замены стандартного переключателя раскладок клавиатуры, то стандартный (CTFMON.EXE) в автозагрузке нам не нужен. Его запуск в системе происходит через реестр, и эти сточки необходимо удалить. Создаём в «шапке» INF-файла директиву DelReg = CTF.DelReg и пишем в INF-файле:
[CTF.DelReg]
HKLM,"Software\Microsoft\Windows\CurrentVersion\Run","CTFMON.EXE"
HKCU,"Software\Microsoft\Windows\CurrentVersion\Run","CTFMON.EXE"
HKU,".DEFAULT\Software\Microsoft\Windows\CurrentVersion\Run","CTFMON.EXE"
3. Директива создания ярлыков - ProfileItems
Редактируем её в «шапке» INF-файла таким образом: ProfileItems = punto_sw.AddShortcut. Затем создаём в INF-файле секцию [punto_sw.AddShortcut].
[punto_sw.AddShortcut]
Name = "Punto Switcher 2.9"
CmdLine = 16422,"Punto Switcher" ps.exe
SubDir = "Punto Switcher"
WorkingDir = 16422,"Punto Switcher"
Name – имя ярлыка
CmdLine – путь к исполняемому файлу (строка расшифровывается, как C:\Program Files\ Punto Switcher\ps.exe)
SubDir – подпапка в меню «Программы» (Пуск\Программы\Punto Switcher\) эта строчка может отсутствовать, тогда ярлык будет создан в Пуск\Программы\
WorkingDir – рабочая директория (C:\Program Files\ Punto Switcher\)
Для многих простейших аддонов вышеописанной информации достаточно, но в случае с PS необходимо также рассмотреть дерегистрацию файлов стандартного переключателя раскладок. Если это не выполнить, то CTFMON.EXE будет заново прописан системой в автозагрузку.
4. Дерегистрация библиотек
Создаём в «шапке» строчку UnRegisterDlls = CTF.UnRegister а в INF-файле прописываем:
[CTF.UnRegister]
11,,msimtf.dll
11,,Msctf.dll
Цифра 11, согласно dirids, означает, что файл находится в System32. Если бы файл находился, скажем, в Windows, то строчки выглядели бы таким образом - 10,,msimtf.dll. Возможна ситуация, когда файл находится, например, в Program Files\Prog1\file.dll, в таком случае отмена регистрации выглядела бы так: 16422,Prog1,file.dll
И вернёмся к двум последним строчкам нашей секции AddReg:
HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce","msimtf",0x20000,"regsvr32.exe /s /u %11%\msimtf.dll"
HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce","msctf",0x20000,"regsvr32.exe /s /u %11%\Msctf.dll"
Они, по сути, также выполняют дерегистрацию библиотек, но уже после перезагрузки, в данном случае в момент времени Т13. Двойная отмена регистрации необходима только в конкретном аддоне, потому что система регистрирует msimtf.dll и Msctf.dll заново, а в большинстве случаев достаточно однократной дерегистрации.
5. Теперь приступим к секциям деинсталляции аддона.
Для PS недостаточно удалить только файлы – необходимо так же восстановить работу стандартного переключателя раскладок. В процессе удаления будет участвовать секция [punto_sw.Uninstall] и дальше по тексту, теперь её будем именовать «шапкой». Итак, редактируем «шапку» следующим образом:
[punto_sw.Uninstall]
DelFiles = punto_sw.Del
ProfileItems = punto_sw.DelShortcut
DelReg = punto_sw.DelReg
AddReg = CTFMON.Restore
RegisterDlls = CTF.dll.Restore
С директивой DelFiles понятно – она вызовет соответствующую секцию со списком удаляемых файлов. ProfileItems – удаляет ярлык, но секции удаления ярлыков несколько отличаются от секций создания. Здесь всё просто - достаточно указать имя ярлыка и подпапку, в которой он находится.
Приведу пример удаления того же ярлыка, который мы рассматривали в создании.
[punto_sw.DelShortcut]
Name = "Punto Switcher 2.9",0x00000002
SubDir = "Punto Switcher"
Далее в «шапке» INF-файла идут уже знакомые директивы AddReg и DelReg, а так же директива RegisterDlls, которая восстановит регистрацию файлов msimtf.dll и Msctf.dll. Секции будут выглядеть так:
[punto_sw.DelReg]
HKCU,"Software\Microsoft\Windows\CurrentVersion\Run","Punto Switcher"
HKCU,"Software\Punto Switcher"
[CTFMON.Restore]
HKCU,"Software\Microsoft\Windows\CurrentVersion\Run","CTFMON.EXE",,"%11%\ctfmon.exe"
HKU,".DEFAULT\Software\Microsoft\Windows\CurrentVersion\Run","CTFMON.EXE",,"%11%\CTFMON.EXE"
[CTF.dll.Restore]
11,,msimtf.dll,1
11,,Msctf.dll,1
Удаление записей реестра, так же как и ярлыков, отличается от добавления в реестр. Необходимо указать только корневой раздел, в данном случае, HKCU,"Software\Punto Switcher", и она будет удалена со всем подразделами. Секцией [CTFMON.Restore] мы восстанавливаем в автозагрузке стандартный переключатель раскладок, а в секции [CTF.dll.Restore] регистрируем связанные с ним библиотеки.
Следущие секции участвуют в деинсталляции аддона.
[punto_sw.AdvInfCall]
Commandline="""%11%\rundll32.exe"" advpack,LaunchINFSection ""%17%\punto_sw.inf"",punto_sw.Uninstal.DelDirs,4"
TickCount=500
[punto_sw.Uninstal.DelDirs]
DelDirs=punto_sw.DelDirs
[punto_sw.DelDirs]
"%16422%/Punto Switcher"
На этом подробно останавливаться не будем, их вполне корректно создаёт Скрипт для создания секций копирования/удаления файлов, с которого мы начали изготовление аддона.
Аддон готов. Чтобы привести его к привычному виду, нужно удалить файлы PreCompile.exe, PreCompile.lst и папку src. Переименовать файл upd в upd.cmd и запустить.
Общие замечания:
- Я не делал привязку аддона к 3rdParty, чтобы упростить описание.
- При установке/удалении аддона необходима перезагрузка компьютера, но автоматизацию этого процесса я рассматривать не стал. Посмотрите, как это реализовано в аддоне DrWeb (при установке/удалении SpiderGuard из компонентов Windows запрашивается перезагрузка).
- В секции копирования файлов рассмотренного аддона вы встретите такие строчки:
correct.dll,,,4
"ChooseLayouts.exe",ChooseLa.exe,,4
Первая копирует файл correct.dll в директорию назначения в таком же виде, в каком он находится в CAB-архиве аддона, а вторая читается так: скопировать файл ChooseLa.exe в директорию назначения и переименовать его в ChooseLayouts.exe. Это сделано для соответствия имён файлов в CAB-архиве формату 8.3.
- Если путь к папке или файлу содержит пробелы, не забывайте заключать его в кавычки.
Пример был взят отсюда.
К содержанию
В данном примере рассмотрим устройство аддона-конструктора. В основе аддона лежит возможность создания "тихой" установки K-lite с помощью ключа -unnatended, распознаваемого инсталлятором. После запуска установки с этим ключом происходит эмуляция установки с обычном набором диалоговых окон: выбор папки установки, выбор устанавливаемых кодеков. В результате мы получаем набор файлов для автоматической установки программы: klmcp.ini, klmcp.bat и сам дистрибутив, переименованый в klmcp.exe для краткости.
Автоустановка запускается через командный файл который состоит из одной строки, запускающей установку в "тихом" режиме и подключающей INI-файл с настройками:
@klmcp.exe /verysilent /norestart /dir="%ProgramFiles%\K-Lite Codec Pack" /LoadInf=".\klmcp.ini"
В принципе, приведенной информации достаточно для того, чтобы создать аддон типа SVCPACK, запаковав файлы Winrar в виде SFX архива с "тихим" запуском батника при распаковке.
Для создания же конструктора лучше сократить количество действий пользователя при его сборке. Автор аддона рассудил так же и решил создать комбинированный конструктор (Sysoc+svcpack). Посмотрим на структуру папок готового аддона:
KLiteMega
+Files
-+ForceCopy
--+SVCPACK
---klinst.exe - установка K-lite
--klmcp.bat
--klmcp.exe > файлы автоустановки K-lite
--klmcp.ini
--KLITE.IN_ - INF-файл для копирования файлов на текстовом этапе
-conflict
-dosnet
-Run
-sysoc
-txtsetup > конфигурационные файлы
-addon.nfo
На текстовом этапе файлы аддона копируются во временную папку %Windir%\Temp\KL:
Klite.inf
.....
[DestinationDirs]
klite.Copy=10,"Temp\KL"
[klite.Copy]
klmcp.bat,,,4
klmcp.exe,,,4
klmcp.ini,,,4
Фактически это все, что делается на текстовом этапе через Sysoc.
Установка кодеков происходит на Т13, для чего через Run создан пустой SFX-архив 7-zip с командами установки в коментарии архива.
Klite.exe
RunProgram="hidcon:\"klmcp.bat\""
InstallPath="%SystemRoot%\\Temp\\KL"
GUIMode="2"
Delete="%SystemRoot%\\Temp\\KL"
Как видно, ничего сложного в этом нет. Запускается командный файл в скрытом режиме, в качестве папки источника для установки указана "%SystemRoot%\\Temp\\KL", куда на текстовом режиме установки Windows были скопированы необходимые файлы. Затем временная папка удаляется. Это весь аддон. Файлы установки, лежащие в папке аддона Files\ForceCopy, можно заменять новыми версиями K-lite по мере необходимости.
Можно спорить со способом реализации аддона, выбранным автором, но аддон работает, и это - главное.
К содержанию
Теперь, когда вы познакомились с основными командами XPlode, давайте рассмотрим конфигурацию на примере плагина XPlodeGFXInstall.x4d. Загрузите файл по этой ссылке - в коде вы найдете подробные комментари. В примере демонстрируется, каким образом можно задействовать различные команды XPlode, которые подробно описаны ниже.
[data] AutoPartition = 0 floppyless = "1" msdosinitiated = "1" UnattendedInstall = "Yes" OriSrc = "\\%SERVERNAME%\RemInst\%INSTALLPATH%\%MACHINETYPE%" OriTyp = "4" LocalSourceOnCD = 1 DisableAdminAccountOnDomainJoin = Yes
[SetupData] OsLoadOptions = "/noguiboot /fastdetect" SetupSourceDevice = "\Device\LanmanRedirector\%SERVERNAME%\RemInst\%INSTALLPATH%"
[Unattended] UnattendMode = FullUnattended OemPreinstall = Yes TargetPath = \WINDOWS OemSkipEula = yes InstallFilesPath = "\\%SERVERNAME%\RemInst\%INSTALLPATH%\%MACHINETYPE%" LegacyNIC = 1 Repartition = No UnattendSwitch = "Yes" WaitForReboot = "No" OemFilesPath = "\\%SERVERNAME%\RemInst\%INSTALLPATH%\%MACHINETYPE%\$\" OemPnPDriversPath = "Drivers\000_Chipset\;Drivers\001_Network\;Drivers\002_Video\;Drivers\003_Sound\" DriverSingingPolicy = Ignore ProgramFilesDir = "C:\Program Files"
[UserData] ProductKey = *****-*****-*****-***** FullName = "****" OrgName = "%ORGNAME%" ComputerName = unattend
[GuiUnattended] OemSkipWelcome = 1 OemSkipRegional = 1 TimeZone = 180 AdminPassword = "*"
[TapiLocation] CountryCode = 7 AreaCode = ****
[RegionalSettings] LanguageGroup = 1,5 SystemLocale = 00000419 UserLocale = 00000419 InputLocale = 0409:00000409,0419:00000419
[Branding] BrandIEUsingUnattended = Yes
[URL] Home_Page = http://www.yandex.ru Help_Page = http://www.yandex.ru Search_Page = http://www.yandex.ru
[Proxy] Proxy_Enable = 0 Use_Same_Proxy = 1
[Networking] InstallDefaultComponents = No
[NetAdapters] Adapter1 = params.Adapter1
[params.Adapter1] INFID = *
[NetClients] MS_MSClient = params.MS_MSClient
[NetServices] MS_Server=params.MS_PSched
[Identification] JoinDomain = %MACHINEDOMAIN% DoOldStyleDomainJoin = Yes
[NetProtocols] MS_TCPIP = params.MS_TCPIP
[params.MS_TCPIP] AdapterSections = params.MS_TCPIP.Adapter1
[params.MS_TCPIP.Adapter1] SpecificTo = Adapter1 DHCP = No IPAddress = ***.***.***.*** SubnetMask = ***.***.***.*** DNSServerSearchOrder = ***.***.***.*** WINS = No NetBIOSOptions = 0
[WindowsFirewall] Profiles = WindowsFirewall.TurnOffFirewall
[WindowsFirewall.TurnOffFirewall] Mode = 0
[Components] msmsgs = off msnexplr = off zonegames = off
[Shell] DefaultStartPanelOff = Yes
[RemoteInstall] Repartition = No UseWholeDisk = Yes
[OSChooser] Description="Microsoft Windows XP Professional RU" Help="Automatically installs Microsoft Windows XP Professional RU without prompting the user for input." LaunchFile="%INSTALLPATH%\%MACHINETYPE%\templates\startrom.com" ImageType=Flat Version="5.1 (0)"
DEL /F /Q "%AllUsersProfile%\Desktop\Adobe Reader 8.lnk"
DEL /F /Q "%AllUsersProfile%\Desktop\Microsoft Keyboard.lnk"
RD /S /Q "%systemdrive%\temp\"
RD /S /Q "%systemdrive%\install\"
Отрисовывается бэкграунд картинка и на нее накладываются разные элементы:
Текстовые поля и поля слоев (можно создавать прямоугольные поля с определенным цветом фона и цветом шрифта)
Пункты меню. Самый важный для нас элемент, позволяет создавать текстовые пункты меню, которые могут менять цвет своего фона и текста при выборе.
К сожалению, шрифт всего один и поменять его нельзя. Но есть обходной вариант - использование цветовой маски. С помощью нее можно использовать любой однотоновый текст или графический элемент фоновой картинки в качестве элемента меню (об этом напишу дальше).
Замечу что перевод программы сделан очень некачественно, смысл многих надписей теряется, поэтому я буду использовать в примерах английский интерфейс, добавляя в скобках значение из русского перевода.
Сначала создается пакетный файл RunOnceEx.cmd, основным назначением которого является импорт записей в системный реестр. Программы, которые необходимо установить, и команды для их установки указываются в виде параметров реестра. Импорт параметров в реестр происходит за 12 минут до окончания установки Windows (Т-12) путем запуска файла RunOnceEx.cmd из файла cmdlines.txt. Установка программ происходит при первом входе в систему первого пользователя. В остальном же файл RunOnceEx.cmd является обычным пакетным файлом, поэтому из него также можно выполнять любые команды, которые вы хотите запустить на Т-12.
Компьютерный мир обрел принципиально новую технологию удаленной загрузки – предзагрузочную среду исполнения PXE (Pre-Boot eXecution Environment). PXE дает возможность организациям использовать существующую инфраструктуру TCP/IP совместно с протоколом DHCP для обнаружения в сети серверов удаленной установки ОС. Воспользоваться преимуществами технологии удаленной загрузки, входящей в состав Windows 2000, могут системы, соответствующие спецификациям Net PC и PC98, а также компьютеры, оборудованные сетевыми картами, которые поддерживаются диском удаленной загрузки RIS.
При включении клиентского компьютера с возможностью загрузки на основе технологии PXE, ПЗУ удаленной загрузки PXE или загрузочный диск RIS запрашивают IP-адрес у сервера DHCP, следуя стандартному механизму обнаружения DHCP. В процессе начального запроса обнаружения DHCP клиент информирует о своей способности загрузиться посредством PXE, тем самым информируя серверы RIS в сети о своей готовности к установке операционной системы. Любой доступный в сети сервер RIS может ответить на запрос, предоставив клиенту свой IP-адрес и имя загрузочного файла, который должен запросить клиент, нуждающийся в облуживании данным сервером RIS.
На Риуснке 2 представлена диаграмма, описывающая поэтапный процесс, через который проходит ПЗУ удаленной загрузки PXE во время каждого запроса сетевой загрузки службы.
Рисунок 2 – Последовательность загрузочного процесса для ПЗУ удаленной загрузки PXE
Начиная с седьмого этапа, процесс на стороне клиента может различаться в зависимости от производителя сервера RIS, отвечающего на запросы клиента на обслуживание. Следующий раздел подробно описывает функцию удаленной установки ОС, которая является частью Windows 2000 Server.
На Рисунке 3 представлен принцип работы удаленной установки ОС. Ниже приводятся подробное описание каждого этапа процесса.
Рисунок 3 – Архитектура служб удаленной установки
Процесс обращения к серверу RIS и выбора образа для установки ОС состоит из нескольких этапов. Ниже описана последовательность событий, которые происходят при подключении к сети клиентского компьютера с возможностью загрузки на основе технологии PXE и его обслуживании сервером RIS.
Для выполнения удаленной установки ОС:
1. | Когда включается питание клиентского компьютера, способного загружаться по технологии PXE и подключенного к сети, он отправляет запрос на сетевое обслуживание. Частью этого запроса является пакет обнаружения DHCP, отправляемый в сеть. Пакет используется для запроса IP-адреса ближайшего сервера DHCP, IP-адреса сервера RIS, а также для отправки GUID - глобального уникального идентификатора компьютера (GUID хранится в BIOS компьютера, соответствующего спецификациям PC98 или Net PC). Сервер DHCP отвечает на запрос, предоставляя клиенту свой IP-адрес. Также на запрос отвечает любой доступный сервер RIS, предоставляя свой IP-адрес и имя загрузочного файла, который клиент должен запросить в случае, если данный сервер RIS будет выбран клиентом в качестве обслуживающего. Пользователю компьютера предлагается нажать клавишу F12 для начала обслуживания клиента данным сервером RIS. |
2. | Сервер RIS, используя службу BINL, должен опросить службу каталогов Active Directory на предмет наличия заранее созданной учетной записи компьютера, соответствующей данному клиенту. Служба BINL проверяет наличие учетной записи, сверяя идентификатор GUID, отправленный клиентом на первом этапе, с записями в службе каталогов Active Directory. |
3. | Если существование учетной записи компьютера подтверждается, происходит загрузка мастера установки клиентов (Client Installation Wizard, CIW) на клиентский компьютер, и пользователю предлагается выполнить вход в сеть. |
4. | Как только пользователь успешно вошел в сеть, службы удаленной установки ОС сверяются со службой каталогов Active Directory, определяя существование учетной записи пользователя и правильность введенного пароля. Затем службы удаленной установки ОС проверяют соответствующие им настройки групповой политики, чтобы определить параметры установки ОС, доступные данному пользователю. Кроме того, определяется, какие образы операционной системы будут предложены пользователю, и соответствующие опции становятся доступны в интерфейсе мастера установки клиентов. |
5. | Если для пользователя определен единственный вариант установки и образ операционной системы, то никакого выбора в мастере установки клиентов ему не предоставляется. Мастер просто информирует пользователя о том, что в процессе установки жесткий диск будет отформатирован и данные, хранящиеся на нем, будут удалены. Затем пользователь получает предложение начать удаленную установку операционной системы. |
6. | Процесс установки ОС начинается после того, как пользователь подтверждает свой выбор в окне, отображающем сводку параметров установки. Если на этом этапе учетная запись компьютера в службе каталогов Active Directory отсутствует, служба BINL создает такую учетную запись, автоматически задавая имя компьютера. Установка операционной системы на локальный компьютер производится в автоматическом (unattended) режиме. Иными словами, во время установки пользователю не предоставляется возможности выбора установки ОС. |
С точки зрения конечного пользователя процесс удаленной установки ОС прост и понятен. Администратор проводит пользователя через процесс инсталляции операционной системы, заранее конфигурируя доступные пользователю параметры установки. Также администратор может контролировать предоставляемые в распоряжение пользователя образы ОС, тем самым обеспечивая успешную установку операционной системы из образа, предназначенного для конкретного пользователя.
Наверх страницы
Заходим в каталог SYSTEM32 (обычно путь для всех примерно одинаковый - C:\Windows\System32).
Копируем файл logonui.exe в файл myui.exe, таким образом мы создадим копию оригинального файла и не будем делать ничего, чему бы могла возразить система (файл myui.exe должен также находиться в папке SYSTEM32)
Открываем файл myui.exe программой для редактирования ресурсов Restorator.
Эта страница расписывает установку Windows по минутам, объясняя что происходит на каждом из этапов. Т-39 означает за 39 минут до окончания установки, Т-13 означает за 13 минут до окончания установки и т. д. Жирным выделены минуты, на которых можно запускать собственные команды.
Последний раздел программы Office Customization Tool посвящен настройке почтовой программы Microsoft Outlook.
Рисунок 11 – Настройка профиля Outlook
На странице Outlook profile доступны следующие параметры.
Использовать существующий профиль (Use existing profile). Если профиль отсутствует, при первом запуске Outlook пользователю будет предложено создать новый профиль.
Изменить профиль (Modify profile). Если выбран этот параметр, на следующих страницах программы Office Customization Tool Вы сможете сконфигурировать изменения, которые необходимо внести в существующий профиль по умолчанию. Если профиль по умолчанию отсутствует, Outlook создает новый профиль на основе указанных Вами настроек. Также Вы можете указать имя профиля, к которому должны применяться указанные Вами настройки, установив переключатель в положение Define changes to profile named.
Новый профиль (New profile). Вы можете настроить новый профиль, который Outlook будет использовать в качестве профиля по умолчанию для всех пользователей (требуется указать имя профиля).
Применить файл профиля Outlook (Apply PRF). Вы можете импортировать файл профиля Outlook (PRF-файл), который будет использоваться в качестве профиля по умолчанию.
Примечание. Настроить параметры на трех следующих страницах программы Office Customization Tool можно только в том случае, если на странице Outlook profile Вы установили переключатель в положение Modify profile или New profile.
Знаете ли Вы способ быстрого развертывания 50 настольных систем Windows 2000 Professional со всем необходимым программным обеспечением? Будучи консультантом в крупной коммуникационной компании, я столкнулся с подобной проблемой и решил автоматизировать процесс. Раньше я много читал о технологии сервера сценариев Windows (Windows Script Host, WSH), и, наконец, пришло время применить эти знания на практике.
Чтобы значительно упростить установку и конфигурирование настольных систем, я использовал следующие инструменты: программу для создания образа диска, утилиту Sysprep компании Майкрософт, а также базовые сведения о языке сценариев WSH. Разработанный мной процесс состоит из четырех основных этапов: создание стандартного образа жесткого диска, написание сценария, выполняющего некоторые задачи установки, подготовка образа диска для клонирования и клонирование образа на рабочие станции. Вы можете использовать на практике приведенные в этой статье процедуры и сценарии для оптимизации процесса развертывания рабочих станций (предварительно изменив код, исходя из Ваших условий).
Наверх страницы
HFSLIP. Руководство здесь, но только на английском языке (читать не обязательно).
nLite . Руководство по ее использованию обязательно читать здесь.
Установочный диск Windows 2000 SP4 RUS. Примечание. Используйте только лицензионное программное обеспечение.
Update Rollup 1 for Win2000 SP4.
Internet Explorer 6.0 Service Pack 1 Russian
Apr2006 DirectX9c
Media Player 9, WindowsMedia9-KB891122-x86-Global-ENU
Кроме того, любые другие критические обновления для Windows 2000 выпущенные после SP4, с учетом языковой (!) версии и версии встроенного ПО (теперь у Вас IE6sp1, DX9, WMP9). Думаю Вы уже знаете, где их брать, если не знаете, то вам сюда - там есть прямые ссылки на англоязычные версии обновлений и указания в какие папки их помещать. Но не советую отвлекаться :)
Используя простой метод, вы установите все компоненты Office по умолчанию (это примерно 700Mb на жестком диске, если мне не изменяет память). Подробнее...
А. Его надо прожечь на CD/DVD. В программе для записи (Nero, Easy Meadia Creator и т.д.) откройте ISO образ (CTRL+O) и прожигайте. Можете сначала протестировать образ на виртуальной машине.
А. Да, начиная с версии 1.0 RC4. Добавьте драйверы и создайте ISO заново.
A.
Сохраните ваш графический файл как bliss.jpg (именно этот файл обоев ставится системой по умолчанию).
Запустите из командной строки команду makecab bliss.jpg (не забудьте указать правильный путь к файлу).
Получившийся файл bliss.jp_ скопируйте в директорию i386 вашего дистрибутива и согласитесь на перезапись.