Процесс импорта драйверов и сборка Driver Packages - обычная задача, но нужно понимать, как происходит этот процесс:
- Driver Source Path - сетевой путь, откуда мы будем импортировать драйверы
- Driver Package Source - источник драйверов для Driver Package. Сюда будут скопированы драйверы после импорта
- Driver Package - сам пакет драйверов, который мы распространяем на Distribution Points
Важный момент - когда мы делаем Import Driver, если такой драйвер уже существует, импортирован повторно он не будет, не смотря на то, что у нас по умолчанию установлена опция
Specify the option for duplicate drivers - Import the driver and append a new category to the existing categories
При этом, когда мы начинаем собирать Driver Package, все драйверы, входящие в его состав, будут скопированы в Driver Package Source Path.
Для наглядности процесса импорта драйверов и работы с дубликатами, создадим в Driver Source Path два каталога с драйверами:
- HP Envy - уникальный драйвер Intel Discrete LAN, общий драйвер Realtek Audio
- Lenovo P360 - уникальный драйвер Broadcom Discrete LAN, общий драйвер Realtek Audio
Процесс импорта драйверов можно посмотреть в логе DriverCatalog.log. Посмотрим в него, когда начнем импортировать дубликаты драйверов.
Начинаем импортировать драйверы для Lenovo P360, используя опцию Import the driver and append a new category to the existing categories. Зададим для импортируемых драйверов категорию по модели.
Первые 3 драйвера у нас совпадают с теми, что мы уже импортировали для HP Envy. Посмотрим в лог DriverCatalog.log:
Здесь мы видим дубликаты, видим, что размер совпадает. Теперь давайте посмотрим, что у нас в Driver Catalog со стороны Configuration Manager:
Здесь мы не видим дубликатов, видим только, что к дубликатам просто добавилась новая категория, а вот Driver Source Path у нас ссылается на HP Envy.
Давайте посмотрим в Driver Package:
Здесь мы видим ту же самую картину - Driver Source Path разный, хотя Driver Package Source у нас дубликаты содержит.
Откуда взялась идея всего этого разбора и дальнейших действий по импорту дубликатов? Так вышло, что на некоторых томах файлового сервера была включена Дедупликация, которая не поддерживается для Source в Configuration Manager. Исключения были сделаны некорректно, потому что для их добавления, сначала нужно было полностью отключить дедупликацию, дождаться обработки, сделать исключения и только потом включать дедупликацию обратно.
Так вышло, что часть драйверов находились "в дедупликации", а часть были полноценными. Собирался "кривой" пакет и на выходе мы получали не очень работоспособную ОС.
Наверное, корректным было бы наоборот избавляться из дубликатов, но "нет времени объяснять - деплой".
Для большого количества нового оборудования нужно было разместить новые драйверы в Driver Source Path на томе без дедупликации, Driver Package Source так же разместить на томе без дедупликации, а так как драйверы имели дубликаты, необходимы было принудительно импортировать их в Driver Catalog.
Здесь важно понимать, как Configuration Manager определяет, что драйвер является дубликатом: Configuration Manager считает "master hash" для каждого каталога, если такой же уже есть - это дубликат. Все, что нам нужно сделать - это, например, добавить в каждый каталог драйверов пустой/файл с одним символом и мы получим уникальный "master hash":
Импортируем из нового Driver Source Path те же самые драйверы:
Все импортируемые драйверы уже есть в Driver Catalog, но для Configuration Manager дубликатами они теперь не являются.
BAT-скрипт для создания файлов в подкаталогах с точкой внутри:
@ECHO OFFfor /f "tokens=*" %%G IN ('dir /ad /b /s') DO (echo . > "%%G\%~n0.txt")
Файл будет создаваться по имени BAT-скрипта.