|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] .bat: удаление значения реестра после отбора |
|
|
CMD/BAT - [решено] .bat: удаление значения реестра после отбора
|
Новый участник Сообщения: 14 |
Профиль | Отправить PM | Цитировать Добрый день!
Весь день в гугле, но поскольку сам далек от программирования, то ничего толком не получается. Помогите, пожалуйста, решить непосильную задачу: Есть такой раздел в реестре: HKLM\System\CurrentControlSet\Enum\USB, куда сохраняются любые устройства при присоединении к ПК через USB. В данном разделе при присоединении устройства создаются подразделы (назовем их для удобства подразделы 1), содержащие в названии Vid и Pid устройств, например: HKLM\System\CurrentControlSet\Enum\USB\Vid_0930&Pid_6544 HKLM\System\CurrentControlSet\Enum\USB\Vid_03f0&Pid_3b17 и т.д. В свою очередь, в этих подразделах (1) создаются еще подразделы (2), содержащие в названии SN устройств, например: HKLM\System\CurrentControlSet\Enum\USB\Vid_0930&Pid_6544\0765432567654 HKLM\System\CurrentControlSet\Enum\USB\Vid_0930&Pid_6544\2131231233231 и т.д. В подразделах (2) есть параметр типа REG_SZ, который называется Service. Он содержит информацию о том, что за устройство было подключено. Например, если он равен USBSTOR, то была подключена флешка. =================================== Теперь сама задача, которую я устал решать вручную: Нужно удалить с ПК все флешки. Необходимо, чтобы умный bat-файл проверял каталог HKLM\System\CurrentControlSet\Enum\USB на содержимое файлов Service (которые лежат в подразделах (2), причем имена подразделов (1) и (2) у всех устройств разные), а потом удалял нужный подраздел (1), например: Флешка была HKLM\System\CurrentControlSet\Enum\USB\Vid_0930&Pid_6544\0765432567654 (параметр Service=USBSTOR), значит нужно удалить подраздел HKLM\System\CurrentControlSet\Enum\USB\Vid_0930&Pid_6544. Проблема в том, что нельзя просто удалить папку USB, т.к. в ней, помимо флешек, еще много всего нужного - USB-хабы, принтеры, мышки, USB-порты виртуальных машин и т.д. Я так понимаю, что нужен предварительный поиск и сохранение пути для удаления в какую-то переменную, причем это должно быть в цикле, но сколько с интернета всего скачал - ничего не получается собрать вместе. Заранее огромное спасибо, господа скриптеры . |
|
Отправлено: 11:36, 16-08-2011 |
Новый участник Сообщения: 14
|
Профиль | Отправить PM | Цитировать Нашел такое:
@echo off set sKey=HKCU\Software\Microsoft\Internet Explorer\TypedURLs for /f "delims= " %%i in ('reg.exe query "%sKey%" ^| find /i "www.microsoft.com"') do (reg.exe delete "%sKey%" /v "%%i" /f >nul) Почти подходит, надо только чтобы удалял не просто параметр, а еще и 2 подраздела выше. И искал на 2 раздела ниже, не зная их названий. |
Последний раз редактировалось Lightman123, 16-08-2011 в 12:01. Отправлено: 11:48, 16-08-2011 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 849
|
Профиль | Отправить PM | Цитировать Lightman123, не совсем в тему, но...
Есть замечательная утилита USBDeview которая отображает все USB девайсы в системе, а так же может удалять их следы |
Отправлено: 11:53, 16-08-2011 | #3 |
Новый участник Сообщения: 14
|
Профиль | Отправить PM | Цитировать Да, я знаю, спасибо, но USBDeview удаляет только из USB, причем только из CurrentControlSet, а при присоединении флешки следы остаются более чем в 15 ветках реестра.
Хочу все засунуть в 1 bat файл для ускорения процесса. |
Отправлено: 11:58, 16-08-2011 | #4 |
Ветеран Сообщения: 849
|
Профиль | Отправить PM | Цитировать Цитата Lightman123:
а используются только 2 указанные в ключах HKEY_LOCAL_MACHINE\SYSTEM\Select Current и LastKnownGood все остальные висят вхолостую и не используются |
||
Отправлено: 12:24, 16-08-2011 | #5 |
Новый участник Сообщения: 14
|
Профиль | Отправить PM | Цитировать Да, я это знаю, спасибо.
Я говорю это к тому, что даже если взять только каталог CurrentControlSet, то в нем факт подключения флешки остается более чем в 15 ветках! USB, USBSTOR, RemovableMedia, DeviceClasses, USBFlags и т.д. Большую часть из них я уже объединил в 1 файл, но там все просто - удаляется целиком раздел, потом новый создается. А вот с USB затык - тут нужен предварительный отбор. Помогите, пожалуйста, со скриптом |
Отправлено: 12:28, 16-08-2011 | #6 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Lightman123:
Какова конечная цель? Вам надо предотвратить использование новых и уже ранее подключённых флэшек? Или Вы пытаетесь следы использования зачистить? |
|
Отправлено: 12:47, 16-08-2011 | #7 |
Новый участник Сообщения: 14
|
Профиль | Отправить PM | Цитировать Зачистить следы. Устал это делать вручную в реестре + USBDeview.
Большая часть веток уже добавлена в bat-файл, а вот с этой возник затык... |
Отправлено: 12:50, 16-08-2011 | #8 |
Старожил Сообщения: 175
|
Профиль | Отправить PM | Цитировать @echo off setlocal enabledelayedexpansion set "Section=HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB" for /f "tokens=*" %%a in ('reg query %Section% /s ^| findstr "%Section%\\Vid_ USBSTOR"') do ( if "%%a"=="Service REG_SZ USBSTOR" (if "!ps:~0,4!"=="Vid_" echo reg delete "%Section%\!ps!" /f >> usbstor.txt) set "ps=!s!"&set "s=%%~na" ) |
Отправлено: 15:07, 16-08-2011 | #9 |
Новый участник Сообщения: 14
|
Профиль | Отправить PM | Цитировать Огромное спасибо! Работает!
|
Отправлено: 15:32, 16-08-2011 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Получение значения параметра реестра | IfoR | Скриптовые языки администрирования Windows | 6 | 08-04-2010 12:54 | |
CMD/BAT - [решено] Получение значения параметра реестра | user_123 | Скриптовые языки администрирования Windows | 3 | 05-04-2010 13:10 | |
Разное - Изменение значения реестра через батник | Raver777 | Microsoft Windows 2000/XP | 3 | 22-03-2009 23:46 | |
Разное - Изменить значения реестра из другой ОС | Белтон | Лечение систем от вредоносных программ | 5 | 10-05-2008 17:09 | |
Доступ - Авто экспорт значения ключа из реестра | Billy Bones | Microsoft Windows 2000/XP | 3 | 26-07-2007 11:50 |
|