В отделениях с узким каналом связи (~512 кбит/с) столкнулись с полной утилизацией канала, и как следствие, невозможностью нормальной работы пользователей за доменными компьютерами. Первым делом, подумали, канал может забить какой-то один компьютер, например инфицированный заразой. Посмотрев статистику с сетевого оборудования, узрели факт огромного количества трафика на 389 порту (LDAP). Трафик шёл с нескольких рабочих станций, и за рабочий день каждая машина в среднем прокачивала 500-900 мегабайт.
Сделав дамп трафика на нескольких проблемных машинах, заметил, в каждом случае контроллер домена возвращает информацию об учётных записях в домене.
В стандартном диспетчере задач Windows отловить проблемный процесс возможным не представляется, поэтому пришлось использовать утилиту Process Monitor.
Запустив утилиту на проблемном компьютере, и выбрав в фильтре только сетевую активность, увидел, такую картинку: Откроем свойства произвольного процесса и посмотрим, что именно исполняется в rundll32:
Увидев расположение библиотеки и ключи я сделал вывод, что запуск этого процесса тесно связан с принтером, потому как после перезагрузки этих процессов нет. Шквал сетевой активности внутри процесса появляется сразу после печати или открытия параметров устройства печати, использующего драйвер HP Universal Printing Driver (UPD). Удаление принтера, драйвера, их повторная установка, замена версии драйвера на более новую или старую результата не давали.
Моему удивлению не было предела, когда в описаний функций оповещений UPD я обнаружил сведения: Если переменная %USERDNSDOMAIN% имеет значение, то UPD используя LDAP запросы пытается определить количество пользователей в домене, если пользователей больше 100, то функции оповещения автоматически отключаются.
Для форсированного отключения “пакостной” функции оповещения в драйвере UPD на всех компьютерах можно воспользоваться несколькими способами:
1. Запустить инсталлятор UPD с ключами “/gdssnp /ni”, где “/gdssnp” – отключит оповещения, а “/ni” не будет производить установку/переустановку драйвера. Используя данный метод, параметры применятся ко всем принтерам с UPD.
2. Вручную создать ключ “SSNPNotifyEventSetting” с значением “0” и типом DWORD 32bit в ветке “HKLM\SYSTEM\CurrentControlSet\Control\Print\Printers\<PrinterName>\PrinterDriverData”. Используя этот метод, значение нужно будет создавать для каждого принтера.
3. Вручную, в параметрах устройства UPD, как показано в описании функций оповещений UPD.
4. Воспользоваться утилитой HP Driver Deployment Utility (DDU) из комплекта HP Printer Administrator Resource Kit (PARK) и подготовить драйвер с необходимыми параметрами для новых установок.
5. Использовать шаблоны групповых политик входящих в состав PARK для настройки всех компьютеров и подключенным к ним принтеров использующих UPD.
Добавить комментарий