Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Секреты Windows: статьи о реестре, rundll32.exe, программах Глава 1. Установка Windows Vista. 1.3. Дополнительные работы


У вас возникли вопросы по Windows? Задайте их нам на Форуме (http://www.onestyle.com.ua/q.php). Вам достаточно просто зарегистрироваться! Например, ниже представлен один из вопросов:

WinXP sp2. При активизации программы RegCllean.exe получаю сообщение
" RegCllean.exe не является приложением Win32". Включение режима совместимости
для этой программы результатов не дало. На друом ПК с этой программой нет таких проблем.
При запуске других программ таких сообщений не появляется.
Подскажите как можно выйти из этого положения. Выполнять переустановку ОС не очень желательно.

 Вообще-то, это значит, что файл RegCllean.exe поврежден. Есть правда более плачевный сценарий – он был заражен неправильно функционирующим вирусом или опять же неправильно вылечен антивирусом. Но в любом случае, этот файл поврежден и следует установить/скачать программу заново.

Хотя есть и другой вариант – программа написана, допустим, для Windows 98, а вы пытаетесь ее запустить на Windows XP. К сожалению, если программа выдает такое сообщение, то никакой режим совместимости не поможет =(

В конец записи

Но перед тем как начать описание интерфейса и возможностей новой операционной системы, давайте рассмотрим несколько вопросов, которые могут быть вам интересны.

Вы, наверное, уже заметили, что операционная система Windows Vista обзавелась не только новым интерфейсом, но и новым загрузочным меню (рис. 1.08).


Рис. 1.08. Новое загрузочное меню Windows Vista

Если вы устанавливали Windows Vista на компьютер, уже имеющий несколько других установленных операционных систем, тогда не ужасайтесь — к ним по-прежнему можно будет получить доступ, если выбрать элемент Earlier version of Windows загрузочного меню. После выбора данного элемента меню будет выполнена обработка файла boot.ini, который как раз и содержал ранее загрузочное меню. Сама же операционная система Windows Vista больше не использует файл boot.ini и все сведения о загрузочном меню хранит в реестре. Единственным способом получения доступа к ним является программа командной строки bcdedit.exe. С ее помощью вы можете как редактировать текущие элементы загрузочного меню, так и создавать новые. Особенно это необходимо при установке на компьютер нескольких версий операционной системы Windows Vista — в этом случае в списке загрузочного меню все они будут иметь название Microsoft Windows, и будет довольно трудно понять, какая именно версия операционной системы скрывается за конкретным элементом списка загрузочного меню.

Воспользоваться программой bcdedit можно только в том случае, если вы зайдете в систему под учетной записью администратора. В противном случае вы не сможете запустить программу bcdedit. Чтобы заново не входить в систему под учетной записью администратора, можно просто запустить командный интерпретатор cmd.exe от его имени. Для этого достаточно воспользоваться следующими способами:

  • командой runas /user:administrator cmd.exe;
  • командой ЗАПУСК ОТ ИМЕНИ АДМИНИСТРАТОРА контекстного меню файла программы cmd.exe (если вы не видите такой команды, тогда попробуйте открыть контекстное меню файл с зажатой клавишей SHIFT);
  • запустив программу cmd.exe c зажатыми клавишами SHIFT и CTRL.

Давайте рассмотрим некоторые команды bcdedit.exe, которые могут вам понадобиться.

Просмотр текущего загрузочного меню

Например, если вы просто введете в командной строке cmd.exe строку bcdedit, то сможете просмотреть текущее содержимое загрузочного меню Windows (для примера выводимых данных посмотрите листинг 2.1).

Листинг 2.1. Пример вывода содержимого загрузочного меню командой bcdedit
Диспетчер загрузки Windows
--------------------
идентификатор           {bootmgr}
device                  partition=G:
description             Windows Boot Manager
locale                  ru-RU
inherit                 {globalsettings}
default                 {current}
resumeobject            {39560615-df6b-11e6-b97b-e0a722fa6b15}
displayorder            {ntldr}
                        {current}
toolsdisplayorder       {memdiag}
timeout                 3

Загрузчик прежних версий ОС Windows
------------------------
идентификатор           {ntldr}
device                  partition=G:
path                    \ntldr
description             MY XP

Загрузка Windows
-------------------
идентификатор           {current}
device                  partition=C:
path                    \Windows\system32\winload.exe
description             Microsoft Windows Vista
locale                  en-US
inherit                 {bootloadersettings}
osdevice                partition=C:
systemroot              \Windows
resumeobject            {39560615-df6b-11e6-b97b-e0a722fa6b15}
nx                      OptIn
quietboot               Yes

Содержимое нового загрузочного меню Windows Vista отображается в виде блоков, каждый из которых определяет настройки одной операционной системы, которую можно запустить с помощью загрузочного меню Windows Vista. Первыми Как можно заметить из листинга 2.1, сначала bcdedit отображаетотображаются сведения о настройке самого загрузочного меню (блок данных Диспетчер загрузки WindowsWindows Boot Manager), а потом сведения об элементе элементах этого меню. Причем сведения об элементе спискаменю, с помощью которого можно отобразить меню для выбора запустить ранее установленных установленные операционных операционные системы (то есть для загрузки содержимого файла boot.ini) отображается первым (блок данных Загрузчик прежних версий ОС WindowsWindows Legacy OS Loader), а потом уже сведения об остальных элементах меню (блоки данных под заголовками Microsoft Windows VistaWindows Boot Loader).

Под элементом понимается любая запись в загрузочном меню Windows Vista, с помощью которой можно загрузить операционную систему либо запустить одну из программ поддержки. Также под элементом мы будем понимать само загрузочное меню (при указании его настроек).

Содержимое блоков загрузочного меню

Каждый блок загрузочного меню описывает определенные настройки в виде <атрибут> <значение>. Существует множество атрибутов, которые могут отображаться в блоках загрузочного меню, и, как правило, название атрибута в блоке соответствует названию опции, которую нужно указывать в команде bcdedit.exe, чтобы изменить значение соответствующего атрибута.

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

Таблица 2.10. Описание атрибутов загрузочного меню Windows Vista
идентификаторВсеИдентифицирует элемент загрузочного меню.
Значение указывается в виде GUID-номера (генерируется при создании элемента). Кроме того, существует несколько предопределенных идентификаторов, которые имеют символьные названия. Например, {current} (система, которая загружена в данный момент), {default} (система, загружаемая по умолчанию), {ntldr}(предыдущие версии Windows), {bootmgr} (параметры самого загрузочного меню), {memdiag} (элемент загрузочного меню, с помощью которого можно выполнить диагностику состояния оперативной памяти компьютера).
DeviceВсеБуква раздела, на котором находится папка Windows (для элемента, описывающего Windows), либо папка boot (для элемента, описывающего загрузочное меню). Как правило, значение указывается в формате partition=<буква диска>:.
DescriptionВсеНазвание элемента, отображаемое в загрузочном меню.
PathЗагрузчик прежних версий ОС Windows, Загрузка WindowsПуть к загрузчику операционной системы. Как правило, значение данного параметра для операционной системы Windows Vista равно \Windows\system32\winload.exe. Значение же данного параметра для блока, запускающего загрузчик предыдущих версий Windows, равно \ntldr.
LocaleВсеИспользуемый системой или самим загрузочным меню язык отображения интерфейса (локализацию).
InheritВсеИдентификатор элемента загрузочного меню, от которого данный элемент наследует настройки.
OsdeviceЗагрузка WindowsБуква системного раздела для данной системы. Как правило, значение указывается в формате partition=<буква диска>:.
SystemrootЗагрузка WindowsКаталог, в котором находятся системные файлы данной Windows (без буквы раздела). Как правило, значение атрибута равно \Windows.
resumeobjectВсеGUID-номер объекта возобновления, связанного с данным элементом загрузочного меню.
DefaultДиспетчер загрузки WindowsИдентификатор элемента загрузочного меню, содержащего описание системы, загружаемой по умолчанию. По умолчанию загружается последняя установленная вами операционная система Windows Vista.
DisplayorderДиспетчер загрузки WindowsПорядок расположения элементов загрузочного меню, содержащих описание операционных систем, которые можно загрузить.
toolsdisplayorderДиспетчер загрузки WindowsПорядок расположения элементов, содержащих описание программ поддержки, которые можно запустить из загрузочного меню. По умолчанию вам доступна только одна программа поддержки — программа диагностики состояния оперативной памяти.
TimeoutДиспетчер загрузки WindowsИнтервал (в секундах) бездействия пользователя во время отображения загрузочного меню Windows, по истечении которого будет загружена система по умолчанию.

Помимо отображения сведений о загрузочном меню, вы можете воспользоваться командами вида bcdedit.exe /enum <фильтр>. От указанного фильтра зависят данные о загрузочном меню, которые будут отображены. В качестве фильтра могут использоваться значения, перечисленные в таблице ниже.

Таблица 2.11. Значения фильтров команды bcdedit.exe /enum <фильтр>
  • ACTIVE - Аналогично вызову команды bcdedit.exe.
  • FIRMWARE - Все блоки приложений микропрограмм. Блок Диспетчер загрузки Windows также считается блоком приложений микропрограмм.
  • BOOTAPP - Все блоки приложений среды загрузки. Фактически, будут отображены все когда-либо создававшиеся в загрузочном меню блоки.
  • BOOTMGR - Блок Диспетчер загрузки Windows.
  • OSLOADER - Все блоки Загрузка Windows. С помощью данного фильтра (да и с помощью других похожих фильтров) можно отобразить перечень всех созданных блоков Загрузка Windows, тогда как с помощью команды bcdedit.exe отображаются лишь те блоки, которые используются в загрузочном меню в текущий момент.
  • RESUME - Все блоки Выход из режима гибернации.
  • INHERIT - Все блоки наследования. Например, к таким блокам относятся следующие: Параметры EMS, Параметры отладчика, Дефекты ОЗУ, Глобальные параметры, Параметры загрузчика, Параметры загрузчика восстановления.
  • ALL - Будут отображены все когда-либо создававшиеся в загрузочном меню блоки.
  • {идентификатор} - Блок с соответствующим идентификатором. Иногда использование данного варианта команды bcdedit.exe /enum бывает наиболее предпочтительным — согласитесь, если вы хотите просмотреть атрибуты определенного элемента загрузочного меню, намного проще воспользоваться его идентификаторов, чем просматривать атрибуты всех элементов загрузочного меню.

Атрибуты device и osdevice

В таблице выше мы с вами рассмотрели описание атрибутов device и osdevice, а также узнали их основной синтаксис: partition <буква диска>. Помимо данного синтаксиса существуют и другие варианты синтаксиса значений этих атрибутов. Всего таких вариантов синтаксиса три.

  • PARTITION=буква_диска. Данный синтаксис используется при описании загрузки операционной системы, расположенной на жестком диске компьютера.
  • FILE=[[boot|буква_диска]]путь. Данный синтаксис используется для запуска операционной системы Windows Vista из образа.
  • RAMDISK=[[boot|буква_диска]]путь,идентификатор. Данный синтаксис используется для запуска операционной системы Windows Vista из образа, расположенного на внешнем диске.

Опция boot в синтаксисах RAMDISK= и FILE= определяет букву раздела диска, на котором находится загрузочное меню, отображаемое в данный момент. Например, если синтаксис RAMDISK= используется для запуска операционной системы с компакт-диска, опция boot указывает на букву диска соответствующего привода компакт-дисков.

Лучше понять варианты использования синтаксиса RAMDISK= можно с помощью загрузочного меню установочного диска Windows Vista. Загрузите это загрузочное меню в программу bcdedit.exe и просмотрите его содержимое. Сделать это можно с помощью команды вида bcdedit.exe /store <буква привода с установочным диском Windows>:\boot\bcd.

Основные команды программы bcdedit.exe

Теперь, когда вы научились умеете разбираться в выводе команды bcdedit и определять текущие параметры загрузочного меню, рассмотрим другие ее командывозможности программы по настройке загрузочного меню.

Экспорт и импорт загрузочного меню

Самой первой командой, которой желательно воспользоваться, является команда bcdedit /export <путь к файлу и его название без расширения>. С ее помощью вы создаете копию загрузочного меню, которую потом сможете использовать для его восстановления, если нечаянно испортите текущее загрузочное меню. После выполнения экспортирования загрузочного меню в указанном вами каталоге будут созданы два файла — один с расширением LOG, а другой вообще без расширения. Файл без расширения как раз и хранит сведения о загрузочном меню. По сути, данный файл является просто разделом реестра и с помощью команды ФАЙЛ/ЗАГРУЗИТЬ КУСТ редактора реестра regedit.exe вы сможете загрузить его в реестр и просмотреть содержимое.

Для восстановления загрузочного меню из экспортированного файла достаточно воспользоваться командой bcdedit /import <путь к файлу и его название без расширения>.

Редактирование элементов загрузочного меню Итак, мы хотели переименовать какой-нибудь элемент загрузочного меню. Для этого нужно воспользоваться командой вида bcdedit /set [содержимое поля identifier данного элемента меню] description <новое название элемента меню>. Если вы не укажете содержимое поля identifier, то будет переименован элемент меню, имеющий значение {current} поля identifier. Например, bcdedit /set description "Vista Build 60015384" или bcdedit /set {default} description "Vista Build 5384 (TEST)".

Обратите внимание, что в предыдущей команде после содержимого поля identifier идет ключевое слово description. Если еще раз перечитать описание вывода команды bcdedit, то можно заметить, что такое же слово встречается среди полей блоков данных (см. листинг 2.1). Это не просто совпадение — именно название поля и нужно указывать в данной команде. Например, вы можете изменить значение поля systemroot с помощью команды bcdedit /set [содержимое поля identifier данного элемента меню] systemroot <новый каталог, содержащий файлы Windows>.

Копирование элемента загрузочного меню Если вы решили изменить определенный элемент загрузочного меню (с помощью описанных ниже примеров), пожалуйста, перед этим воспользуйтесь командой вида bcdedit /copy <идентификатор> /d <значение атрибута description>. C помощью данной команды вы создадите копию того элемента загрузочного меню, который хотите отредактировать. При этом в опции /d нужно указать название нового элемента загрузочного меню, которое будет отображаться в загрузочном меню. Идентификатор же, указываемый в команде, соответствует идентификатору того элемента загрузочного меню, копию которого вы хотите создать (подробнее об идентификаторах мо поговорим ниже).

В результате выполнения данной команды в загрузочном меню Windows Vista появится еще один пункт, с помощью которого вы сможете загрузить операционную систему в том случае, если ваши попытки редактирования атрибутов элемента привели к невозможности запуска операционной системы.

Изменение запускаемой по умолчанию операционной системы и таймаута Еще одной возможностью, которая может вам пригодиться, является изменение операционной системы, запускаемой по умолчанию. Для этого нужно воспользоваться командой bcdedit /default <содержимое поля identifier данного элемента меню>. Например, команда bcdedit /default {ntldr} устанавливает по умолчанию загрузку файла boot.ini для выбора операционной системы более ранней версии, чем Windows Vista.

Можно также изменить время ожидания выбора операционной системы пользователем (содержимое поля timeout блока данных Диспетчер загрузки WindowsWindows Boot Manager). Для этого нужно воспользоваться командой bcdedit /timeout <новое время ожидания в секундах>.

Удаление и создание элемента загрузочного меню Если же вы хотите удалить какой-либо элемент загрузочного меню, то это можно сделать с помощью команды bcdedit /delete <содержимое поля identifier данного элемента меню>. Например, чтобы удалить элемент MICROSOFT WINDOWS из загрузочного меню (см. листинг 2.1), нужно воспользоваться командой bcdedit /delete {default}.

Естественно, что кроме удаления элемента загрузочного меню, вы можете создать свой элемент меню. Проще всего для этого выполнить для этого копирование уже существующего элемента меню, что мы уже умеем делать.

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

  • bcdedit /create <идентификатор> /d <значение атрибута description>. Данная команда создает новый элемент загрузочного меню (с указанным опцией /d названием) на основе настроек уже существующего элемента загрузочного меню с данным идентификатором.
  • bcdedit /create /application {OSLOADER|RESUME| BOOTSECTOR|STARTUP} /d <значение атрибута description>. Данная команда создает новый элемент загрузочного меню (с указанным опцией /d названием). При этом опция /application указывает тип создаваемого элемента загрузочного меню.
  • bcdedit /create {/inherit: {BOOTMGR|BOOTSECTOR| FWBOOTMGR|MEMDIAG|NTLDR|OSLOADER|RESUME|DEVICE} | /device} /d <значение атрибута description>. Данная команда создает новый элемент загрузочного меню (с указанным опцией /d названием). При этом опция /inherit определяет тип, от которого создаваемый элемент будет наследовать настройки.

Если вы решили, что на этом создание нового элемента загрузочного меню окончено, вы отчасти правы. Новый элемент действительно будет создан — найти его настройки вы сможете с помощью описанных выше команд вида bcdedit /enum <фильтр>, однако вы так и не сможете найти его в загрузочном меню Windows Vista. Для того, чтобы он там отобразился, вам необходимо его добавить в загрузочное меню с помощью параметры /displayorder.

Изменение порядка загрузочного меню И последней командой, которую мы рассмотрим, будет команда изменения порядка отображения элементов загрузочного меню Windows Vista: bcdedit /displayorder <дальнейшие параметры>. Она имеет несколько разновидностей, поэтому рассмотрим каждую из них отдельно.

  • bcdedit /displayorder <содержимое поля identifier 1> <содержимое поля identifier 2> … <содержимое поля identifier N> — с помощью данной команды вы полностью изменяете порядок отображения элементов загрузочного меню. Например, bcdedit /displayorder {current} {default} {ntldr}.
  • bcdedit /displayorder <содержимое поля identifier> /addfirst — команда перемещает на первое место загрузочного меню элемент с указанным значением поля identifier. Например, bcdedit /displayorder {ntldr} /addfirst.
  • bcdedit /displayorder <содержимое поля identifier> /addlast — перемещает на последнее место загрузочного меню элемент с указанным значением поля identifier.
  • bcdedit /displayorder <содержимое поля identifier> /remove — команда удаляет из загрузочного меню элемент с указанным значением поля identifier.

Примеры использования программы bcdedit.exe

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

Изменение названия элемента загрузочного меню Для изменения названия текущей загруженной операционной системы Windows Vista достаточно воспользоваться командой bcdedit /set {current} description новое_название.

Также можно изменить название операционной системы Windows Vista, загружаемой по умолчанию: bcdedit /set {default} description новое_название.

А изменить название пункта, запускающего загрузчик предыдущих версий Windows можно так: bcdedit /set {ntldr} description новое_название.

Названия остальных пунктов меню изменяются так: bcdedit /set <{GUID-номер}> description новое_название.

Изменение локализации загрузочного меню Если вы установили несколько языковых пакетов и при этом хотите, чтобы загрузочное меню использовало локализацию, отличную от локализации по умолчанию, тогда воспользуйтесь данной командой: bcdedit /set {bootmgr} locale <локализация, например, ru-RU, en-US, FI-FI, DE-DE>.

Настройка операционной системы по умолчанию Настроить операционную систему, загружаемую по умолчанию, весьма просто:

bcdedit /default <{GUID-номер}>
bcdedit /timeout <интервал ожидания выбора пользователя>

Создание элемента загрузочного меню для запуска загрузчика прежних ОС Если по каким-то причинам в загрузочное меню Windows Vista не входит пункт запуска загрузчика прежних версий Windows, добавить данный пункт можно с помощью следующих команд.

bcdedit /create {ntldr} /d "Загрузчик ОС прежних версий"
bcdedit /set {ntldr} device partition <буква диска, содержащего файл ntldr>:
bcdedit /set {ntldr} path \ntldr
bcdedit /displayorder {ntldr} /addlast

Включение опции запуска PAE для операционной системы по умолчанию Опция PAE используется в 32-битных системах для расширения доступного им адресного пространства. Включить ее можно так: bcdedit /set <{GUID-номер}> pae ForceEnable. Отключить же данную опцию можно с помощью следующей команды: bcdedit /set <{GUID-номер}> pae ForceDisable.

Создание записи в списке программ поддержки загрузочного меню Проще всего создать запись в списке программ поддержки (находится под списком установленных версий Windows, и перейти к нему можно с помощью клавиши TAB) методом копирования стандартной записи с идентификатором {memdiag}. Для этого достаточно воспользоваться следующими командами.

bcdedit /copy {memdiag} /d "Наша новая запись"
bcdedit /set <{идентификатор}> path <путь к запускаемой программе без указания раздела диска>
bcdedit /set <{идентификатор}> device partition=<буква диска, на которой находится запускаемая программа>
bcdedit /toolsdisplayorder <{идентификатор}> /addlast

По умолчанию загрузочное меню Windows Vista запрещает выполнение программ поддержки, не имеющих цифровой подписи. Чтобы отключить проверку цифровых подписей программ, воспользуйтесь соответствующей командой в списке дополнительных вариантов загрузки операционной системы (отображается после нажатия кнопки F8).

Продолжение следует

Оригинал статьи: http://www.onestyle.com.ua/txt.php?u=431

В избранное