Как удалить множество подразделов в реестре windows
Перейти к содержимому

Как удалить множество подразделов в реестре windows

  • автор:

Как вручную удалить записи из списка в диалоговом окне «Установка и удаление программ»

Внимание! Решение проблемы связано с внесением изменений в системный реестр. Перед внесением изменений рекомендуется создать архивную копию системного реестра и изучить процедуру его восстановления. Дополнительные сведения об использовании редактора реестра см. в следующей статье базы знаний Майкрософт:

256986 Описание реестра Microsoft Windows

Аннотация

Данная статья содержит сведения об удалении в ручном режиме записей в диалоговом «Установка и удаление программ», которые продолжают отображаться после удаления самой программы.

Дополнительная информация

Внимание! Неправильное использование редактора реестра может привести к возникновению серьезных неполадок, требующих переустановки операционной системы. Корпорация Майкрософт не несет ответственности за неправильное использование редактора реестра. При изменении реестра полагайтесь на свой опыт и знания.

Программы, совместимые с Windows, могут иметь в своем составе специальное средство или функцию удаления. Такие программы отображаются в диалоговом окне «Установка и удаление программ». Удалять название программы из списка в диалоговом окне «Установка и удаление программ» вручную приходится в том случае, если в процессе удаления программы неправильно удаляется раздел реестра, отвечающий за отображение названия программы.

  1. Выберите в меню Пуск пункт Выполнить, введите в поле Открыть команду regedit и нажмите клавишу ВВОД.
  2. Найдите и выделите следующий раздел реестра: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall
  3. Выделив раздел Uninstall, выберите в меню Реестр пункт Экспорт файла реестра.
  4. В окне Экспорт файла реестра в поле Сохранить выберите Рабочий стол, введите в поле Имя файла имя uninstall и нажмите кнопку Сохранить.
  5. Каждый подраздел в разделе Uninstall соответствует программе, которая отображается в диалоговом окне «Установка и удаление программ». Чтобы определить название программы, выделите подраздел и найдите значения следующих параметров: DisplayName — название программы, которое отображается в диалоговом окне «Установка и удаление программ»

Как удалить раздел реестра, используя язык c#

Как удалить раздел реестра Windows, используя язык c#

В этой статье продолжаем работать с реестром Windows программным путем, сегодня Вы узнаете, как удалить раздел реестра или несколько подразделов, используя язык c#.

В прошлом статье, как удалить параметр реестра, мы удалили все параметры в подразделе Вася. Так как теперь данный раздел реестра пуст, то не будем захламлять реестр и удалим данный раздел.

Для этого нам понадобиться класс RegistryKey и его метод DeleteSubKey, который позволяет удалить раздел реестра. Передаем в данный метод первым параметром раздел реестра для удаления, а вторым параметром указываем, нужно ли нам получать Exception, в случаи возникновения какой-нибудь ошибки, true да , иначе false.

private static void regDeleteSubKeyVasya() < string subKey = "Friends"; using (RegistryKey regKey = Registry.CurrentUser.OpenSubKey( subKey,true)) < if (regKey != null) < regKey.DeleteSubKey("Вася", true); >> >

как удалить раздел реестра

В качестве ещё одного примера удалим все остальные подразделы реестра, включая основной раздел реестра «Friends», а так же существующие в них параметры и значения.

Для этого нам понадобиться воспользоваться методом DeleteSubKeyTree, всё того же класса RegistryKey, который рекурсивно удаляет указанный раздел и все дочерние подразделы. Вторым параметром указываем true или false, будем возникать исключение, или нет.

private static void regDeleteSubKeyTree() < string subKey = "Friends"; using (RegistryKey regKey = Registry.CurrentUser.OpenSubKey( subKey, true)) < if (regKey != null) < Registry.CurrentUser.DeleteSubKeyTree(subKey, true); >> >

Снова воспользуемся редактором для работы с реестром Windows regedit, как видно раздел успешно удалён.

regedit

  • Удаление колонки в DataGridView
  • Как найти гласные буквы в тексте?
  • Как определить версию Windows с помощью языка C#

Как удалить параметр реестра Windows, используя язык c#

В этом уроке научимся удалять параметры реестра, используя язык c#. Параметры будем удалять, как по одиночке, так и несколько за один раз.

Поставим задачу необходимо удалить параметр реестра «age» в подразделе «Вася». Для решения задачи, нам необходимо воспользуемся классом RegistryKey, который содержит метод DeleteValue. Который принимает два параметра: имя параметра и вызов Exception.

Данный метод прекрасно подходит, если надо удалить какие-то параметры реестра. Вторым параметром метод принимает либо true — тогда будет возникать Exception в случаи ошибки, либо false, если ничего происходить не должно.

private static void regDeleteParamAge() < string subKey = @"Friends\Вася"; string value; usingRegistryKey regKey = Registry.CurrentUser.OpenSubKey( subKey,true)) < if (regKey != null) < regKey.DeleteValue("age", true); >Console.WriteLine(value); > >

как удалить параметр реестра

В качестве ещё одного примера, удалим оставшиеся параметры данного раздела: car, phone, year.

static void DeleteAllParameters() < string nameSubKey = "Friends"; string nameFriend = "Вася"; string [] nameAllParameters = null; using (RegistryKey regKey = Registry.CurrentUser.OpenSubKey( nameSubKey).OpenSubKey(nameFriend, true)) < if (regKey != null) < nameAllParameters = regKey.GetValueNames(); foreach (string item in nameAllParameters) < regKey.DeleteValue(item, true); >> > >

Сначала для проверки откроем данный раздел, чтобы убедиться, что он существует. Если раздел существует, то при помощи метода GetValueNames, получим все имена параметров, после чего надо будет удалить параметр реестра, но так как их несколько воспользуемся циклом foreach. Метод для удаления параметра остается прежним DeleteValue.

удалить параметры реестра

  • Как загрузить xml файл?
  • Visual studio Insert snippet
  • Как выделить строку в DataGridView?

Удаление разделов реестра по маске

Author24 — интернет-сервис помощи студентам

Добрый вечер! Очень прошу вашей помощи. Нужен батник, который бы находил во всех разделах реестра все папки с заданным названием (например конкретно мне нужен huawei), и автоматически удалял их без всякого подтверждения и вывода информации. Например: HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\USBSTOR\CdRom&Ven_HUAWEI&Prod_Mass_ Storage&Rev_2.31. То есть нужно найти и удалить папку «CdRom&Ven_HUAWEI&Prod_Mass_Storage&Rev_2.31». И так все папки во всем реестре с названием huawei.
Вручную пользуюсь командой: psexec -s reg delete.
Заранее благодарен всем.

Лучшие ответы ( 1 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Удаление параметров реестра по маске
Здравствуйте! Есть один быстрый вопрос по reg delete. Есть параметр вида recent_mgs_********.

Удаление параметров реестра по маске
Приветствую ! Допустим команда reg delete "HKLM\SOFTWARE\Windows\CurrentVersion" /v.

Завершение сразу нескольких процессов и удаление связанных с ними разделов реестра
Здравствуйте. Существует такая проблема, думаю она встречалась многим.(Т.е иногда скачав.

Рекурсивный обход разделов реестра
Приветствую. Есть кусок говнокода set registry=REG ADD.

Регистрация: 03.08.2019
Сообщений: 16
Что трудная задача?? Никто не может помочь что-ли?
4333 / 2123 / 661
Регистрация: 26.04.2015
Сообщений: 6,823

вы на cmd не сильно полазаете по реестру (кстати почему именно оттуда надо искать папки?)
пробуйте REG QUERY HKCU (HKLM)далее или прямо отсюда|find /i «HUAWEI» обернуть в for /f и выхлоп на удаление. Вы же практически то же и делаете, что еще надо.

6211 / 2657 / 1047
Регистрация: 06.06.2017
Сообщений: 9,061

Лучший ответ

Сообщение было отмечено sergej96002828 как решение

Решение

ЦитатаСообщение от sergej96002828 Посмотреть сообщение

Это не папки, а ключи (кусты, ветки, разделы).

1 2 3
@for %%h in (HKLM HKCU HKCR HKCC HKU) do ( @for /f "delims= eol=" %%k in ('reg query %%h /f HUAWEI /s /k^|findstr "^H"') do @reg delete "%%k" /f )

Регистрация: 03.08.2019
Сообщений: 16

Добрый вечер! Ваш код мне здорово помог. Зачет пять баллов. Единственная еще просьба: нужно чтобы после работы bat файла консольное окно само закрывалось. Пробовал добавить строчку exit — ничего не происходит — окно остается.

И нужно еще одно устройство удалить, только не по ключевому слову, а по Pid. Я могу например взять ваш код и вместо слова HUAWEI написать Pid устройства? Будет работать?

Я готов отблагодарить вас материально. Спасибо за помощь!

6211 / 2657 / 1047
Регистрация: 06.06.2017
Сообщений: 9,061

ЦитатаСообщение от sergej96002828 Посмотреть сообщение

нужно чтобы после работы bat файла консольное окно само закрывалось.

Попробуйте @reg заменить на 2>nul reg.

ЦитатаСообщение от sergej96002828 Посмотреть сообщение

Будет работать?
Будет. Почему нет? Только UUID и PNPDeviceID — это не Pid (ProcessID).
Регистрация: 03.08.2019
Сообщений: 16

Приветствую еще раз!
Пробовал поменять на «2>nul» — все так же. Консоль не закрывается.

Сам батник вчера работал на 5 баллов, а сегодня почему-то чистит, но не все ветки. Все ветки чистит только с рабочего стола. Можно это поправить, так как сам батник будет не на рабочем столе, а в другой папке?

И последнее — заменил в вашем коде слово «HUAWEI» на «VID_12D1». В принципе все удаляет, только остается один след в этой ветке:
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\\0011
В папке «0011» есть строковый параметр: «DeviceInstanceID» со значением: «USB\VID_12D1&PID_14DB&MI_00\7&2ACC9D2A&D&0000». Я так понимаю, что не удаляется из-за того, что это не название ветки, а значение параметра. Но его тоже необходимо как-то удалить.

6211 / 2657 / 1047
Регистрация: 06.06.2017
Сообщений: 9,061

ЦитатаСообщение от sergej96002828 Посмотреть сообщение

Консоль не закрывается.
Поиск продолжается, по всей видимости.

ЦитатаСообщение от sergej96002828 Посмотреть сообщение

Можно это поправить, так как сам батник будет не на рабочем столе, а в другой папке?

Прав, видимо, не хватает. Размещение тут значения не играет. Запускайте бат с повышенными правами.

ЦитатаСообщение от sergej96002828 Посмотреть сообщение

Но его тоже необходимо как-то удалить.

Прежде всего необходимо писать об этом в ТЗ. Это куда сложнее. Бат для это неудобен, ещё и с учётом дефолтных параметров.

87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

Запись данных во множество разделов реестра
Необходимо во множество (примерно 300) разделов прописать пакет одних и тех же параметров. Как это.

Экспорт каждого из определённых разделов реестра в отдельный файл
Можно ли средствами cmd экспортировать ключи из ветки "HKEY_CURRENT_USER\Software" при этом каждый.

Создание разделов,подразделов, параметров реестра через Bat файл
Всем доброе время суток. У меня к вам вопрос , товарищи! Перепробовал кучу способов создания.

Поиск и замена ключей реестра по маске
Добрый день! Помогите пожалуйста советом в решении задачи — Необходимо рекурсивно найти.

Удаление разделов реестра в цикле
Подскажите можно как-нибудь удалить разделы реестра используя List<string> ? static List<string>.

Проверка изменения ключей в разделов реестра
Помогите сделать проверку только уже выбранных разделов реестра: ссылка на программу для проверки.

Или воспользуйтесь поиском по форуму:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *