Роман Клименко - Недокументированные и малоизвестные возможности Windows XP
Допустим, содержимое приведенного листинга находится в реестре. Теперь нужно ввести команду rundll32.exe IERNONCE.dll, RunOnceExProcess. Она указывает системе, что та должна обработать содержимое ветви системного реестра HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRunOnceEx. Результат обработки данной ветви можно увидеть на рис. 2.5.
Рис. 2.5. Способ работы запуска команд из ветви реестра HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRunOnceEx
Как видно на рисунке, при запуске команды rundll32.exe появляется диалог индикации, в котором указано, какой шаг установки сейчас выполняется. При этом был запущен Калькулятор, так как при сортировке между названиями параметров в разделе 1 Калькулятор, судя по названию параметра, запускается первым. После того как вы закроете окно Калькулятора, будет открыто окно командного процессора. При этом индикатор будет все еще указывать на первый шаг, ведь еще не началась обработка содержимого следующего раздела ветви (раздела 2). После того как вы закроете окно командного процессора, будет запущен Блокнот, и при этом индикатор начнет указывать на второй шаг операции установки.
Если вы не укажете значений параметров по умолчанию ни в одном из разделов данной ветви реестра, то индикатор установки отображаться не будет. Тем не менее сами команды будут выполняться.
Другие операции
В данном разделе будут перечислены некоторые команды rundll32.exe, которые не вошли ни в один из предыдущих разделов, но тем не менее с их помощью можно выполнить те или иные действия.
■ rundll32.exe INITPKI.dll, InitializePKI — позволяет установить поддержку файлов расширений сертификатов и отношения доверия в Active Directory.
■ rundll32.exe mobsync.dll, RegSetUserDefaults — с помощью данной команды можно быстро восстановить стандартные настройки синхронизации текущего пользователя при помощи сетевого соединения LAN. Все эти настройки находятся в ветви реестра HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionSyncmgrAutoSync«имя пользователя», которую команда и переписывает при своем запуске.
■ rundll32.exe mshtml, PrintHTML «путь к файлу» — с помощью этой команды можно вызвать диалог Печать для печати указанного файла.
■ rundll32 printui.dll, PrintUIEntry /s — позволяет отобразить диалоговое окно Свойства: Сервер печати. Аналогичное окно можно вызвать и с помощью контекстного меню папки Принтеры и факсы. Для этого в данном контекстном меню нужно выбрать команду Свойства сервера.
■ rundll32.exe MSI39.dll, VMAskDisableAutorun — очень интересная команда, которая используется при установке программы VMware. Сейчас практически повсюду можно услышать совет о том, как с помощью реестра отключить функцию автозапуска компакт-дисков — для этого нужно DWORD-параметру AutoRun, расположенному в ветви реестра HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesCdrom, присвоить значение 0. Можно это сделать и без обращения к реестру — достаточно вызвать данную команду, после чего перед вами отобразится диалог с вопросом, действительно ли вы хотите отключить автозапуск дисков (рис. 2.6), на который нужно ответить Yes. Следует только учитывать, что если автозапуск уже отключен, то никакого диалога выведено не будет.
Рис. 2.6. Результат выполнения команды rundll32.exe MSI39.dll, VMAskDisableAutorun
Если же вы уже запретили автозапуск компакт-дисков, то с помощью еще одной команды — rundll32.exe MSI39.dll, VMRestoreRegistry— можно включить его снова.
■ rundll32.exe NETPLWIZ.dll, ClearAutoLogon — еще одна интересная команда. Сейчас стало модно конфигурировать на компьютере автоматический вход в систему с правами указанного пользователя. Как вызвать диалог для этого, было рассказано ранее, сейчас же мы решим задачу отключения данной функции. Функция полезна лишь в домашних условиях — в корпоративной сети ее установка на клиентских компьютерах может создать большую брешь в среде безопасности предприятия. Если вам все время приходится проверять компьютеры на автоматический вход в систему, то для облегчения своей работы вы можете воспользоваться данной командой, ведь после ее вызова функция автоматического входа в систему будет отключена.
■ rundll32.exe NETPLWIZ.dll, SHDisconnectNetDrives — вызов данной команды приводит к отключению всех сетевых дисков (дисков, которые создаются с помощью команды Подключить сетевой диск в меню Сервис папки или в контекстном меню значка Мой компьютер). Если на данный момент ни один диск не подключен, то будет выведено сообщение о том, что сетевых дисков, которые можно отключить, нет.
ПРИМЕЧАНИЕ
Сам же мастер подключения сетевых дисков можно вывести не только с помощью меню Сервис или контекстного меню значка Мой компьютер, но и с помощью команды rundll32.exe shell32.dll, SHHelpShortcutsRunDLL Connect. При этом с помощью команды rundll32.exe shell32.dll, SHHelpShortcuts_RunDLL Disconnect можно выполнить отключение дисков.
■ rundll32.exe netshell.dll, DoInitialCleanup — выполнение данной команды удаляет содержимое ветви реестра HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionNetworkCards.
■ rundll32.exe NTPRINT.dll, PSetupKillBadUserConnections — вызов данной команды очищает неработающие соединения с принтерами. Список всех соединений с принтерами можно найти в ветви реестра HKEY_CURRENT_USERPrintersConnections, которую как раз и просматривает данная команда.
При этом список неработающих соединений находится в параметре строкового типа Bad Connections, расположенном в ветви реестра HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionPrint.
■ rundll32.exe NWCFG.dll, CleanupRegistryForNWCS — позволяет очистить реестр от настроек NWC (оболочка расширения для NetWare). После выполнения команды параметру NwcsInstalled в ветви HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionNWCS присваивается значение 0 (имеет тип DWORD). При запуске данной команды удаляется содержимое ветвей реестра HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionShell ExtensionsApproved (только несколько параметров) и HKEY_CLASSES_ROOTNetworkType3, а также сведения об ActiveX-объектах.
Если же вам необходимо выполнить обратную операцию, то есть установить или перерегистрировать в реестре информацию об NWC, то можно воспользоваться командой rundll32.exe NWCFG.dll, SetupRegistryForNWCS, которая именно для этого и предназначена.
■ rundll32.exe NWPROVAU.dll, NwCleanupGatewayShares — выполнение этой команды очищает список общих папок для клиентов NetWare. Список расположен в двух ветвях реестра — HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesNWCWorkstationShares и HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesNWCWorkstationDrives. Содержимое именно этих ветвей и удаляется соответствующей командой.
■ rundll32.exe powrprof.dll, SetSuspendState — вызов данной команды переводит компьютер в состояние спящего режима (если этот режим поддерживается оборудованием и включен на вкладке Спящий режим диалога Электропитание). Спящий режим — это режим работы компьютера, при котором все содержимое памяти сбрасывается на жесткий диск и компьютер выключается. Плюсом является быстрый переход между спящим режимом и обычным состоянием компьютера — в зависимости от объема оперативной памяти, установленной на компьютере, после подачи питания до входа в систему проходит отнескольких секунд до нескольких десятков секунд (не учитывая время на самотестирование компьютера). При этом пропускаются такие шаги загрузки, как выбор операционной системы (если на компьютере используется несколько операционных систем) и собственно регистрация пользователя в системе — просто содержимое сброшенной на жесткий диск памяти помещается обратно в оперативную память, и работа системы продолжается, как будто никакого спящего режима не было.
■ rundll32.exe RASAPI32.dll, RasSetSharedAutoDial — выполнение данной команды присваивает DWORD-параметру SharedAutoDial значение, равное 1. Он находится в ветви реестра HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesSharedAccessParameters.
■ rundll32.exe rasdlg.dll, RasUserEnableManualDial — выполнение данной команды присваивает DWORD-параметру OperatorDial значение, равное 1. Он находится в ветви реестра HKEY_USERS.DEFAULTSoftwareMicrosoftRAS Logon Phonebook.
■ rundll32.exe rasman.dll, RasDoIke — выполнение данной команды может привести к частичному зависанию компьютера. Сначала нельзя получить доступ к Панели задач и меню Пуск, а также ко всем открытым приложениям. При попытке открытия Диспетчера задач происходит полное зависание компьютера. При этом такие программы, как Проигрыватель Windows Media, будут работать, будет возможно обращаться к общедоступным папкам компьютера, но нельзя будет получить доступ к оболочке операционной системы.
■ rundll32.exe shell32.dll, Control_FillCache_RunDLL — позволяет выполнить начальную инициализацию Панели управления.
■ rundll32.exe SPOOLSS.DLL, UpdatePrinterRegAll — с помощью этой команды можно обновить в реестре все сведения о принтерах системы для всех пользователей. Команда удаляет (и заново создает на основе текущих данных) следующие ветви реестра: HKEY_CURRENT_USERPrintersDevModePerUser, HKEY_CURRENT_USERSoftwareMicrosoftWindowsNTCurrentVersionDevices, HKEY_CURRENT_USERSoftwareMicrosoftWindows NTCurrentVersionPrinterPorts.
■ rundll32.exe sti_ci.dll, [email protected]@YGHXZ— выполнение команды приводит к созданию в списке Стандартные меню Пуск ярлыка Мастера работы со сканером или цифровой камерой. Существует также возможность автоматического удаления созданного ярлыка. Для этого используется команда rundll32.exe sti_ci.dll, [email protected]@YGHXZ.