![]() |
Удаление драйвера/устройства из системы скриптом
Всем доброго времени суток.
Задача: автоматизировать управление оргтехникой на предприятии Проблемные устройства: HP LJ1536DNF Суть проблемы: развертывание сканеров на ПК пользователей, а также обновление конфигурации (удаление/повторное развертывание). Если с развертыванием я хоть как то справился за счет подобной статьи: https://nashadmin.ru/obslujivanie-or...na-windows-xp/ (что собственно уже довольно неплохо!), но как быть с тем чтобы удалить устройство без подключения по удаленке и беготни до рабочей станции пользователя - вопрос. К развертыванию я пришел через отслеживание действий установщика HP через программу ProcessMonitor от microsoft и там заметил, что запускается один хитрый бинарник входящий в установочный пакет. Пробовал провернуть подобную авантюру при процессе удаления устройства. Все что смог найти: svhost.exe работающий от имени пользователя "система" инициирует процесс DrvInst.exe и с помощью него как то удаляет устройство. В любом из случаев пользуюсь ли я удалением через HP Installer или через диспетчер устройств всегда svchost.exe порождает процесс DrvInst.exe с такими параметрами командной строки: DrvInst.exe "5" "0" "C:\Windows\System32\DriverStore\FileRepository\hppasc_lj1530.inf_amd64_neutral_0481e7ad62037b2c\hpp asc_lj1530.inf" "0" "42c050f5a" "0000000000000608" "WinSta0\Default" Собственно я понятия не имею как и чем взаимодействовать с svchost.exe, чтобы запускались подобные процессы. Если ли у кого либо из Вас идеи как это (удаление устройств и драйверов) реализовать? Спасибо! |
Как зачастую бывает, стоит только написать топик на форум у самого что то да и получится.
Решение через утилиту devcon.exe Ранее я его встречал и скачивал devcon отдельно, только утилита молчала как партизан при попытке вызова и ничего толком не выходило. Теперь же я скачал полностью Development Kit и извлек оттуда данную утилиту. Скачивание и извлечение делал по советам отсюда: https://superuser.com/questions/4290...a-command-line Утилиту запускал так: .\devcon /r remove "vid_03f0&pid_012a&IP_SCAN" Где значение в кавычках это ID оборудования взятое из диспетчера устройств в свойствах любого из однотипных сканеров HP. Собственно решение такое: При каждом запуске скрипта (логон) сначала будет запускаться удаление всего и вся, а затем добавление актуальных принтеров. По-умолчанию принтеры называются одинаково HP Scan Series (и + #2, #3 и так далее если устройств 2,3 и более соответственно). Это можно поправить поменяв в свойствах поле FriendlyName. Еще не пробовал делать это в скрипте. Когда получу полное решение опубликую следующим постом. |
ЗДЕСЬ zip архив с моего Dropbox т.к. он превышает 1MiB по-другому не вижу возможным поделиться им тут
Описал работу скрипта в его теле настолько, насколько счел это возможным и нужным. Считаю, что там все довольно подробно описано с пояснением почему воспользовался определенными вещами. Единственная проблема которая сейчас осталась: заставить запускаться данный скрипт через GPO на клиентских ПК под Win10 в то время когда сам контроллер домена W2K8R2. |
Под win10 тоже начало работать.
1) Нужно сделать так как написано в данной статье 2) Нужно установить последние обновления на Win10 Возможно достаточно было только 2) пункта. Я этого не проверил. Скрипт теперь успешно работает как под Win7, так и под Win10 через GPO с WinSrv2k8r2 |
Время: 15:39. |
Время: 15:39.
© OSzone.net 2001-