Недокументированные и малоизвестные возможности Windows XP — страница 12 из 28

Другие возможности Windows XP

Глава 12Версии Windows

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

ПРИМЕЧАНИЕ

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

Для начала поговорим о разнообразии версий Windows XP. Действительно, ведь существует не только две версии Windows — Professional и Home Edition. Есть также версия TabletPC для ноутбуков, 64-битная версия Windows, Windows .NET Server, Windows .NET Advanced Server, Windows .NET Datacenter Server. Существует также MediaCenterPC. Согласитесь, если бы Microsoft делала все эти версии отдельно, то Билл Гейтс давно бы обанкротился. Видимо, так же думали и программисты Microsoft, ведь информация о том, к какой версии Windows принадлежит ваша операционная система, заложена в самой операционной системе. И это нельзя однозначно назвать словом «плохо» или «хорошо» — такова жизнь, ведь это способ выживания большой корпорации. По этой причине не будем упоминать автора операционной системы Windows (ведь, несмотря на то, что Windows постоянно ругают, это действительно качественная и отличная операционная система), а лучше поговорим о том, где эта информация находится.

ВНИМАНИЕ

Ни автор, ни издательство «Питер», ни тем более корпорация Microsoft, не несут никакой ответственности за возможные последствия применения приведенных ниже трюков. Это незаконная операция, и ее описание приведено лишь в ознакомительных целях.  

Статические параметры

Информация о текущей версии Windows находится в двух статических параметрах реестра и одном динамическом. Для начала поговорим о статических параметрах — они находятся в ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ProductOptions. Это параметры ProductType и ProductSuite.

■ ProductType — параметр REG_SZ-типа. Определяет само направление данной версии Windows: то ли она предназначена для рабочих компьютеров, то ли для серверов, то ли для контроллеров домена. В зависимости от назначения Windows параметр может принимать следующие значения:

 • WinNT — данная версия системы Windows является рабочей станцией (Windows XP Professional, Windows XP Home Edition);

 • LanmanNT — версия Windows является контроллером домена;

 • ServerNT — данная версия Windows является сервером.

ПРИМЕЧАНИЕ

Вот что пишет об этом параметре сама Microsoft: «Свойство ProductType представляет дополнительные сведения о компьютере. Возможны следующие значения: \n1 — Рабочая станция, \n2 — Контроллер домена, \n3 — Сервер». 

■ ProductSuite — параметр REG_MULTI_SZ-типа. Определяет дополнительную градацию Windows и может принимать следующие значения:

 • Blade — определяет версию Windows для Windows 2003 Server, поэтому в книге не рассматривается;

 • Personal — данная версия Windows принадлежит к линейке Home Editions;

 • DataCenter — определяет версию Windows для Windows 2003 Server, поэтому в книге не рассматривается;

 • EmbeddedNT — указывает разновидность Windows Embedded;

 • Terminal Server — определяет версию Windows для Windows 2003 Server, поэтому в книге не рассматривается;

 • Small Business (Restricted) — указывает версию Windows для Windows 2003 Server, поэтому в книге не рассматривается;

 •  BackOffice — определяет версию Windows для Windows 2003 Server, поэтому в книге не рассматривается;

 • CommunicationServer — указывает версию Windows для Windows 2003 Server, поэтому в книге не рассматривается;

 • Enterprise — определяет версию Windows для Windows 2003 Server, поэтому в книге не рассматривается;

 • Small Business — указывает версию Windows для Windows 2003 Server, поэтому в книге не рассматривается;

 • ConcurrentLimit — определяет версию Windows для Windows 2003 Server, поэтому в книге не рассматривается.

ПРИМЕЧАНИЕ

Об этом параметре Microsoft пишет: «Свойство ProductSuite содержит информацию об установленных и лицензированных дополнениях к операционной системе». 

Как видите, мир Windows разнообразен, а теперь подумаем, что можно сделать с приведенной здесь информацией. А сделать можно лишь одно — преобразовать одну версию Windows в другую, что в некоторых кругах еще называется форсажем. К сожалению, значение параметра ProductType Windows изменить не разрешит — это грубое нарушение лицензионных прав на вашу версию операционной системы (именно такое сообщение выводит система на «синем экране смерти» после изменения значения параметра ProductType). Но с некоторыми поправками можно изменить значение параметра ProductSuite.

ВНИМАНИЕ

Данные сведения приведены лишь в ознакомительных целях. Любое изменение версии Windows является нарушением прав на данный продукт и может не только вывести вашу систему из строя, но и автоматически сделать вашу лицензионную версию в глазах корпорации Microsoft пиратской, после чего вы не сможете пользоваться такими функциями, как Windows Update.

Для примера преобразуем Windows XP Home Editions в Windows XP Professional. После этого вы получите такие новые функции, как возможность управления операционной системой с помощью mstsc (удаленное управление Рабочим столом), а также возможность установки операционной системы в качестве контроллера домена.

Итак, если посмотреть на описанные выше значения для параметра ProductSuite, то можно заметить, что для Windows XP Home Editions это значение должно быть равно Personal. Это действительно так, но какое значение параметра должно быть для Windows XP Professional, ведь в приведенном описании этого значения нет? Все дело в том, что для Windows XP Professional значение параметра ProductSuite должно отсутствовать.

Если вы уже попробовали изменить значение параметра ProductSuite, то, без сомнения, знаете, что операционная система не даст это сделать. Будет выведено сообщение о нарушении прав лицензионного продукта, после чего предыдущее значение вернется на свое место (оно вернется даже тогда, когда это значение явно не соответствует ни одному из приведенных выше значений). Поэтому простым способом редактирования параметра вы ничего не добьетесь.

Вспомним о ветви реестра HKEY_LOCAL_MACHINE\SYSTEM все, что было написано в предыдущих частях книги. Итак, ветвь HKEY_LOCAL_MACHINE\SYSTEM хранит все сведения о драйверах и службах, зарегистрированных в системе. Она также хранит наиболее важную информацию о конфигурации операционной системы — если содержимое ветви HKEY_LOCAL_MACHINE\SYSTEM будет повреждено, то с большой долей вероятности вы не сможете загрузить операционную систему. Но ведь ошибки могут происходить не только по вине пользователя, но и по вине сторонних программ или самой операционной системы — это уже очень большая группа риска, а по теории вероятности, чем больше факторов риска, тем больше вероятность, что непредвиденное событие все-таки произойдет. Именно поэтому программистами Microsoft для страховки было решено продублировать всю критически важную информацию в нескольких ветвях реестра — так появились ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001, HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002 и т.д. Каждая из этих ветвей хранит конфигурацию системы в разные моменты времени, а ветвь реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet является лишь ссылкой на один из приведенных разделов реестра Windows.

Теперь можно поставить еще один вопрос — если запрещено изменять параметр в ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet, то будет ли также запрещено изменять значение того же параметра в ветвях реестра HKEY_LOCAL_MACHINE\SYSTEM\ControlSetNNN? Оказывается, что значения параметров данных ветвей совершенно не защищены от изменений и Windows позволяет редактировать любые параметры, даже те, которые запрещено редактировать в разделе CurrentControlSet.

Осталось вспомнить еще одно — как же Windows выбирает, какой из разделов ControlSetNNN нужно использовать при следующей загрузке компьютера. Для этого применяются значения параметров DWORD-типа из ветви системного реестра HKEY_LOCAL_MACHINE\SYSTEM\Select. Эта ветвь может содержать следующие параметры.

■ Default — именно этот параметр определяет, какая копия раздела ControlSet будет загружена при нормальной загрузке системы. Например, если его значение равно 2, то при обычной загрузке системы раздел CurrentControlSet будет ссылкой на содержимое раздела ControlSet002.

■ Current — определяет номер текущей копии раздела ControlSet, на которую ссылается раздел CurrentControlSet.

■ LastKnownGood — указывает номер копии раздела ControlSet, которая будет использоваться для построения содержимого раздела CurrentControlSet при использовании команды меню альтернативной загрузки Загрузка последней удачной конфигурации.

■ Failed — определяет раздел ControlSet, при предыдущей загрузке которого произошел какой-то сбой и загрузка была прервана.

Когда известно, какой из разделов ControlSet для какой загрузки предназначен, возникает еще один вопрос — а значения какого из них правильнее и лучше всего редактировать? Здесь автор может посоветовать лишь исходя из своего опыта — лучше всего редактировать значения параметров из раздела, ссылка на который указана в значении параметра LastKnownGood, а потом пробовать запустить систему с помощью команды альтернативного окна загрузки Загрузка последней удачной конфигурации. Есть большая доля вероятности, что после редактирования параметров ваша операционная система не загрузится, и тогда вы просто сможете загрузить ее в обычном режиме. Причем все дело в том, что в большинстве случаев операционная система не загружается уже после регистрации в ней пользователя — требует ввода нового активационного ключа. Из предыдущих глав книги вы знаете, что, как только в системе регистрируется пользователь, ветвь реестра ControlSet, с помощью которой была выполнена загрузка, считается корректной и ссылка на нее указывается в качестве значения параметра LastKnownGood. Другими словами, если вы использовали ветвь ControlSet, описываемую в параметре Default, то при таком стечении обстоятельств окажется поврежденной как текущая конфигурация ControlSet, так и конфигурация, на которую будет ссылаться значение параметра LastKnownGood. 

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

Динамические параметры

Теперь поговорим еще о нескольких параметрах, которые влияют на версию системы Windows. Автор назвал их динамическими, потому что в отличие от параметра ProductSuite, который был рассмотрен выше, эти параметры очень часто проверяются системой — особенно их любят проверять пакеты MSI. К тому же, предположительно, эти параметры работают только в Windows XP Professional — в других операционных системах применяются другие параметры.

Все приведенные ниже параметры находятся в ветви реестра HKEY_LOCAL_MACHINE\ SYSTEM\WPA, хранящей все ключи активации, доступные на компьютере. Но, кроме данных ключей, эта ветвь системного реестра может включать в себя два раздела — TabletPC и MediaCenter. В каждом из них может присутствовать DWORD-параметр Installed, значение которого определяет, является ли текущая операционная система данной разновидностью Windows. Например, если значение этого параметра ветви реестра TabletPC будет равно 1, то после перезагрузки вы сможете увидеть картину, подобную приведенной на рис. 12.1.

Рис. 12.1. Изменение версии Windows


ПРИМЕЧАНИЕ

Естественно, что лишь один из параметров Installed должен быть равен 1. Второй в таком случае либо не должен вообще существовать, либо должен быть равен 0.

Если вам понравился предыдущий рисунок и вы уже попытались изменить соответствующий вашим желаниям параметр, то возможны два варианта. Первый состоит в том, что в вашей системе не существует разделов TabletPC и MediaCenter. В этом случае вы безболезненно сможете изменить понравившийся вам параметр, создав его. Это был простой вариант. В сложном варианте в вашей системе уже существует раздел, в котором вы хотите создать или изменить значение параметра Installed. В этом случае система не разрешит вам этого сделать и единственный выход из такого положения — это воспользоваться второй операционной системой либо комплектом, подобным загрузочному диску ERD Commander, версия редактора которого способна изменять значения любых параметров.

Если у вас установлена вторая операционная система Windows, поддерживающая разделы NTFS, то можно загрузиться из нее, а потом в редакторе реестра просто загрузить куст SYSTEM первой операционной системы, параметр которой вы хотите изменить. Куст SYSTEM находится в ветви реестра %systemroot%\system32\config вашей первой операционной системы, и, чтобы его загрузить, необходимо выделить в редакторе реестра корневой раздел HKEY_LOCAL_MACHINE, а потом в меню Файл выбрать команду Загрузить куст. После этого перед вами появится диалог, в котором нужно выбрать куст SYSTEM, а в следующем диалоге присвоить ему произвольное имя — именно под таким именем вы сможете его увидеть как одну из ветвей корневого раздела HKEY_LOCAL_MACHINE.

ПРИМЕЧАНИЕ

Местоположение всех запущенных системой в данный момент кустов реестра можно определить по содержащимся в ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\hivelist параметрам строкового типа. Имена этих параметров определяют названия кустов, а значения — пути, по которым они расположены.

Если при преобразовании Windows XP Home Edition в Windows XP Professional ваша операционная система получит дополнительные возможности (подключение с помощью удаленного Рабочего стола и т.д.), то при преобразовании Windows XP в Windows XP TabletPC изменится только логотип Windows. Хотя если вы захотите, то можете установить дополнительные программы, предназначенные для TabletPC. Все они находятся в папке «путь к дистрибутиву операционной системы»\CMPNENTS\TABLETPC\I386 вашего установочного диска (конечно, вместо TabletPC ваш установочный диск может поддерживать только Windows XP MediaCenter, файлы которого находятся в каталоге «путь к дистрибутиву операционной системы»\cmpnents\mediactr\i386). Все они находятся в упакованном виде, поэтому для их извлечения понадобится выполнить команду expand «путь к дистрибутиву операционной системы»\CMPNENTS\TABLETPC\I386\*.* «путь к папке, в которую нужно распаковать файлы (папка обязательно должна существовать)». После этого необходимо переименовать все расширения в соответствии с реальными расширениями, например, файл с расширением EX_ нужно переименовать в файл с расширением EXE.

ПРИМЕЧАНИЕ

Файлы установки дополнительных программ TabletPC и MediaCenter можно также найти в каталоге %systemroot%\INF. Они называются medctroc.INF и tabletpc.INF. 

Напоследок хотелось бы напомнить, что изменение версии Windows — это незаконная процедура, которая может лишить вас лицензионных прав на вашу операционную систему и перевести ее в разряд пиратских. К тому же есть большая вероятность невозможности последующей загрузки. В частности, после изменения версии Windows XP на Windows XP MediaCenter с большой долей вероятности система попросит у вас новый активационный ключ или переустановку системы. А при изменении версии Windows XP на Windows Embedded существует большая вероятность того, что система вообще не загрузится, не выводя больше никаких сообщений.

Кстати, еще хотелось бы несколько слов сказать об установочном диске Windows XP. Вообще, установочные диски от Microsoft — это такая интересная вещь, в которой никогда точно не знаешь, что найдешь. Например, на установочном диске Windows XP Professional можно найти пакет установщика Windows для инсталляции программы MSN Messenger 6.1. Если вы часто пользуетесь программой Messenger (по умолчанию устанавливается Messenger версии 4.7), то можете попробовать воспользоваться MSN Messenger 6.1, вдруг понравится. Как и большинство файлов на установочном диске, пакет установки MSN Messenger 6.1 хранится в каталоге i386 в сжатом виде. Пакет установки MSN Messenger 6.1 имеет название MSNMSGS.MS_. Чтобы его распаковать перед установкой, нужно воспользоваться командой в следующем формате:

expand "d:\MSNMSGS.MS_" "d:\1"

Здесь d:\ определяет путь к каталогу, в котором расположен пакет установки MSN Messenger 6.1 (не забудьте перед распаковкой переместить пакет MSNMSGS.MS_ в другой каталог, так как, скорее всего, непосредственно с установочного диска вам будет запрещено распаковывать файлы), а d:\1 определяет каталог, в который будет распаковываться пакет установки. После распаковки пакета замените его расширение MS_ на MSI, а потом установите данный пакет установщика Windows. В результате у вас появится вот такая красивая программа (рис. 12.2). 

Рис. 12.2. Окно программы MSN Messenger 6.1


Эту программу можно открыть с помощью файла msnmsgr.exe, расположенного в каталоге %ProgramFiles%\MSN Messenger.

Глава 13