Практическое руководство. Публикация расширений оболочки проводника Windows и апплетов панели управления
Введение
С введением TS RemoteApps в Windows Server 2008 Beta3 администраторы серверов терминалов теперь могут предоставлять пользователям несколько отдельных приложений, не открывая рабочий стол Windows. При планировании предоставления приложений таким образом следует иметь в виду, что пользователям часто потребуется доступ к определенным апплетам панели управления или частям оболочки проводника, доступ к которым обычно осуществляется через рабочий стол Windows.
В следующих примерах показано, как публиковать эти элементы с помощью двух часто используемых дополнительных пакетов Windows Server 2003 Terminal Server, Citrix Presentation Server 4.0 и Provision Networks VAS (Virtual Access Suite), и их сравнение с тем, что возможно в Windows Server 2008. Бета 3 TS RemoteApps.
Апплет панели управления принтерами
Одним из наиболее часто требуемых апплетов панели управления, к которым пользователям потребуется доступ, является панель управления принтерами. Это требование существует, поскольку не все приложения предоставляют следующие параметры:
- выберите принтер, отличный от принтера пользователя по умолчанию
- изменить принтер по умолчанию
- изменить настройки принтера
- добавить принтер
- удалить принтер
Хотя « Принтеры и факсы » указаны в панели управления Windows, это не стандартный апплет панели управления (файл с расширением.cpl). Апплет панели управления принтерами и факсами на самом деле является расширением оболочки проводника Windows. Расширения оболочки — это библиотеки динамической компоновки (файл с расширением.dll), которые обычно доступны через пункты меню проводника Windows, пункты контекстного меню и т. д. и перечислены в реестре Windows в разделе HKEY_Classes_RootCLSID{Globally_Unique_Identifier}.
Поскольку реестр Windows — не самый простой инструмент для навигации для большинства людей, я бы рекомендовал администраторам, не обладающим экспертными знаниями о реестре Windows, использовать бесплатный инструмент, такой как ShellExView, для просмотра доступных расширений оболочки.
ShellExView предоставляет простой в использовании пользовательский интерфейс для просмотра и просмотра свойств доступных расширений оболочки.
Одна из целей публикации приложений — предоставить функциональные возможности, которые нужны конечным пользователям, без раскрытия базовой файловой системы или рабочего стола Windows. При публикации панели управления принтерами это означает возможность запуска панели управления принтерами и запрет пользователю просматривать другие апплеты панели управления, локальные или сетевые файловые ресурсы.
При использовании Citrix Presentation Server и Provision Networks VAS это делается следующим образом:
- Создайте каталог на сервере терминалов Windows с именем:
«Принтеры.{2227A280-3AEA-1069-A2DE-08002B30309D}» - Создайте копию « explorer.exe » и сохраните ее под узнаваемым именем, например, « PrintExplorer.exe ».
- Публиковать:
«%WinDir%PrintExplorer.exe /n,/root, %SystemDrive%Printers.{2227A280-3AEA-1069-A2DE-08002B30309D}»
- Выберите соответствующий значок принтеров из shell32.dll.
- Настройте приложение для использования общего доступа к сеансу, чтобы панель управления принтерами запускалась в том же сеансе сервера терминалов, что и запущенные пользователем приложения.
В Windows Server 2008 Beta 3 RemoteApp Manager процесс аналогичен:
- Создайте каталог на сервере терминалов Windows с именем:
«Принтеры.{2227A280-3AEA-1069-A2DE-08002B30309D}» - Добавьте « explorer.exe » в качестве TS RemoteApp
- В свойствах TS RemoteApp выберите:
« Всегда используйте следующие аргументы командной строки » - Введите следующее в качестве аргумента командной строки:
“ c :Printers.{2227A280-3AEA-1069-A2DE-08002B30309D} ”
Windows Server 2008 Beta 3 не позволяет:
- Запускаем копию explorer.exe
- Запуск панели управления принтерами в окне проводника с одной панелью с помощью переключателя «/n».
- Использование переключателя «/root» для запутывания локальной и удаленной файловой системы.
Рундлл32
Следует отметить, что, как и в большинстве других вещей в ОС Windows, существует более одного способа запуска расширения оболочки проводника.
Rundll32.exe можно использовать для создания расширений оболочки проводника, таких как:
- Диалоговое окно добавления принтера:
RUNDLL32 SHELL32.DLL, SHHelpShortcuts_RunDLL AddPrinter - Диалоговое окно подключения к принтеру:
RUNDLL32 WINSPOOL.DRV,ConnectToPrinterDlg - Поменять местами кнопки мыши:
RUNDLL32 USER32.DLL, SwapMouseButton - Диалоговое окно «Подключить сетевой диск»:
RUNDLL32 SHELL32.DLL,SHHelpShortcuts_RunDLL Подключиться - Диалоговое окно отключения сетевого диска:
RUNDLL32 SHELL32.DLL,SHHelpShortcuts_RunDLL Отключить
Rundll32.exe также можно использовать для открытия панели управления или определенных апплетов панели управления:
- Апплет панели управления:
RUNDLL32 SHELL32.DLL,SHHelpShortcuts_RunDLL - Апплет панели управления специальными возможностями:
RUNDLL32.EXE SHELL32.DLL, Control_RunDLL access.cpl - Добавить апплет панели управления мастером оборудования:
RUNDLL32.EXE SHELL32.DLL, Control_RunDLL hdwwiz.cpl - Добавить апплет панели управления «Удалить программы»:
RUNDLL32.EXE SHELL32.DLL, Control_RunDLL appwiz.cpl - Апплет панели управления автоматическими обновлениями:
RUNDLL32 SHELL32.DLL,SHHelpShortcuts_RunDLL wuaucpl.cpl - Апплет панели управления свойствами даты и времени:
RUNDLL32 SHELL32.DLL,SHHelpShortcuts_RunDLL timedate.cpl - Апплет панели управления «Свойства экрана»:
RUNDLL32.EXE SHELL32.DLL,Control_RunDLLdesk.cpl - Апплет панели управления свойствами мыши:
RUNDLL32.EXE SHELL32.DLL, Control_RunDLL main.cpl - Апплет панели управления сетевыми подключениями:
RUNDLL32.EXE SHELL32.DLL, Control_RunDLL ncpa.cpl - Апплет Панели управления Мастера настройки сети:
RUNDLL32.EXE SHELL32.DLL, Control_RunDLL netsetup.cpl - Апплет панели управления администратора источника данных ODBC:
RUNDLL32.EXE SHELL32.DLL, Control_RunDLL odbccp32.cpl - Апплет панели управления телефоном и модемом:
RUNDLL32 SHELL32.DLL,SHHelpShortcuts_RunDLL phone.cpl - Апплет панели управления свойствами параметров электропитания:
RUNDLL32 SHELL32.DLL,SHHelpShortcuts_RunDLL powercfg.cpl - Апплет панели управления принтерами и факсами:
RUNDLL32 SHELL32.DLL,SHHelpShortcuts_RunDLLПапка принтеров - Апплет панели управления региональными параметрами:
RUNDLL32 SHELL32.DLL,SHHelpShortcuts_RunDLL междунар.cpl - Апплет панели управления звуком и аудиоустройствами:
RUNDLL32 SHELL32.DLL,SHHelpShortcuts_RunDLL mmsys.cpl - Апплет панели управления Sun Java:
RUNDLL32 SHELL32.DLL,SHHelpShortcuts_RunDLL jpicpl32.cpl - Апплет панели управления системой:
RUNDLL32.EXE SHELL32.DLL, Control_RunDLL sysdm.cpl - Апплет панели управления учетными записями пользователей:
RUNDLL32.EXE SHELL32.DLL, Control_RunDLL nusrmgr.cpl - Апплет панели управления брандмауэром Windows:
RUNDLL32.EXE SHELL32.DLL, Control_RunDLL firewall.cpl - Апплет панели управления Центра обеспечения безопасности Windows:
RUNDLL32.EXE SHELL32.DLL, Control_RunDLL wscui.cpl
Синтаксис для rundll32.exe:
- « RUNDLL32.EXE <имя dll>, <точка входа> <необязательные аргументы>»
Предположим, кто-то хотел запустить панель управления свойствами дисплея, но хотел, чтобы она открывалась непосредственно на определенной вкладке, а не по умолчанию (крайняя левая вкладка). Это может быть достигнуто с помощью:
- Панель управления «Свойства экрана» (вкладка «Рабочий стол»):
RUNDLL32.EXE SHELL32.DLL,Control_RunDLLdesk.cpl,,0 - Панель управления «Свойства экрана» (вкладка «Заставка»):
RUNDLL32.EXE SHELL32.DLL,Control_RunDLLdesk.cpl,,1 - Панель управления «Свойства экрана» (вкладка «Внешний вид»):
RUNDLL32.EXE SHELL32.DLL,Control_RunDLLdesk.cpl,,2
Резюме
Windows предлагает несколько различных способов запуска расширений оболочки проводника и апплетов панели управления, будь то с помощью explorer.exe, копии explorer.exe или с помощью RUNDLL32.DLL. Важно не предполагать, что каждый из них будет работать одинаково в любой операционной системе и что каждый из них будет успешно запускаться без создания рабочего стола Windows. Всегда рекомендуется проводить тестирование в вашей среде, чтобы избежать непредвиденных результатов.
Использованная литература:
Как открыть определенные значки панели управления (.cpl) и файлы приложений (.jar,.doc,.xls,.msc,.mdb,.hlp) как опубликованное приложение
Как опубликовать диспетчер печати на терминальном сервере Windows NT/2000/2003
Как запустить инструменты панели управления, введя команду
ИНФОРМАЦИЯ: Интерфейс Windows Rundll и Rundll32
Использование RUNDLL32.exe в Windows