Одним из актуальных вопросов использования Windows 7 в корпоративной среде – предоставление мобильным пользователям прав на установку локальных устройств без назначения им прав локального администратора. В предыдущих версиях Windows (NT 4, Windows 2000 и XP) в большинстве случаев данный вопрос решался просто: мобильным пользователям предоставляли права локального администратора (или Power User), лишь потому что в командировке им может понадобиться установить и подключить внешнее устройство. Если несколько лет назад права на установку локальных устройств были нужны преимущественно для подключения локальных принтеров, то сейчас список таких внешних устройств существенно расширился, теперь необходимо не забывать о поддержке мобильных телефонов, гарнитурах, камерах и т.д.
Microsoft добавила ряд новшеств в свои последние ОС (Windows Vista и Windows 7), которые реализуют возможности централизованного корпоративного управления установкой локальных устройств. В данной статье я попытаюсь объяснить, что же происходит, когда к клиенту Windows 7 подключается новое внешнее устройство и каким образом на этот процесс можно влиять с помощью настроек групповых политик.
В Windows XP рядовой пользователь мог установить новое устройство, только в том случае, если данное устройство поддерживается одним из стандартных драйверов Windows, входящих в комплект установки, или же если драйвер для этого устройства доступен через службу обновлений Windows Update. В Windows XP количество устройств, поддерживаемых такими предустановленными драйверами по сравнению с Windows 7 было существенно ограничено. Службу, позволяющую обновлять драйвера устройств через Windows Update, Microsoft запустила в 2005 году, а как вы помните через год уже была выпущена Windows Vista, поэтому многие производители аппаратного обеспечения, похоже, решили не тратить средства на обеспечение возможности обновления драйверов своих устройств для Windows XP через Центр обновлений Windows. И именно по этим причинам, чтобы предоставить мобильному пользователю права на установку нового оборудования, корпоративным администраторам приходилось давать пользователям права локальных администраторов на их ноутбуках.
Вместе с выходом Windows Vista процедура установки новых драйверов несколько изменилась. В предыдущих версиях Windows драйвера устройств могли храниться в различных каталогах, теперь же в Windows Vista и последующих версиях Windows, появилось понятие «Хранилище драйверов» (Driver Store), которое является доверенным местоположением для хранения всех встроенных драйверов и пакетов драйверов сторонних разработчиков. Теперь в Windows можно установить только драйвер, хранящийся в этом хранилище Driver Store. Процесс доставки драйвера в Driver Store называется “staging” (поставка). Хорошая новость заключается в том, что любой драйвер, который имеется в хранилище драйверов, может быть установлен любым пользователем без прав локального администратора.
Давайте представим что же происходит, когда пользователь пытается подключить новое устройство к клиенту на Windows 7. По умолчанию Windows 7 пытается найти подходящий драйвер на Windows Update, и если искомый драйвер будет найден, автоматически скачает и поместит его в локальное хранилище Driver Store, т.е. перед установкой будет осуществлен процесс поставки драйвера (staging). В том случае, если подходящего драйвера не будет найдено, Windows продолжит поиск подходящего драйвера в локальном хранилище. Если подходящий драйвер будет найден, Windows установит его. Если драйвер вновь не будет обнаружен, система продолжит поиск по пути, указанному в значении ключа реестра DevicePath, это может быть локальный диск, например C:\Drivers или сетевая папка. Если и там драйвер не будет найден, Windows сообщит о том, что подходящего драйвер не было найдено.
Описанный выше процесс должен помочь большинству домашних пользователей и пользователям небольших компании решить проблему установки локальных устройств без наличия прав локального администратора. Однако в сетях крупных организаций появится ряд проблем:
- Многие компании хотят четко понимать и контролировать то, что устанавливается на их компьютерах. И даже если рассматривать содержимое узла Microsoft Windows Update как доверенное, во многих компаниях политика безопасности запрещает доступ на внешние ресурсы напрямую (в том числе и на Windows Update Server).
- Насколько мне известно, невозможно разделить процесс поиска на узле обновлений Microsoft обновлений безопасности Windows Security и драйверов устройств, следовательно, если организация использует свой локальный сервер WSUS, то клиенты будут искать драйвера на внешнем сервере Windows Update Server, и он же будет использоваться для скачивания обновлений Windows. Т.е. использование локального WSUS теряет свой смысл. (Если я не прав, поправьте меня).
- Если компания применяет очень жесткую политику по использованию конкретных устройств, то системные администраторы должны обеспечивать актуальность драйверов в локальном хранилище Driver Store на всех клиентах компании.
Но, не смотря на описанные проблемы, существует целый ряд обходных решений. И, как и многие другие настройки Windows, управление установкой драйверов устройств можно управлять при помощи групповой политики.
Настройки эти находятся в следующем разделе групповой политики: Computer Configuration \ Administrative Templates \ System \ Device Installation. Параметр в разделе User Configuration \ Administrative Templates \ System \Driver Installation будут игнорироваться, так как он не применим кWindows 7.
Запрещаем клиентам искать драйвера на узле Windows Update
Чтобы запретить клиентам Windows 7 искать драйвера на узле Windows Update, активируйте групповую политику “Specify search order for device driver source locations” и настройте ее — “Do not search Windows Update”.
Разрешаем обычным пользователям устанавливать драйвера устройств указанных типов
Параметр групповой политики с именем “Allow installation of devices using drivers that match these device setup classes” (находится в ветке Configuration \ Administrative Templates \ System \ Device Installation \ Device Installation Restrictions IT Administrators) позволяет разрешить обычным пользователям загружать и устанавливать драйвера устройств указанных классов. Это означает, что если IT департамент не в состоянии уследить за пакетами драйверов для принтеров, которые используют пользователи компании, можно разрешить установку драйверов принтеров всем пользователям сети, установку драйвером для других классов устройств же можно запретить.
Предварительная загрузка драйверов в хранилище Driver Store в Windows 7
Для ряда широко распространенных внешних устройств администратор может заранее поместить драйвера в хранилище на все системы мобильных пользователей компании. Сделать это можно следующим образом:
- Распространить драйвера вместе со стандартным корпоративным образом ОС
- Установить драйвера после установки системы клиента – postinstall (MDT, SCCM, WSUS)
- Распространение драйверов по требованию, в виде пакета программ
Я не буду подобно расписывать реализацию каждого их этих сценариев, но попробуем разобраться с типовой ситуацией, с которой администратор может столкнуться на практике.
Практически любой пользователь хочет иметь возможность синхронизации своего календаря с мобильным устройством, и если это устройство работает под управлением Windows Mobile, для подключения этого устройства к компьютеру с Windows 7 обязательно будет нужен Windows Mobile Device Center.
Если вы точно не знаете, какой драйвер нужен, позвольте системе самой найти и установить нужный драйвер с узла Windows Update. После окончания установки перейдите в каталог C:\Windows\System32\Driverstore и найдите свеже созданную папку.
Теперь вы может просто скопировать это каталог и распространить его по локальным хранилищам драйверов на корпоративные ПК. Другой метод – скачать пакет с драйвером непосредственно (как это сделать описано здесь http://support.microsoft.com/kb/323166) с узла Windows Update Catalogue.
Вы скачаете примерно следующий файл: X86-ar_bg_zh-tw_cs_da_de_el_en_es_fi_fr_…v_th_tr_sl_et_lv_lt_zh-cn_pt_ja-nec-20060042_b5eca0da489018bbc1930e42252b1034f739af15.cab. Далее этот CAB необходимо распаковать.
Далее я покажу, каким образом можно добавить скачанный драйвер в хранилище драйверов Driver Store Windows 7.
Чтобы добавить драйвер в хранилище, можно воспользоваться утилитой pnputil.exe, набрав примерно следующую команду:
Pnputil –a c:\data\mobile\wcerndis.if_x86_neutral_56159f2c2377f6d2\wcerndis.inf
Для тех, кому интересно, что на самом деле происходит при данной процедуре, познакомьтесь с журналом c:\Windows\INF\setupapi.dev.log.
Теперь, когда драйвер устройства помещен (pre-staged) в хранилище драйверов Windows 7, мы можем зайти под обычным пользователем и подключить наше мобильное устройство (в данном примере это Samsung Omnia GT8000 с Windows Mobile 6.5).
И опять подробный лог того, что происходит в setupapi.dev.log.
Итак драйвер уже помещен в каталог драйверов системы и после первого подключения устройства к компьютеру он установится и будет доступным к использованию.