Regsvr32.exe грузит процессор: ошибка или вирус?

Regsvr32 (Microsoft Windows Register Server) — это системная утилита, предназначающаяся для регистрации и отмены регистрации элементов управления ActiveX, компонентов фильтров (кодеков) и компонентов библиотек DLL в системе Windows посредством внесения изменений в реестр.

DLL (Dynamic Link Library, Библиотека Динамической Компоновки) — динамически подключаемый набор подпрограмм (функций), логически объединенных в единый бинарный файл, которые могут быть многократно/одновременно динамически загружены (использованы) различными приложениями, требующими для своего функционирования данные функции.

История распределенного кода

Не лишним тут, я думаю, будет познакомиться с историей распределенного кода, что даст нам понимание причин возникновения и развития динамических библиотек. А это, в свою очередь, даст очевидное представление о том, какой функционал несет в себе средство regsvr32 и для чего оно, собственно, предназначается.

Линейное программирование

На заре развития языков программирования, при создании (разработке) программ использовался так называемый линейный подход, который заключался в том, что код писался/выполнялся «сверху-вниз», в четкой последовательности от начала к концу. Но как только человек научился писать код чуть сложнее, чем простой вывод фразы «Hello, World!», перед ним тут же встало несколько проблем, которые показали, что подход имеет очевидные недостатки:

  • исходный код необходимо было копировать из старого проекта в новый;
  • копирование старого кода приводило к ошибкам, путанице, нестыковкам, необходимости исправления и подгонки под новый проект;

Процедуры (функции)

Стояла очевидная проблема разделения, а так же многократного использования кода. Поэтому, по мере развития технологий программирования появилось процедурное (функциональное) программирование, которое было основано на том, что области кода выделялись в отдельные блоки под названием функции (процедуры), к которым имелась возможность многократного обращения (вызова) из любого места программы. Это существенно упростило архитектуру приложения, решило важную проблему дублирующегося кода, поскольку теперь вместо того, чтобы программе использовать повторяющиеся участки кода на протяжении всего процесса выполнения, проще разместить его в отдельной процедуре (функции) и многократно вызывать [по мере необходимости]. Тем не менее, данный подход требовал доработки, поскольку:

  • позволял разделять код программы на логические части лишь в рамках одной языковой среды разработки.

Оверлеи

В условиях дороговизны оперативной памяти и отсутствия у многих операционных систем того времени (MSDOS) механизма виртуализации адресного пространства процесса (виртуальной памяти), обеспечивающего достаточное адресное пространство для приложений, появилась необходимость загружать в ограниченное пространство [дорогой] физической памяти много превосходящие по размеру код/данные приложений. Следствием всего этого явилось разбиение кода/данных программы на обособленные модули, получившие название оверлеев (overlay). Данный механизм непрямую не связан с разделением кода, тем не менее мы о нем упомянем, как о существенной вехе в развитии механизмов разделения кода.

Прерывания

Первой попыткой решения проблемы распределения кода был механизм программных прерываний, который позволял создавать (размещать в микрокоде BIOS) и вызывать сервисы, доступные любым операционным системам и программам. Таблица прерываний включала 255 векторов (адресов), каждый из которых задавал процедуру обслуживания определенного прерывания. Данный сервис мог лешгко программироваться пользователями, то есть любая программа могла [пере]назначить одно из доступных программных прерываний, предоставив, таким образом, общесистемный сервис. И не смотря на все положительные стороны подобного подхода, он имел и ряд серьёзных недостатков:

  • Фиксированное количество сервисов, ограниченное размером таблицы векторов прерываний (255);
  • Отсутствие обработки исключительных ситуаций.
  • Отсутствие системы безопасности;
  • Обособленный синтаксис, несовместимости с синтаксисом языков высокого уровня (необходимость оперировать низкоуровневыми регистрами);
  • Отсутствие контроля типов и корректности данных;

Динамические библиотеки

Дальнейшее развитие данной концепции (а так же развитие ОС) привело к появлению динамически загружаемых библиотек (называемых упрощенно динамическими библиотеками, DLL). Отличительной особенностью было то, что обращение к функционалу этих библиотек могло осуществляться из кода на любых языках и из любых средств разработки [в рамках операционной системы]. На механизме динамических библиотек построен весь программный интерфейс (WinAPI) операционных систем Mirosoft Windows, поэтому любое API, любой сервис, так или иначе базируются на DLL. Характерная особенность динамической библиотеки заключается в том, что она может использоваться сразу несколькими приложениями, а система обеспечивает присутствие в памяти всего-лишь одного экземпляра [кода] динамической библиотеки для всех приложений, которые содержат ссылки на функции данной библиотеки. DLL имели ряд выраженных недостатков:

  • при загрузке динамической библиотеки [в адресное пространство процесса] использовалось лишь её символическое имя, поскольку отсутствовал механизм устойчивой идентификации необходимых библиотек, соответственно:
  • в подгруженной библиотеке [сторонней/не той версии] мог содержаться код, разрушающий структуры данных и кода вызывающего приложения.
  • подгружаемая библиотека [сторонняя/не той версии] могла использовать контекст безопасности основного приложения для получения доступа к ресурсам, к которым в обычных условиях доступа у нее нет.
  • не проверяется информация о типах параметров функции;
  • не проверяется корректность передаваемых параметров функции;
  • Компонентная объектная модель (COM)

    Следующим этапом развития концепции разделяемого кода стало появление компонентной объектной модели (COM, Component Object Model). COM обеспечивал возможность разделять код на отдельные независимые компоненты. Упомянутые компоненты, в отличие от предыдущих своих собратьев, подключались уже не по имени файла, а при помощи специального глобального идентификатора (GUID). GUID ни что иное как 128-битный глобальный идентификатор (GUID, Global Unique ID), идентифицирующий конкретный объект класса библиотеки. Каждый компонент определялся в системе собственным уникальным идентификатором, а в системе хранилась единая база информации по компонентам, в которой содержалась вся информация: начиная от имени файла, в котором расположен сам компонент, и заканчивая сетевыми настройками. База COM хранится в реестре, в разделе HKEY_CLASSES_ROOT:

    • HKEY_CLASSES_ROOT\CLSID — GUID идентификаторов классов компонентов;
    • HKEY_CLASSES_ROOT\Interface — IID идентификаторов интерфейсов (для реализующих их компонентов);
    • HKEY_CLASSES_ROOT\TypeLib — Информация о файлах, в которых хранятся библиотеки;

    Причем сам HKEY_CLASSES_ROOT представляет собой комбинацию разделов HKCU\Software\Classes (для текущего пользователя) и HKLM\Software\Classes (для машины в целом).

    Чтобы как-то отличать идентификаторы классов от иных [похожих] системных идентификаторов, применительно к СОМ эти идентификаторы называются идентификаторами класса, и для них используется аббревиатура CLSID.

    Примером значения CLSID может служить строка вида {2DB47AE5-CF39-43C2-B4D6-0CD8D90946F4}. В глобальном смысле данные уникальные номера «не повторяются» и уникально идентифицируют компоненты системы, что говорит нам об уникальности объекта класса библиотеки в пределах системы. Подразделами в этих ветках реестра могут быть:

    1
    2

    3

    4

    HKCR\CLSID\\LocalServer = <�полный путь к 16-битному файлу>

    LocalServer32 = <�полный путь к 32-битному файлу>

    InprocServer = <�полный путь к 16-битному файлу>

    InprocServer32 = <�полный путь к 32-битному файлу>

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

    • COM базируется на динамических библиотеках (в них то и размещаются компоненты). А как мы помним с DLL сохранялась проблема, связанная с совпадением имён файлов библиотек;
    • База данных COM располагается в реестре, и работать с ней предлагалось напрямую, без какого-либо специализированного API. При том, что раздел базы данных является общедоступным, после продолжительной эксплуатации системы он традиционно приходил в рассогласованное состояние (приводящее к множеству системных ошибок).

    Сборки (assembly)

    Следующая попытка усовершенствовать механизмы распределения кода была предпринята в процессе разработки платформы .NET Framework. В процессе разработки платформы было предложено решение, в основе которого лежат так называемые сборки (assembly), которые являются наименьшими строительными блоками .NET, призванными обеспечить безопасное разделение кода в приложениях .NET.

    Сборка (assembly) — коллекция типов и ресурсов, сгруппированная в один или нескольких файлов для совместного функционирования, образующая логическую функциональную единицу.

    Сборка состоит из: манифеста (описывающего сборку), метаданных (описывающих типы), откомпилированный MSIL-код сборки (.Net-байткод), ресурсы (рисунки, звуки и прч). Поскольку сборки включают в себя сведения о содержимом, версиях и зависимостях, работоспособность связанных с ними приложений не зависит от внешних источников (таких как реестр). Сборки существенно снижают риск возникновения проблем с библиотеками DLL, а также повышают надежность и простоту развертывания приложений.

    Пошаговое руководство по исправлению ошибки Regsvr32.exe в Windows


    Источник фото Вот решения, которые вы можете реализовать, чтобы устранить код ошибки Regsvr32.exe в вашей системе:

    1. Если причиной ошибки является неверная точка входа, просто откройте командную строку с повышенными правами. Если 32-разрядная библиотека DLL находится в папке% systemroot% System32, переместите ее в папку% systemroot% SysWoW64. После этого выполните следующую команду:% systemroot% SysWoW64regsvr32 <�полный путь к DLL>. Это поможет устранить ошибку Regsvr32.exe.
    2. Если причиной ошибки является вирусная инфекция, вам необходимо запустить мощный антивирус обнаружить и удалить вирусы из вашей системы, чтобы устранить ошибку Regsvr32.exe в вашей системе.
    3. Тем не менее, если причины для Regsvr32.exe являются либо Активные элементы управления X или повреждение реестра, то вам нужно будет сканировать компьютер с помощью различных инструментов, чтобы решить каждую проблему в отдельности.

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

    Ремонт Regsvr32.exe Ошибка с полным уходом за системой

    Чтобы избежать всех этих хлопот, исправьте ошибку Regsvr32.exe,

    Это многофункциональный и инновационный инструмент для восстановления ПК, развернутый с несколькими утилитами в одной программе, включая такие функции, как очиститель реестра, антивирус и средство исправления ошибок элементов управления Active X. Он также функционирует как системный оптимизатор.

    Это одна остановка решение для всех ошибок, связанных с вашим компьютером, в том числе ошибка Regsvr32.dll.

    Это безопасно, эффективно и удобно для пользователя. Он совместим со всеми версиями Windows, включая Vista, XP, Windows 7 и 8.

    Встроенный мощный антивирус сканирует весь компьютер, обнаруживает и удаляет все вредоносные программы, которые могли генерировать сообщение об ошибке Regsvr32.exe. Это включает в себя вредоносное ПО, рекламное ПО, шпионское ПО и вирусы.

    Когда ОЗУ перегружается, это приводит к повреждению библиотек и повреждению реестра. Утилита очистки реестра восстанавливает поврежденные файлы DLL и поврежденный реестр. Он удаляет все ненужные файлы, загромождающие оперативную память, включая ненужные файлы, недействительные записи реестра и временные файлы.

    В Total System Care также имеется утилита сканирования элементов управления Active X. Эта утилита может быть очень полезна, если ошибка Regsvr32.exe вызвана проблемами, связанными с управлением Active X.

    Нажмите здесь чтобы загрузить Total System Care и решить Regsvr32.exe на вашем компьютере прямо сейчас.

    Смысл регистрации библиотек и элементов управления

    Но, вернемся к нашим библиотекам :)

    По какой причине, для использования функций DLL в системе непременно требуется их регистрация? Ответ: чтобы система смогла их найти!!

    Казалось бы, ну помести ты DLL в рабочую директорию приложения, и вопрос с нахождением решен. Но ведь библиотеки бывают не только локальными, некоторые из них используются совместно множеством приложений, вот как раз для этой ситуации всё и затевалось!! Я думаю, вполне уместно было бы привести аналогию с системной переменной пути (%PATH%). Как Вы помните, файлы, которые располагаются в директориях, указанных в переменной %PATH%, можно запускать из командной строки без указания полного пути. В случае же отсутствия директорий в переменной %PATH%, указанные файлы невозможно будет запустить из произвольного местоположения в операционной системе, командный интерпретатор их попросту «не найдет». По аналогии и библиотеки, которые содержат функции, широко используемые различными программами, должны быть «объявлены» в системе, иначе программы не смогут их «найти». Можно утверждать, что при вызове функции из образа исполняемого файла, загрузчик Windows (менеджер, отвечающий за выделение памяти, подключение различных функций из образов памяти и прч.) должен знать откуда можно подгрузить библиотеку, содержащую требуемую функцию. Если опираться на историю развития технологии распределенного кода, то можно сделать вывод, что regsvr32 обеспечивает регистрацию как классических библиотек DLL, так и продвинутых их собратьев, содержащих COM-объекты, поскольку со сборками .NET утилита уже не работает. Что же касается вопроса регистрации в системе применительно к библиотеке DLL на низком уровне, то она представляет собой алгоритм действий по модификации различных разделов реестра и каталогов файловой системы, результатом которого является «видимость» библиотеки приложениями. Если библиотека «сторонняя» (не системная), то регистрация библиотеки должна осуществляться на этапе инсталляции приложения, в состав которого она входит и для обслуживания функций которого она предназначается. В большинстве случаев сам процесс регистрации библиотеки выполняется при помощью вызова внешних специализированных системных утилит, либо определенной последовательности специализированных функций Windows API.

    Зачастую нет необходимости самостоятельно (вручную) регистрировать DLL, практически всегда это выполняется автоматически при инсталляции компонентов системы/программы. Необходимость в ручной регистрации возникает, как правило, в случае каких-либо ошибок в системе: проблем инсталляции/деинсталляции программ, сбоях, либо в случае самостоятельно разрабатываемых DLL, которые необходимо оттестировать.

    Можно рассмотреть простой пример, когда произвольно установленная в системе программа использует функцию из библиотеки, не «объявленной» в системе. В подобной ситуации загрузчик Windows на начальной стадии инициализации виртуального адресного пространства процесса выполняет импорт всех библиотек, требуемых загружаемой на выполнение программе. Если одна из библиотек, прописанных в таблице импорта исполняемого образа, отсутствует, то загрузчик выдает такое вот сообщение об ошибке:

    Ошибка сообщает нам о том, что загрузчик образа cDSsvc.exe не смог найти библиотеку MFC71.DLL, необходимую ей для функционирования. Один из способов устранения данного класса ошибок состоит в повторной инсталляции программы, в ситуации, когда файл искомой библиотеки входит в состав какого-либо дистрибутива, поскольку библиотека инсталлируется автоматически скриптом инсталляции. Если библиотека входит в состав другого пакета, например Microsoft Visual C++ 2010 x64 Redistributable, то переустановить необходимо именно его. Если же описанными способами ошибку исправить все же не удается, тогда нам на помощь приходит утилита Regsvr32.

    regsvr32.exe что это за процесс?

    Как уже было упомянуто выше, этот элемент необходим для запуска сервера, который регистрирует динамические библиотеки формата DLL, копируемые в систему в процессе установки различных приложений/игр.

    Вот так он выглядит в диспетчере задач Windows 10:

    Стоит отметить, что запускается процесс не всегда исключительно по инициативе Виндовс (в моменты обновления), но и сторонними программами, которым нужно скопировать в папки System32 или SysWOW64 нужные файлы DLL.

    Сразу же отчему, что думать о том, чтобы удалить regsvr32.exe для снижения потребления ресурсов, не стоит ни в коем случае. Иначе нарушится целостность ОС, что повлечет за собой критические изменения, может даже потребоваться переустановка.

    [упрощенное] описание процесса регистрации библиотеки

    Утилита regsvr32 при помощи системной функции LoadLibrary загружает библиотеку и, в зависимости от того входных параметров [командной строки], выполняет:

    • ищет в библиотеке точку входа и вызывает функцию DllRegisterServer либо DllUnRegisterServer данной библиотеки и смотрит на возвращаемый результат.
    • ищет в библиотеке точку входа и вызывает функции DllInstall / DllUnInstall.

    Все это говорит в пользу того, что существуют определенные требования к структуре DLL, которую вы хотите регистрировать с помощью regsvr32. Для того, чтобы управляющий элемент можно было зарегистрировать с помощью regsvr32, в DLL должны быть реализованы функции DllRegisterServer, DllUnregisterServer, а при необходимости выполнения специфичных действий еще и функции DllInstall, DllUnInstall. Функции DllRegisterServer / DllUnregisterServer содержат логику, которая фактически и выполняет регистрацию библиотеки в системе, добавляя записи в реестр, требующиеся для управляющего элемента. Функции DllInstall / DllUnInstall служат для выполнения дополнительных действий, которые планирует произвести автор DLL. Поэтому помните, что:

    Далеко не все DLL могут быть зарегистрированы при помощи regsvr32!

    Давайте посмотрим, что же происходит в случае, когда, к примеру, не определена функция DllRegisterServer:

    В этом случае мы видим на экране ошибку: «Модуль ????????.??? загружен, но точка входа DllRegisterServer не найдена». Но, давайте как перейдем, непосредственно, к самому процессу регистрации.

    Новый метод

    Как мы уже говорили, для регистрации библиотеки используется функция DllRegisterServer(). Функция проверяет 128-битный глобальный идентификатор (GUID, Global Unique ID) всех объектов COM/ActiveX, обнаруженных в библиотеке и последовательно прописывает информацию о них в реестр. Тут мы видим что происходит как бы не регистрация библиотеки, а регистрация объектов в библиотеках. Как мы уже говорили выше, регистрация объектов необходима, поскольку программы работают не с самими файлами DLL/OCX/ACX, а с объектами, представляющими определенный набор интерфейсов. Как мы уже упоминали, для целей регистрации DLL используется раздел реестра HKEY_CLASSES_ROOT, который представляет собой комбинацию разделов:

    • ветвь HKLM\SOFTWARE\Classes\CLSID при регистрации COM-объектов библиотек для всех пользователей системы;
    • ветвь HKCU\SOFTWARE\Classes\CLSID при регистрации COM-объектов библиотек только лишь для текущего пользователя;
    • ветвь HKLM\SOFTWARE\Wow6432Node\Classes\CLSID для регистрации 32-битных DLL в 64-битных ОС Windows;
    • Таким образом можно сделать вывод, что процесс регистрации библиотеки заключается в информировании операционной системы о том, что реализация интерфейсов, предоставляемых объектом с определенным идентификатором, располагается в соответствующем файле.

      Если вам необходимо поменять расположение библиотеки DLL в системе (например, поменять директорию размещения), то потребуется её перерегистрация.

      Старый метод

      В дополнение к современному методу работы с COM-объектами, в реестре присутствует еще и ветка HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDLLs. Могу предположить, что она относится к устаревшему методу регистрации общих библиотек DLL, базирующемуся на подсчете количества ссылок на библиотеку. Вероятно, она оставлена для совместимости и предназначена для регистрации библиотек, которые представляют собой устаревший вид библиотек, состоящих из набора функций. В этой ветке имеются параметры типа REG_DWORD, имена которых содержат полный путь к зарегистрированным в системе общим библиотекам (например: C:\Windows\system32\VBAME.DLL). Значение параметра может варьироваться от 1 до 65535. Дело в том, что значение это — счетчик использования или, как еще называют, количество ссылок. Зачастую этот метод регистрации использовался не-MSI инсталляторами. Каждый раз, когда какой-либо подобный установщик самостоятельно регистрирует в системе библиотеку, которая до этого уже была зарегистрирована кем-либо еще (то есть присутствует в SharedDLLs), он увеличивает счетчик использования на 1, когда же (например, при удалении) библиотека разрегистрируется, то счетчик уменьшается на 1. Подобная логика была реализована в первых версиях Windows для борьбы с таким явлением как «Ад DLL»(DLL Hell). У параметров некоторых библиотек можно наблюдать достаточно большие значения (4096), полагаю, таким образом маркируются критичные для системы библиотеки, и счетчик искусственно увеличен с той целью, чтобы разнообразные пользовательские пакеты при своем удалении, случайно не уменьшили счетчик использования до 0 и не выключили DLL.

    Исправление проблемы

    Попробуйте перезагрузить компьютер — возможно, это разовая неполадка. В противном случае выполните приведенную ниже инструкцию.

    1. Скачайте и запустите с официального сайта утилиту Process Explorer.
    2. В перечне активных процессов найдите тот, который перегружает ЦП (по столбцу «CPU») и раскройте его. Будет отображен процесс, вызванный regsvr32.exe. Так вы получите информацию о том, что запустило сервер регистрации.

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

    1. При определении программы, вызвавшей regsvr32, перезапустите или, в крайнем случае, переустановите ее.
      Совет! При невозможности определить программу, поищите в Сети имя библиотеки, над которой совершаются действия и узнайте, к чему она относится.
    2. Иногда проблема заключается в установке пиратского ПО. В этом случае необходимо воспользоваться его лицензионной версией, а также отключить антивирус, который может ошибочно считать программу вредоносной и блокировать доступ к системным библиотекам.
    3. Бывает, что неполадка появляется после обновления Windows 10 и вызывается защитным ПО по типу антивируса или фаервола. Деинсталлируйте его, перезагрузить ПК и установите снова.
    4. Если дело в драйвере устройства, попробуйте его переустановить, завершив перед этим процесс regsvr32.exe.

    32-битные и 64-битные версии regsvr32

    Начиная с Windows XP, в зависимости от разрядности ОС, утилита regsvr32.exe располагается либо только в директории %SystemRoot%\System32 для 32-битных систем, либо в папках %SystemRoot%\System32 и %SystemRoot%\SysWOW64 для 64-битных (присутствуют две разные версии программы). Представляет собой утилиту командной строки, то есть, иными словами, работает с консолью и может использоваться в сценариях.

    В данный момент более активно начали использоваться 64-битные версии Windows. Если в 32-битных версиях Windows всё было достаточно прозрачно и присутствовало только одна версия программы, то в 64-битных версиях ОС имеются две версии утилиты regsvr32:

  • 64-разрядная версия утилиты — %SystemRoot%\System32\regsvr32.exe (используется по-умолчанию при запуске без конкретизации пути);
  • 32-разрядная версия утилиты — %systemRoot%\SysWoW64\regsvr32.exe
  • Получается, в 64-битной системе разработчики сохранили прежнюю систему именования каталогов, однако поместили туда уже «родные» 64-битные приложения. Объясняется это обеспечением совместимости приложений и уменьшением временных затрат на трансляцию кода из 32- в 64-разрядную версию Windows. Таким образом, в 64-битной версии Windows могут работать как 32-битные, так и 64-битные версии программ, соответственно, и DLL могут использоваться и 32- и 64-разрядные. Когда вы запускаете regsvr32 в 64-битной версии ОС для регистрации DLL, вы по-умолчанию используете 64-битную версию утилиты.

    Для 64-битных ОС Windows существует золотое правило: директория System32 системы предназначается для родных 64-битных приложений, директория SysWOW64 для 32-битных. Немного не интуитивно, однако это сложившийся факт!! WOW64 (Windows on Windows64) — 32-битная подсистема, которая запускается в 64-битной среде.

    Поэтому, если вам требуется зарегистрировать 32-разрядную версию библиотеки DLL в 64-разрядной ОС, и у вас возникает ошибка, то можно поступить следующим образом:

    1. Открыть командную строку с правами администратора;
    2. Если требуемая для регистрации 32-разрядная библиотека DLL находится в директории %SystemRoot%\System32, переместить ее в папку %SystemRoot%\SysWoW64;
    3. Выполнить команду: %SystemRoot%\SysWoW64\regsvr32 <�полный путь к библиотеке DLL>
      то есть, к примеру: %SystemRoot%\SysWoW64\regsvr32 %SystemRoot%\SysWOW64\test.dll

    Если же перед вами стоит задача зарегистрировать 64-битную DLL в 64-разрядной ОС:

    1. Открыть командную строку с правами администратора;
    2. Если требуемая для регистрации 64-разрядная библиотека DLL находится в директории %SystemRoot%\SysWOW64, переместить ее в папку %SystemRoot%\System32
    3. Выполнить команду: %SystemRoot%\System32\regsvr32 <�полный путь к библиотеке DLL>
      то есть, например: %SystemRoot%\System32\regsvr32 %SystemRoot%\System32\test.dll

    Для чего нужен сервер регистрации Майкрософт

    Сам по себе сервер регистрации regsvr32.exe — это системная программа Windows, которая служит для регистрации некоторых DLL библиотек (компонентов программ) в системе и их удаления.

    Этот системный процесс может запускать не только сама операционная система (например, при обновлениях), но и сторонние программы и их установщики, которым требуется установить собственные библиотеки для работы.

    Удалить regsvr32.exe нельзя (так как это необходимый компонент Windows), но можно разобраться, что вызвало проблему с работой процесса и исправить её.

    Синтаксис regsvr32

    Как уже говорилось выше, regsvr32 — это утилита командной строки, поэтому в целях практического использования может запускаться из-под всем уже знакомой cmd, либо использоваться в сценариях.

    В большинстве случаев, для регистрации DLL требуются повышенные привилегии, то есть права локального администратора.

    Утилита regsvr32.exe имеет следующие параметры командной строки:

    Regsvr32 [/u] [/s] [/n] [/i[:cmdline]]

    Список ключей утилиты и описание их действия приведем в следующей таблице:

    ПараметрОписание
    /u Отменяет регистрацию DLL. Отменить можно только регистрацию DLL, команда не применима к элементам управления и фильтрам.
    /i вызывает функцию DllInstall, передавая ей в качестве параметра необязательную строку команд cmdline; Вызов DllInstall приводит к вызову стандартных функций регистрации DllRegisterServer/DllUnRegisterServer, однако позволяет передать строку параметров, которые могут изменить поведение регистрации, например провести регистрацию DLL более одного раза. Ключ /i при использовании с ключом /u вызывает DllUnInstall.
    /n не вызывает DllRegisterServer, то есть вызывается только DllInstall; это может быть использовано с ключом /i для передачи дополнительных параметров для регистрации.
    /s «тихий» режим; сообщения не отображаются.

    В общем случае, регистрация библиотеки DLL при помощи regsvr32 может быть выполнена следующей командой:

    regsvr32 .dll

    Например:

    regsvr32 «C:\Windows\System32\schmmgmt.dll»

    Напоминаю, будьте внимательны с версиями утилиты regsvr32 под Windows различной разрядности. В некоторых случаях приходится уточнять путь к утилите при запуске. Более того, практически всегда, когда регистрируемый компонент лежит вне путей, включенных в переменную %PATH% (к примеру, если он не находится в %SystemRoot%\System32), путь к компоненту приходится уточнять! Пример:

    %SystemRoot%\System32\Regsvr32 %SystemRoot%\System32\macromed\Flash\Flash10a.ocx

    *Составные пути к файлу должны заключаться в кавычки по правилам синтаксиса командной строки Windows.

    Проверка файлов библиотек

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

    1. Откройте Панель управления.
    2. Перейдите в раздел «Программы и компоненты».
    3. Выделите приложение, которое подозреваете в нанесении вреда (uTorrent выделен только для примера).
    4. Нажмите «Удалить».
    5. Дождитесь завершения деинсталляции и закройте окно удаления или изменения программ.

    На Windows 10 всё то же самое можно сделать через раздел «Приложения» в Параметрах. Получится даже быстрее и удобнее.

    Следующим этапом будет очистка реестра от следов, которые оставила деинсталлированная программа. Делать это я рекомендую с помощью бесплатно утилиты CCleaner:

    1. Запустите CCleaner.
    2. Откройте вкладку «Реестр».
    3. Запустите поиск проблем.
    4. Выполните исправление всех ошибок.

    В списке ошибок обязательно будет строчка с файлом библиотеки. Есть вероятность, что после ее удаления проблема с битым DLL будет устранена, и Regsvr32.exe перестанет грузить процессор из-за невозможности завершить свою работу.

    Мы не остановимся на очистке реестра от ошибочных записей и выполним восстановление хранилища системных компонентов, используя утилиту DISM. Не будем вникать в подробности, главное, что нужно знать – ничего страшного с компьютером не произойдет, и никакие файлы не удалятся.

    1. Запустите командную строку с правами администратора.
    2. Выполните команду «Dism.exe /online /cleanup-image /scanhealth».

    Это интересно: Как включить шрифты ClearType в Windows 10

    Если ошибки не найдены, попробуйте выполнить другую команду – «sfc /scannow». С её помощью вы проверите целостность системных файлов Windows. При обнаружении сбоев утилита постарается внести исправления.

    Рейтинг
    ( 1 оценка, среднее 5 из 5 )
    Понравилась статья? Поделиться с друзьями:
    Для любых предложений по сайту: [email protected]