Основы автоматизация работы Windows

Автор работы: Пользователь скрыл имя, 27 Июня 2012 в 09:22, лекция

Краткое описание

Немаловажной частью оптимизации работы на компьютере является автоматизация повседневных задач, которые могут перед вами возникнуть. Мы рассмотрим способы автоматизации работы с реестром, файловой системой и отдельными компонентами операционной системы Windows при помощи различных методов: информационных файлов, сервера сценариев Windows, инструментария управления Windows или при помощи специальных программ командной строки, поставляемых вместе с операционной системой Windows XP.

Прикрепленные файлы: 1 файл

Конфигур ПК Лекц 1.doc

— 78.50 Кб (Скачать документ)


4. Основы автоматизация работы Windows

Немаловажной частью оптимизации работы на компьютере является автоматизация повседневных задач, которые могут перед вами возникнуть. Мы рассмотрим способы автоматизации работы с реестром, файловой системой и отдельными компонентами операционной системы Windows при помощи различных методов: информационных файлов, сервера сценариев Windows, инструментария управления Windows или при помощи специальных программ командной строки, поставляемых вместе с операционной системой Windows XP.

При этом внимание будет уделено не только способам автоматизации различных задач, но и их ручному выполнению, чтобы пользо­ватель смог понять, что для него лучше — написать сценарий, проде­лывающий работу, или просто самостоятельно ее выполнить, не тратя драгоценное время на автоматизацию.

В этом разделе опишем начальные сведения о таких возможностях автоматизации управления Windows, как информационные файлы (INF-файлы), сервер сценари­ев Windows, объектные модели WSH, FSO и т. д., а также основы работы с объект­ной моделью WMI. Приведенная информация является лишь вводной частью в технологии автоматизации, и в ней мы рассмотрим только основы работы с этими возможностями Windows.

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

Этот раздел содержит основные нюансы, которые могут быть незнакомы даже пользо­вателям, не первый год применяющим для своей работы язык сервера сценариев Windows (к объектной модели WMI и INF-файлам это также относится). Следующий раздел, во-первых, описывает способы создания сценариев, начиная от более про­стого и заканчивая более сложным, а во-вторых, большинство стандартных функций VBScript, способы использования некоторых возможностей объектных моделей Windows и наиболее интересные свойства и методы WMI. Поскольку в лекции нельзя привести действительно полноценные сценарии (из-за их большого размера: напри­мер, стандартный сценарий pagef ileconfig.vbs, поставляемый вместе с операци­онной системой, состоит из 56 страниц текста), было решено в качестве примеров использовать сценарии, выполняющие какие-либо функции, при этом удаляя из их кода части, несущественные для описываемого материала. Поэтому для полного понимания приведенной в лекции информации рекомендуется проанализировать дополни­тельные сценарии, расположенные на компакт-диске, прилагаемом к книге.

4.1. Работа с INF-файлами

Информационные файлы используются для конфигурирования устройств и ceтевых компонентов и поставляются вместе с ними. Каждое новое устройство, вы­пускаемое на мировой рынок, в лучшем случае должно иметь соответствующие INF-файлы, явным образом определяющие ресурсы и файлы, необходимые для поддержки данного класса устройств. INF-файлы могут также использоваться для создания сценариев установки, автоматически запускаемых во время помещения компакт-диска в привод.

Синтаксис INF-файлов базируется на трех правилах, в чем-то подобных прави­лам синтаксиса INI-файлов. Имена разделов заключаются в квадратные скобки и должны быть уникальными в пределах одного файла. Подразделы в пределах раздела от первого правила не зависят, но зависят от порядка следования. Част­ные разделы INF-файлов не разбираются Windows (под частными понимаются раз­делы, ссылка на которые не указана ни в одном ключевом слове INF-файла).

Раздел [version]

Самым первым разделом, который должен быть определен в любом INF-файле, является раздел [version]. Он хранит заголовок файла и класс устройств, под­держиваемых этим файлом. Каждый INF файл должен начинаться с заголовка. Он определяет версию INF-файла и операционной системы, для которой этот файл написан. Он также определяет, является ли данный информационный файл кор­ректным и используется ли он для установки компонентов Plug and Play. Раздел [version] может включать в себя следующие ключевые слова.

o        Signature — определяет сигнатуру версии Windows, для которой создан этот файл. При обработке сигнатуры Windows XP не различает строчных и про­писных букв, поэтому такие ее значения, как $CHICAGO$ и $Chicago$, яв­ляются эквивалентными. Для х86-процессоров существуют две сигнатуры версии Windows: $WIND0WS  NT$ и $CHICAGO$.

              Первая из них определяет, что информационный файл был написан специаль­но для операционных систем линейки Windows NT, то есть в операционных си­стемах Windows 9x данный файл работать не будет.

              Сигнатура $CHICAGO$, в свою очередь, говорит о том, что данный информаци­онный файл был написан для операционных систем семейства Windows 9x. При этом данное обстоятельство никак не отразится на поддержке INF-файла опера­ционными системами семейства Windows NT, то есть INF-файлы с такой сиг­натурой будут работать во всех операционных системах Windows. Именно по­этому в примерах данной книги будет использоваться сигнатура $CHICAGO$.

o        Class — определяет в реестре класс для устройства, которое поддерживается данным файлом (возможные классы устройств и их настройки описываются в вет­ви реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class), и указывает, что файл используется для устройств, поддерживающих Plug and Play. Вот некоторые примеры значений данного ключевого слова: Adapter, Cdrom, Display, Keyboard, Media, Modem, Monitor, Mouse, Ports, Printer, System. Эта запись является необязательной, и, если она отсутству­ет, считается, что данный информационный файл предназначен для установки программных компонентов.

o        SetupClass — указывает, что INF-файл будет загружен программой установ­ки. Если файл не добавляет никаких компонентов оборудования, а использу­ется для установки программного обеспечения, то следует использовать значе­ние BASE данного ключевого слова.

o        Provider — необязательное ключевое слово, которое указывает имя создате­ля INF-фай-ла или компанию, создавшую оборудование, устанавливаемое им.

o        ClassGUID — также необязательное ключевое слово, при помощи которого в реестр будет записан идентификатор GUID для установленного этим файлом устройства.

o        LayoutFile — необязательное ключевое слово. Оно указывает имя второго INF-файла, который будет содержать информацию о расположении установочных файлов (то есть определять, откуда следует брать файлы), и заменяет собой разделы [SourceDisksNames] и [SourceDisksFiles] информационного файла.

o        AdvancedINF — это ключевое слово говорит о том, что INF-файл является рас­ширен-ным. Расширенные INF-файлы впервые появились в Windows 98. Они поддерживают больше возможностей, чем стандартные информационные фай­лы, и будут описаны далее.

Существуют две версии INF-файлов: обычная и расширенная. Как мы узнали выше, чтобы создать расширенный INF-файл, необходимо добавить в блок [version] специальную строку, начинающуюся с ключевого слова AdvancedINF. Например, ниже приведен пример блока версии для расширенного INF-файла:

[version]

Signature="$CHICAGO$"

              AdvancedINF=2.5,"Эта строка будет выводиться, если  библиотека advpack.dll не найдена"

Для работы расширенного INF-файла необходима библиотека advpack.dll, расположен-ная по умолчанию в каталоге %systemroot%\SYSTEM32. Если перед на­чалом выполнения расширенного INF-файла система не найдет данной библиоте­ки, то она выведет сообщение, указанное в ключевом слове AdvancedINF после запятой (перед запятой указывается версия библиотеки advpack.dll, необходимая для установки файла). После этого выполнение INF-файла будет прекращено.

Другой особенностью расширенных INF-файлов является то, что их нельзя выпол­нять с помощью контекстного меню. Выбор пункта Установить контекстного меню ни к чему не приведет. Чтобы выполнить расширенный INF-файл, необходимо воспользоваться командой rundll32.ехе ADVPACK.dll, LaunchINFSectionEx «имя файла», «имя раздела»,      «имя САВ-файла», «флаг».

o        Имя файла — в данной команде определяет путь к вашему INF-файлу и его имя.

o        Имя раздела — определяет название раздела, с которого будет начинаться выполнение расширенного INF-файла. С давних времен повелось, что начальный раздел должен называться [DefaultInstall], хотя это и необязательно.

Имя САВ-файла — является необязательным и определяет САВ-файл, хранящий все файлы, необходимые для работы устанавливаемого INF-файла. Иначе говоря, данный САВ-файл должен хранить все файлы, копируемые или перемещаемые с помощью INF-файла

o        Флаг — может иметь следующие значения (является битовой маской, то есть приведенные ниже значения могут быть просуммированы):

       4 — не выводить промежуточные результаты установки INF-файла;

       1б — перезагрузить оболочку операционной системы после установки INF-файла;

       32 — выполнить резервное копирование данных перед установкой;

       64 — откатить уже установленный INF-файл;

       256 — не строить список файлов при установке INF-файла;

       512 — при установке INF-файла принудительно задерживать регистрацию ActiveX-объектов, которые должны быть зарегистрированы во время уста­новки данного INF-файла.

Если вы часто устанавливаете расширенные INF-файлы, то их постоянный вызов с помощью команды rundll32 может быть утомителен. В этом случае предлагается произвести небольшое изменение в реестре, чтобы расширенные INF-файлы мож­но было установить с помощью пункта Установить их контекстного меню. Плюсом данного метода является еще и то, что он не влияет на установку обычных INF-файлов. Другими словами, после модификации реестра вы сможете устанавливать с помощью пункта Установить как обычные, так и расширенные INF-файлы.

Команда, выполняемая после выбора Установить из контекстного меню INF-фай­ла, хранится в параметре (По умолчанию) ветви реестра HKEY_CLASSES_ROOT\inffile\shell\ Install\command. Стандартным для данного параметра явля­ется значение %SystemRoot%\System32\rundll32.exe setupapi, Install HinfSection DefaultInstall 132 %1, то есть по умолчанию выполняется установка обычных INF-файлов. Но если вы измените значение данного параметpa на rundll32.exe ADVPACK.dll, LaunchINFSectionEx %1, DefaultInstall,,, то по умолчанию будут устанавливаться расширенные INF-файлы (а так­же обычные).

Мы уже рассматривали параметры команды rundll32.exe ADVPACK.dll, LaunchINFSectionEx, поэтому для удобства вы можете добавить значение фла­га этой команды, хотя в этом случае не забудьте проверить, будут ли устанавли­ваться обычные INF-файлы, ведь если они не смогут поддерживать указанный вами флаг, то и не будут устанавливаться. По этой же причине лучше не указывать путь к САВ-файлу в команде rundll32.exe ADVPACK.dll, LaunchINFSectionEx, записываемой в реестре.

Вообще, гораздо лучше создать дополнительный пункт контекстного меню INF-файла - например, Установить расширенный файл, а не заменять стандартный, так как при установке обычных INF-файлов с помощью пункта меню для расширенных не все ключевые слова будут работать (не будут работать возможности созда­ния и удаления служб, перемещения содержимого INI-файлов в реестр и т. д.). Для этого, например, можно создать ветвь реестра HKEY_CLASSES_ROOT\inffile\shell\Pacшиpeннaя_Уcтaнoвкa\command и записать в ней указанную строку вызова расширенного INF-файла.

Раздел [DefaultInstall]

Продолжим рассматривать содержимое INF-файла. Независимо от его версии (обычный или расширенный), следующим после раздела [version] является раздел [DefaultInstall] (как было сказано выше, название раздела может быть другим). Именно с этого раздела будет начинаться установка информационного файла, и именно он должен содержать ключевые слова, реализующие работу INF-файла.

Вы, наверное, спросите, почему в качестве названия данного раздела необходимо использовать слово DefaultInstall? Все дело в том, что раздел именно с таким заго­ловком ищет система при установке INF-файла с помощью пункта Установить контекстного меню этого файла. Иными словами, если вы используете другое назва­ние раздела, то INF-файл нельзя будет установить с помощью контекстного меню, хотя по-прежнему можно будет установить с помощью команды rundll32.

Для большей наглядности посмотрим на параметр реестра, определяющий ту команду, которая будет выполняться после выбора пункта Установить контекстного меню информационного файла. Это параметр (По умолчанию) ветви реестра  HKEY_CLASSES_ROOT\ inffile\shell\Install\command. Его значение равно %SystemRoot%\System32\rundll32.exe setupapi,InstallHinfSection DefaultInstall 132 %1. Как можно заметить, для установки INF-файла действительно используется раздел DefaultInstall.

Если же вы не хотите, чтобы INF-файл можно было установить с помощью его контекстного меню, то можете использовать другое название начального раздела. В этом случае для установки INF-файла необходимо воспользоваться командой rundll32.exe setupapi.dll, InstallHinf Section «раздел в файле для начала установки», «флаг», «путь и имя устанавли-ваемого INF-файла».

При этом «флаг» может содержать одно из следующих значений:

0 — не перезагружать компьютер после установки INF-файла;

1 — перезагружать компьютер после установки INF-файла;

2 — спрашивать о перезагрузке компьютера после установки INF-файла;

3 — если нужно, то перезагружать компьютер после установки INF-файла; j

4 — если нужно, то спрашивать о перезагрузке компьютера после установки INF- фай- ла.

Основные команды обычных INF-файлов

Чтобы понять возможности информационных файлов, вкратце перечислим те ключевые слова, которые они поддерживают, а также опишем, что они делают (более подробное описание данных ключевых слов, а также примеры их использования будут приведены далее). Все описанные здесь ключевые слова добавляются в раздел [DefaultInstall], указывают на разделы информационного файла, а также поддерживаются расширенными INF-файлами.

o        AddReg — позволяет добавить в реестр параметр либо отредактировать значение уже существующего параметра.

Информация о работе Основы автоматизация работы Windows