Большим плюсом операционной системы Windows Vista является доработанный механизм автозапуска компакт-дисков. Сегодня мы попытаемся понять, в чем же прелести нового способа автозапуска и как они могут нам помочь.
Обнаружение файла autorun.inf
Если после обнаружения диска в приводе CD/DVD операционная система Windows XP пыталась автоматически выполнить команды, записанные в файле autorun.inf, размещенном на компакт-диске, то Windows Vista этого больше не делает. Вместо этого Windows Vista отображает диалог Автозапуск, один из пунктов которого позволяет выполнить содержимое файла autorun.inf (рис. 1).
Рисунок 1
Почему это так важно? В эпоху Windows XP на основе механизма автозапуска часто распространялись вирусы, трояны и другие вредоносные программы. То есть, в файле autorun.inf, расположенном в корне компакт-диска, находилась ссылка на вирус и как только вы помещали компакт-диск в привод, автоматически происходило заражение компьютера. Именно поэтому администраторы часто отключали возможность автозапуска компакт-дисков. Делалось это установкой в 0 значения параметра REG_DWORD типа AutoRun, расположенного в ветви
реестра HKLM\SYSTEM\CurrentControlSet\Services\cdrom. Собственно, этот способ работает и в Windows Vista. Однако в данной операционной системе таким способом вы запрещаете отображение самого диалога АВТОЗАПУСК.
Помимо параметра AutoRun в представленной выше ветви реестра находится еще один параметр, влияющий на механизм автозапуска дисков — параметр REG_MULTI_SZ типа AutoRunAlwaysDisable. Данный параметр позволяет запретить отображение диалога АВТОЗАПУСК только для определенного диска. Он содержит в себе список названий приводов, для которых возможность запуска диалога АВТОЗАПУСК будет запрещена (так как они не поддерживают команду TEST_UNIT_READY).
Диалог Автозапуск
Давайте еще раз взглянем на диалог АВТОЗАПУСК (рис. 2).
Рисунок 2
Если для какого-либо типа носителя диалог АВТОЗАПУСК отображается в первый раз, тогда он будет состоять всего лишь из двух элементов: из списка действий, которые можно выполнить с содержимым диска, а также из ссылки ЗАДАТЬ УМОЛЧАНИЯ АВТОЗАПУСКА В "ПАНЕЛИ УПРАВЛЕНИЯ".
Если же диалог АВТОЗАПУСК отображается не в первый раз и система может точно определить тип содержимого носителя, тогда помимо этих двух элементов в диалоге АВТОЗАПУСК будет присутствовать флажок ВСЕГДА ВЫПОЛНЯТЬ ДЛЯ…. С его помощью можно задать действие, которое будет выполняться вместо отображения диалога АВТОЗАПУСК (при обнаружении носителя, содержимое которого похоже на содержимое данного носителя, например, только музыка или фильм). Как вы, наверное, уже догадались, не рекомендуется в качестве
действия по умолчанию указывать обработку файла autorun.inf.
Список действий, которые можно выполнить с содержимым сменного носителя, зависит от самого содержимого носителя. Единственное действие, общее для всех носителей, это возможность открытия папки для просмотра файлов. Список остальных же действий формируется операционной системой на основе реестра.
Мастер Автозапуск
Возможности диалога АВТОЗАПУСК настраиваются в одноименном мастере, отобразить который можно либо при помощи значка АВТОЗАПУСК папки ПАНЕЛЬ УПРАВЛЕНИЯ, либо с помощью ссылки ЗАДАТЬ УМОЛЧАНИЯ АВТОЗАПУСКА В "ПАНЕЛИ УПРАВЛЕНИЯ" диалога АВТОЗАПУСК (рис. 3).
Рисунок 3
Данный мастер позволяет выбрать действие, которое будет автоматически выполняться при обнаружении носителя, содержимое которого удовлетворяет какому-либо предопределенному значению. Как можно заметить из мастера АВТОЗАПУСК, операционная система различает аудио и видеодиски, пустые болванки, диски с файлом autorun.inf, диски и другие носители со смешанным содержимым, а также отдельно устройства PocketPC (коммуникаторы).
Кроме того, с помощью флажка ИСПОЛЬЗОВАТЬ АВТОЗАПУСК ДЛЯ ВСЕХ НОСИТЕЛЕЙ И УСТРОЙСТВ данного мастера вы можете отключить механизм автозапуска.
Отключение механизма Автозапуск
Мы с вами уже знаем три способа отключения механизма автозапуска:
При помощи параметра REG_DWORD типа AutoRun, расположенного в ветви реестра HKLM\SYSTEM\CurrentControlSet\Services\cdrom.
При помощи параметра REG_DWORD типа AutoRunAlwaysDisable, расположенного в ветви реестра HKLM\SYSTEM\CurrentControlSet\Services\cdrom.
При помощи флажка ИСПОЛЬЗОВАТЬ АВТОЗАПУСК ДЛЯ ВСЕХ НОСИТЕЛЕЙ И УСТРОЙСТВ мастера АВТОЗАПУСК.
Этих способов вполне достаточно, если вы задались целью отключить механизм автозапуска. А вот если диалог АВТОЗАПУСК по каким-то причинам не запускается, и вы не знаете, как решить возникшую проблему, вам, возможно, поможет знание других способов отключения механизма автозапуска.
Самым первым, что следует сделать, это проверить, существует ли команда ОТКРЫТЬ АВТОЗАПУСК… контекстного меню значка съемного носителя. Если такая команда существует, тогда механизм автозапуска работает и, скорее всего, для данного носителя просто установлено какое-либо действие по умолчанию. Чтобы отобразить диалог АВТОЗАПУСК, просто воспользуйтесь данной командой контекстного меню. Если команды ОТКРЫТЬ АВТОЗАПУСК… нет в контекстном меню, значит механизм автозапуска действительно не работает.
В этом случае следует запустить оснастку СЛУЖБЫ (консоль services.msc) и найти в ней службу ОПРЕДЕЛЕНИЕ ОБОРУДОВАНИЯ ОБОЛОЧКИ. Если данная служба отключена или по каким-то причинам не запущена, тогда вы, скорее всего, уже нашли проблему. Чтобы механизм автозапуска мог работать, данная служба должна запускаться автоматически при старте системы.
Далее следует обратить внимание на групповые политики, ведь с их помощью также можно отключить механизм автозапуска. Сделать это можно при помощи подраздела АДМИНИСТРАТИВНЫЕ ШАБЛОНЫ/КОМПОНЕНТЫ WINDOWS/ПОЛИТИКИ АВТОЗАПУСКА разделов КОНФИГУРАЦИЯ КОМПЬЮТЕРА и КОНФИГУРАЦИЯ ПОЛЬЗОВАТЕЛЯ оснастки РЕДАКТОР ОБЪЕКТОВ ГРУППОВОЙ ПОЛИТИКИ (консоль gpedit.msc). Политики этих подразделов представлены ниже.
ВАРИАНТ РАБОТЫ АВТОЗАПУСКА ПО УМОЛЧАНИЮ. Данная групповая политика позволяет определить, будет ли операционной системе разрешено обрабатывать содержимое файла autorun.inf. С ее помощью изменяется значение параметра REG_DWORD типа NoAutorun, расположенного в ветви реестра SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer.
ОТКЛЮЧИТЬ АВТОЗАПУСК. Данная групповая политика позволяет полностью отключить механизм автозапуска для любого типа носителя. Она изменяет значение параметра REG_DWORD типа NoDriveTypeAutoRun, расположенного в ветви реестра SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer.
НЕ УСТАНАВЛИВАТЬ ФЛАЖОК «ВСЕГДА ВЫПОЛНЯТЬ ВЫБРАННОЕ ДЕЙСТВИЕ». Позволяет запретить отображение флажка ВСЕГДА ВЫПОЛНЯТЬ ДЛЯ в диалоге АВТОЗАПУСК. Эта групповая политика изменяет значение параметра REG_DWORD типа DontSetAutoplayCheckbox, расположенного в ветви реестра SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer.
Даже если вы точно уверены, что не пользовались групповыми политиками, следует обратить свое внимание на значение параметра NoDriveTypeAutoRun ветви SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer. Дело в том, что операционная система может самостоятельно изменять значение данного параметра в зависимости от происходящих действий. Например, если ваш компьютер войдет в домен Active Directory, система изменит значение данного параметра, запретив механизм автозапуска.
По умолчанию значение параметра NoDriveTypeAutoRun равно 0x91 (механизм автозапуска отключен для следующих устройств: жесткий диск и неизвестное устройство). Если значение данного параметра будет равно 0xb5, тогда, скорее всего, кто-то воспользовался групповой политикой ОТКЛЮЧИТЬ АВТОЗАПУСК, чтобы запретить механизм автозапуска для компакт-дисков и съемных носителей. Если же значение данного параметра будет равно 0xff, тогда, скорее всего, кто-то воспользовался групповой политикой ОТКЛЮЧИТЬ АВТОЗАПУСК, чтобы
запретить механизм автозапуска для всех типов носителей. А вот если данный параметр имеет какое-либо другое значение, значит дело здесь нечисто =).
Параметр NoDriveTypeAutoRun представляет собой битовую маску, состоящую из 8 значащих бит, каждый бит которой определяет, будет ли применяться механизм автозапуска для определенного типа носителя. Ее биты определяют следующие носители.
БИТ 0. Данный бит зарезервирован и по умолчанию всегда установлен (то есть, значение данного параметра всегда должно быть нечетным).
БИТ 1. Тип носителя: электрический.
БИТ 2. Тип носителя: CD-ROM.
БИТ 3. Тип носителя: удаленный диск.
БИТ 4. Тип носителя: жесткий диск. По умолчанию данный бит установлен.
БИТ 5. Тип носителя: съемный носитель.
БИТ 6. Тип носителя: NO_ROOT_DIR.
БИТ 7. Неизвестное устройство. По умолчанию данный бит установлен.
Если механизм автозапуска не запускается только для какого-либо определенного носителя, тогда следует взглянуть на параметры строкового типа ветви реестра HKLM\Software\Microsoft\Windows\CurrentVersion\explorer\AutoplayHandlers\CancelAutoplay\Files. Названия этих параметров определяют шаблон названия файла. Если система обнаружит на носителе какой-либо файл, удовлетворяющий шаблонам из данной ветви реестра, механизм автозапуска применяться не будет.
Заключение
В данной статье мы с вами рассмотрели лишь общие сведения о новом механизме автозапуска. Более подробно этой темой, на уровне структуры реестра и практических примеров по редактированию диалога АВТОЗАПУСК, мы с вами займемся в следующей статье из данной серии.