Недокументированные и малоизвестные возможности Windows XP - Роман Клименко
Шрифт:
Интервал:
Закладка:
Восстановление Windows
В конце данного раздела рассмотрим несколько команд, которые можно использовать для восстановления многих пользовательских настроек операционной системы Windows к их стандартному состоянию (такими, какими они были в момент установки системы).
■ rundll32.exe SHELL32.dll, DllInstall — вызов данной команды восстанавливает по умолчанию настройки основных стандартных ActiveX-объектов системы, а также настройки параметров ветвей реестра HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionExplorerStartMenu, HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionExplorerVisualEffects, HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionExplorerAdvanced и т. д.
■ rundll32.exe SYSSETUP.dll, RepairStartMenuItems — выполнение этой команды восстанавливает по умолчанию содержимое меню Пуск (при этом ссылки на установленные программы не исчезают). По умолчанию устанавливаются параметры ветви системного реестра HKEY_USERS.DEFAULTSoftwareMicrosoftWindowsCurrentVersionExplorerShell Folders, определяющей пути к папкам Windows (Мои документы, Мои рисунки, Мои видеозаписи и т. д.). Результат выполнения данной команды можно увидеть на рис. 2.3.
Рис. 2.3. Результат выполнения команды rundll32.exe SYSSETUP.dll, RepairStartMenultems
■ rundll32.exe SYSSETUP.dll, RunOEMExtraTasks — вызов данной команды возвращает на Рабочий стол ярлыки Проигрывателя Windows Media и Internet Explorer. Это выполняется путем присваивания значения yes параметру строкового типа DesktopShortcut, расположенному в ветви системного реестра HKEY_LOCAL_MACHINESOFTWAREMicrosoftMediaPlayerSetup, а также путем присваивания значения 0 параметру DWORD-типа {871С5380-42A0-1069-A2EA-08002B30309D}, расположенному в ветвях реестра Windows HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionExplorerHideDesktopIconsClassicStartMenu и HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionExplorerHideDesktopIcons NewStartPanel.
■ rundll32.exe SYSSETUP.dll, SetupOobeCleanup — вызов данной команды очищает наиболее важные файлы операционной системы. При этом удаляются и заново создаются (на основе текущих настроек операционной системы) все кусты реестра, а также удаляются различные ТМР-файлы.
ВНИМАНИЕ
После применения функций из библиотеки SYSSETUP.dll могут быть заменены стандартные системные файлы, поэтому все установленные в операционной системе заплаты и пакеты обновлений придется переустановить заново.
Файловая система
Теперь рассмотрим несколько команд rundll32.exe, предназначенных для работы с файловой системой Windows. С их помощью можно как создавать файлы, так и удалять уже созданные файлы и каталоги Windows, но нельзя указать содержимое файлов.
Создание файлов
Например, для создания файла можно воспользоваться командой rundll32.exe admparse.dll, CheckDuplicateKeysA «путь и имя файла с расширением». Она имеет один большой недостаток — после запуска вызывает ошибку. Тем не менее со своей работой она справляется — после ее выполнения будет создан или заново переписан указанный в параметре функции файл.
ПРИМЕЧАНИЕ
Например, подобные команды можно использовать для очистки файлов журналов при входе пользователей в систему, указывая их в одном из параметров реестра, предназначенных для автозагрузки.
Удаление файлов и папок
С помощью команд rundll32.exe можно удалить каталог или файл. Для этого достаточно воспользоваться приведенной далее командой: rundll32.exe ADVPACK.dll, DelNodeRunDLL32 «путь к кaтaлогу или файлу». Функция DelNodeRunDLL32 была написана специально для вызова с помощью команды rundll32.exe, поэтому никаких ошибок при своей работе она не выдает.
Существует еще одна команда, с помощью которой можно выполнить удаление. Но с ее помощью можно удалить только содержимое, а не сам каталог (то есть переписать необходимый каталог). Это команда rundll32.exe IEAKENG.dll, BToolbar_SaveA «путь к папке». Если указанная в данной команде папка уже существует, то она будет автоматически удалена, а потом заново создана.
ПРИМЕЧАНИЕ
Существует один интересный плюс этой команды — с ее помощью можно создать папки даже там, где пользователю это сделать нельзя. Например, в каталоге %userprofile%Local SettingsTemporary Internet FilesContent.IE5.
Последняя команда, которую мы рассмотрим, — rundll32.exe WININET.dll, RunOnceUrlCache «путь к каталогу». Это очень страшная и непредсказуемая команда. Она имеет примерно следующий алгоритм работы: сначала она пытается открыть все содержащиеся в указанной папке файлы и папки. Если при попытке открытия файла или папки система вернула данной команде флаг FILEATTRIBUTETAGINFORMATION, то команда удаляет соответствующий файл или папку.
ПРИМЕЧАНИЕ
Данная команда используется браузером Internet Explorer для удаления временных файлов из папки %userprofile%Local SettingsTemporary Internet Files при закрытии окна браузера, если значение DWORD-параметра Persistent из ветви реестра HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionInternetSettingsCache равно 0.
Выполнение файлов
Теперь рассмотрим несколько команд для выполнения или регистрации файлов. Например, как можно установить INF-файл с помощью команды rundll32.exe? Для этого применяется несколько команд, каждая из которых предназначена для отдельной версии INF-файлов.
Чтобы установить обычный INF-файл, необходимо воспользоваться следующей командой — rundll32.exe setupapi.dll, InstallHinfSection «раздел в файле для начала установки», «флаг», «путь и имя файла». При этом «флаг» может принимать следующие значения:
■ 0 — не перезагружать компьютер после установки INF-файла;
■ 1 — перезагружать компьютер после установки INF-файла;
■ 2 — спрашивать о перезагрузке компьютера после установки INF-файла;
■ 3 — если нужно, то перезагружать компьютер после установки INF-файла;
■ 4 — если нужно, то спрашивать о перезагрузке компьютера после установки INF-файла.
Например, с помощью данной команды можно выполнить следующие действия.
■ rundll32.exe setupapi.dll, InstallHinfSection DefaultInstall 132 wsh.inf — восстановление в реестре настроек сервера сценариев Windows, а также расширений, ему необходимых.
■ rundll32.exe setupapi.dll, InstallHinfSection DefaultInstall 132 sr.inf — воссоздание в реестре настроек службы Восстановление системы, а также ярлыка программы Восстановление системы в меню Пуск.
■ rundll32.exe setupapi.dll, InstallHinfSection DefaultInstall 132 %17%PCHealth.inf — восстановление настроек службы для работы с Центром справки и поддержки.
■ rundll32.exesetupapi.dll, InstallHinfSection DefaultUninstall 132 %17%PCHealth.inf — удаление настроек службы для работы с Центром справки и поддержки.
■ rundll32.exe setupapi.dll, InstallHinfSection DefaultInstall 132 %17%dfrg.inf — восстановление настроек оснастки dfrg.msc и функции BootDefrag.
■ rundll32.exe setupapi.dll, InstallHinfSection RestoreBrowserSettings 132 %17%iereset.inf — воссоздание настроек браузера Internet Explorer.
Для того чтобы зарегистрировать расширенный INF-файл, вам понадобится команда rundll32.exe ADVPACK.dll, LaunchINFSectionEx «имя файла», «имя раздела», «имя cab-файла», «флаг». Она для своей работы требует как стандартные параметры функции установки (имя INF-файла и раздел в нем, с которого начинается установка), так и специальные параметры.
■ Имя САВ-файла, содержащего все файлы, которые устанавливает данный расширенный INF-файл при своей работе.
■ Флаг работы процесса установки, наиболее полезные значения которого следующие:
• 4 — не выводить промежуточные результаты установки INF-файла;
• 16 — обновить оболочку операционной системы после установки INF-файла;
• 32 — выполнить резервное копирование данных перед установкой;
• 64 — выполнить откат установленного INF-файла;
• 256 — не строить список файлов при установке INF-файла;
• 512 — при установке INF-файла принудительно задерживать регистрацию ActiveX-объектов, которые должны быть зарегистрированы с помощью данного INF-файла.
Кроме INF-файлов, библиотека ADVPACK.dll позволяет также зарегистрировать отдельный ActiveX-объект. Каждый ActiveX-объект поставляется в виде файла с расширением OCX, регистрация которого происходит с помощью такой команды: rundll32.exe ADVPACK.dll, RegisterOCX «путь и имя файл .ocx».
Теперь рассмотрим набор команд rundll32.exe, предназначенных для открытия файлов Windows, имеющих специальные расширения и содержимое.
■ rundll32.exe CdfView.dll, OpenChannel «путь и имя файла канала» — открыть данный файл канала.
■ rundll32.exe CdfView.dll, Subscribe «путь и имя файла подписчика» — сделать данный канал доступным автономно.
■ rundll32.exe CRYPTEXT.dll, CryptExtAddCER «файл сертификата безопасности» — добавить данный файл сертификата безопасности.
■ rundll32.exe CRYPTEXT.dll, CryptExtAddCRL «файл списка отзывов сертификатов» — присоединить данный список отзыва сертификатов.
■ rundll32.exe CRYPTEXT.dll, CryptExtAddCTL «файл списка доверия сертификатов» — добавить данный список доверия сертификатов.
■ rundll32.exe CRYPTEXT.dll, CryptExtAddP7R «файл ответа на запрос сертификата» — присоединить данный файл ответа на запрос сертификата.
■ rundll32.exe CRYPTEXT.dll, CryptExtAddPFX «файл обмена личной информацией» — добавить данный файл обмена личной информацией.