Управляемые среды Windows — благо для администратора: они обеспечивают централизованное развертывание программного обеспечения и высокую стабильность клиентов при низких издержках на подготовку к работе и эксплуатацию. Фундаментальные принципы остаются неизменными и базируются на определенных, а значит, и воспроизводимых правилах для системных сред. Однако во избежание неконтролируемых изменений системы и в целях безопасности администраторам приходится ограничивать права пользователей.
Устройства Plug-and-Play (PnP) просты и удобны в применении и потому давно утвердились в качестве стандарта — в основном, в форме устройств USB. На рабочем месте они выполняют важные функции, весьма полезные именно в деловой сфере, к примеру для незапланированного подключения принтера к ноутбуку. Однако присутствие устройств PnP в управляемых средах Windows ведет к появлению целого ряда вопросов: какими правами должен обладать пользователь для их инсталляции, как обеспечить наличие необходимого драйвера, когда и где его установить, а также каким образом запретить использование нежелательных устройств?
ИНСТАЛЛЯЦИЯ PNP В ПОДРОБНОСТЯХ
Драйвер шины распознает устройство PnP при его подключении и сообщает об этом менеджеру PnP в режиме ядра. Менеджер PnP запрашивает у драйвера шины информацию о новом устройстве, включая идентификаторы аппаратного обеспечения, идентификаторы совместимости и прочие параметры, к примеру класс только что подключенного устройства. После этого менеджер PnP в режиме ядра информирует менеджер PnP в режиме пользователя о том, что необходимо инсталлировать устройство. Затем менеджер PnP на основе идентификаторов аппаратного обеспечения или совместимости ищет в системе подходящий драйвер (см. Рисунок 1).
Рисунок 1. При инсталляции устройств PnP задействуются многие программные компоненты. |
В этот момент решается, какой тип инсталляции можно провести. В Windows их два: со стороны клиента и со стороны сервера. В случае инсталляции со стороны сервера подходящие драйверы уже должны быть установлены, а задействованные компоненты драйвера подписаны. При выполнении названных условий инсталляция со стороны сервера проходит автоматически, а необходимые права система предоставляет сама. Если указанные критерии не выполнены, инсталляция автоматически начинается со стороны клиента. Это имеет место, когда подходящий драйвер найти не удается, и программа инсталляции вынуждена запросить у пользователя носитель с ним.
При инсталляции со стороны клиента осуществляется взаимодействие с пользователем, в большинстве случаев — в форме известного «ассистента для поиска нового аппаратного обеспечения». Для инсталляции драйвера зарегистрированному пользователю нужны права администратора, поскольку данная процедура влечет за собой изменения в системе. Далее в зависимости от типа инсталляции следуют выбор и инсталляция подходящего драйвера: со стороны сервера — при взаимодействии менеджеров PnP в режиме пользователя и ядра, со стороны клиента — в режиме пользователя с привлечением новой динамически подключаемой библиотеки (Dynamic-Link Library, DLL) и с применением «ассистента для поиска нового аппаратного обеспечения». После инсталляции драйвера менеджер PnP в режиме ядра снова получает управление, загружает драйвер и запускает устройство (см. Таблицу 1).
Таблица 1. Критерии для инсталляции со стороны клиента и сервера. |
ПРАВА АДМИНИСТРАТОРА — ВСЕМ ПОЛЬЗОВАТЕЛЯМ?
С точки зрения администраторов, желательна инсталляция со стороны сервера. Но из-за условий этого метода большинство инсталляций драйверов проходит со стороны клиента. Тогда пользователям требуются права администратора — исключение составляет инсталляция драйверов принтера, для которой необходимы права главного пользователя. Если предприятие предоставит права администратора всем пользователям, чтобы они были в состоянии инсталлировать устройства PnP, то это доведет до абсурда сами принципы управляемых сред Windows: каждый пользователь получит полный контроль над локальной системой.
Microsoft в документе KB219435 («Разрешение загрузки и удаления драйверов устройств для лиц, не обладающих полномочиями администратора») рекомендует предоставить соответствующие права при помощи команды Run-as. Однако для практического использования этот метод не годится: он подходит только для обновления драйверов и, кроме того, не может быть автоматизирован.
В любом случае пользователю нужно будет получить локальную учетную запись администратора. В результате администратор теряет контроль над системой.
ПРОБЛЕМЫ С PNP В УПРАВЛЯЕМЫХ СРЕДАХ
К другим проблемам относятся инсталляторы класса, setup.exe, а также серийные номера устройств. Инсталляторы класса, или соинсталляторы, позволяют проводить дополнительные действия во время инсталляции и воздействовать на выполняемое Windows ранжирование при поиске нескольких подходящих драйверов. Они регистрируются в зависимости от класса устройства. Если маркировка для соинсталляторов или инсталляторов внутри класса отсутствует, то все инсталляции этого класса автоматически запускаются со стороны клиента.
Когда для функционирования устройства PnP требуется дополнительное программное обеспечение, производители часто предоставляют возможность классической инсталляции с помощью файла setup.exe. Он содержит собственно драйвер и необходимое ПО. В этом случае администратор управляемой среды должен попытаться предоставить нужные компоненты с помощью имеющейся системы распространения ПО. При этом запланировать момент инсталляции нельзя, поскольку он наступает при подключении устройства и может случиться на любой системе. Для того чтобы провести инсталляцию и обеспечить использование устройства, развертывание программного обеспечения должно включать в себя соответствующие согласованные функции.
Как правило, инсталляция драйверов вызывает динамические системные изменения. Так, серийный номер устройства читается и применяется при его регистрации. В общем случае это нельзя реализовать посредством обычных стандартных команд распространения программного обеспечения для всех устройств одного типа. Т. е. для инсталляции драйверов процедура развертывания программного обеспечения должна предоставлять специальные команды. Если серийного номера нет, система идентифицирует и регистрирует устройство по разъему, к которому оно подключено. Инсталлированные таким образом устройства при их подключении к другому разъему часто воспринимаются как «новые», что ведет к повторной инсталляции, в результате чего нередко неожиданно возникает проблема отсутствия прав из-за проведения инсталляции со стороны клиента.
В случае инсталляции со стороны сервера система автоматически устанавливает соответствующий драйвер, после чего устройство PnP готово к работе. Если администратор намерен запретить его использование, к примеру из-за действующих директив безопасности, сделать это немедленно не удастся. В статье КВ241367 («Как предотвратить автоматическую инсталляцию аппаратного обеспечения в Windows 2000») Microsoft предлагает «конвертировать» инсталляцию со стороны сервера в инсталляцию со стороны клиента путем удаления файла driver.cab. Но для управляемых сред Windows указанный метод не годится: такое действие повлечет за собой удаление всех стандартных файлов с драйверами Windows. Дифференциация между устройствами, мышью и принтером, например, а также их драйверами невозможна. Как следствие, все устройства, которые обычно инсталлируются при помощи стандартных драйверов Windows, теперь придется устанавливать со стороны клиента. Но тогда снова встает вопрос отсутствия прав.
Все перечисленные аспекты затрагивают и мобильное использование компьютеров. Здесь вероятность непредвиденной, а значит, незапланированной инсталляции и применения такого оборудования, как принтер, особенно велика. В качестве примера можно привести пользователя ноутбука, который вынужден инсталлировать новое устройство при встрече с клиентом или во время командировки, чтобы показать свою презентацию или оформить договор.
Реализованная в последних версиях Windows 2000 и ХР поддержка устройств PnP имеет значительный потенциал для улучшения. Но что же изменится с появлением Vista в отношении используемых для этого публикаций? Microsoft планирует полностью переработать архитектуру системы, благодаря чему пропадет разница между инсталляциями со стороны клиента и со стороны сервера.
В результате останется только серверная инсталляция, при которой будут использоваться лишь подписанные драйверы. У администраторов должна появиться возможность самостоятельно подписывать драйверы при помощи маркировки Authenticode и разрешать применять их в своих доменах. Тогда пользователям не понадобятся права администратора. В зависимости от групповых правил администраторы смогут устанавливать драйверы сразу на несколько систем. Драйверы проверяются перед началом инсталляции и в случае успешной проверки передаются вместе со всеми файлами в специальное локальное хранилище, откуда осуществляется собственно инсталляция. Таким образом, разработчики пытаются устранить необходимую во многих случаях дополнительную инсталляцию файлов и снять проблему повторного приобретения утерянных инсталляционных дисков. Контроль доступа будет реализован в соответствии с групповыми правилами путем запрета использования устройств и их классов.
ДОПОЛНИТЕЛЬНЫЕ ИНСТРУМЕНТЫ
Для приведения в соответствие концепции управляемой среды Windows и использования устройств PnP необходимы дополнительные инструменты. Возможностей, предлагаемых Windows, недостаточно. На помощь приходят разные решения:
- из области развертывания программного обеспечения с интегрированными функциями для обращения с устройствами PnP;
- из области обеспечения безопасности ИТ, которые в первую очередь фокусируются на контроле за устройствами и их блокировании;
- специальные инструменты для взаимодействия с устройствами PnP, интегрируемые в существующие системные среды.
Важнейший вопрос при выборе инструмента звучит так: полностью ли он охватывает необходимую функциональность? Если акцент делается на обеспечение безопасности информационных технологий, то вовсе не обязательно устраняется проблема отсутствия прав при инсталляции; если решение предоставляет эти права, оно не всегда включает в себя функции контроля контроля за использованием. Для предоставления отсутствующих при инсталляции со стороны клиента прав успешно используется подход из области развертывания программного обеспечения: делегирование инсталляции службе с административными правами «компенсирует» отсутствие прав. Эту функцию дополнительный инструмент должен поддерживать в любом случае, а кроме того, обеспечивать единообразную для всей системы инсталляцию драйверов, к примеру при помощи специальной команды, которая использует внутренние интерфейсы Windows. В отличие от классического развертывания программного обеспечения, она должна активироваться при наступлении определенного события, такого, как подключение устройства PnP, и блокировать внутреннюю инсталляцию Windows.
Из-за многочисленности инсталлируемых устройств нужна возможность создания пула драйверов, причем он должен обслуживаться централизованно и быть доступен для автономного применения на мобильных системах. Желательной и часто полезной является функция, позволяющая в исключительных ситуациях загрузить любой драйвер удаленно, к примеру по телефонному соединению с использованием однократного кода. Если инструмент ведет свое происхождение не из области развертывания программного обеспечения, он должен интегрироваться в существующую систему развертывания, чтобы принятые методы подходили и для комбинированной инсталляции драйверов. И, наконец, необходима поддержка функции управления всеми типами устройств PnP с обеспечением централизованного управления.
Ричард Краули — генеральный директор и основатель компании Cebicon.
? AWi Verlag