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

Обновлено: 01.07.2024

Поразбиравшись какое-то время как правильно настроить передачу OPC-тегов по сети Ethernet я понял, что подобная настройка не совсем сложная, но слегка мудреная для тех, кто не связывался с настройкой Windows. Решил преподнести данный материал в своем блоге.

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

Общий план работ

Чтобы настройка не была головной болью, нужно соблюдать определенную последовательность действий.

Введение

У меня есть отдельные требования для настройки:

  • доступ к OPC-серверу будет осуществляться по логину и паролю
  • доступ будет осуществляться только к тому OPC-серверу, который мы укажем

Вариант где все для всех разрешено описывать не буду.

Проверка OPC локально

Для проверки я запустил OPC-клиент, подключился к предварительно настроенному OPC-серверу на сервере. После того как есть 100%-ая уверенность в работоспособности OPC-сервера локально можно приступать к настройке DCOM.

Отключение брандмауэра

Настройка пользователей

Итак, переходим к настройке пользователей. Текстовую последовательность я снабдил скриншотами, которые помогут проще ориентироваться в тексте. Конечно же, опытный пользователь может создать/настроить юзера так как ему будет угодно, тем не менее я предлагаю такой вариант.

Внимание! Эти действия необходимо провести как на сервере, так и на клиенте.

Настройка DCOM

Настройка OpcEnum для работы через DCOM

Служба OpcEnum отвечает за отображение OPC-серверов. Если ее настроить некорректно, то при браузинге серверов, вы не увидите ничего, кроме ошибок. Эту службу нужно настроить на сервере.

Настройка целевого OPC-сервера для работы через DCOM

Итак, мы вплотную подобрались к настройке ПО, которое будет выдавать нам теги на клиенте. Настройка не сильно отличается от процедуры, описанной в предыдущем разделе.

Включение брандмауэра и создание правил

Конечно же, нельзя забывать об отключенной в самом начале защите. Но если включить фаервол без предварительно созданных правил, то клиент не сможет достучаться до сервера. Я рассматриваю брандмауэр Windows, т.к. он идет по умолчанию и есть у всех, кто настраивает DCOM. Опытный пользователь без труда настроит другое ПО по аналогии. Подробно текстом описывать не буду (скриншоты смотрите ниже), но вот необходимые правила:

  1. Разрешение на доступ извне для службы OpcEnum.
  2. Разрешение на доступ извне по 135-му TCP-порту.
  3. Разрешение на доступ извне для CoDeSysOCPDA.

Рекомендую следующую последовательность действий:

  1. Включить брандмауэр.
  2. Убедиться, что данные не проходят.
  3. Создать правила.
  4. Убедиться, что данные проходят.

Вот и все. Как видите, ничего сложного в пробросе OPC-тегов через DCOM нет. Самое главное, чтобы были необходимые права на выполнение всех манипуляций. Для настройки OPC-сервер в Windows XP воспользуйтесь этой статьей.


Далеко не все ошибки в Windows проявляют себя очевидным образом – аварийным завершением работы приложений, отказом базовых функций управления или появлением окон с тревожными уведомлениями. О том, что в системе случился тот или иной сбой, пользователь может даже не подозревать, если только он не имеет привычки регулярно просматривать Журнал событий. Такие скрытые ошибки, как правило, не являются критичными и в большинстве случаев указывают на некорректную работу компонентов. Примером может служить ошибка 10016 DistributedCOM в Windows 10, регулярно появляющаяся в Журнале событий обычно сразу после загрузки операционной системы.

Появление ошибки 10016 говорит о том, что системная служба DCOM не смогла запустить какое-то приложение по причине отсутствия у системы (пользователя SYSTEM) соответствующих прав. Какое это приложение, можно определить по его APPID-коду в описании. Однако это не столь важно, ведь для исправления неполадки достаточно знать именно APPID и CLSID COM-сервера, который также указан в описании неполадки. Сама же неисправность устраняется предоставлением системе полных прав на запуск приложения.

Что означают ошибки DCOM 10016 в Windows 10

События с идентификатором 10016 записываются в журнал событий, когда компоненты Microsoft обращаются за доступом к компонентам DCOM без требуемых в этом случае разрешений.

Компанией Microsoft создан сценарий работы, при котором системный код обращается за доступом к компонентам DCOM с предпочтительным набором параметров, и если доступ не предоставлен, код обращается снова с другим набором.

Служба поддержки Microsoft сообщает, что указанные ошибки заложены в работу ОС, происходят на всех ОС Windows 10 и могут быть проигнорированы пользователями без последствий для работы системы.



Ошибки с кодом 10016 записываются в журнал событий, когда компоненты Microsoft обращаются за доступом к компонентам DCOM

Несмотря на то, что это не критическая системная ошибка, заполнение журнала ошибками 100016 может затруднить поиск и диагностику других ошибок на ПК.












Далеко не все случающиеся в Windows ошибки проявляют себя явно, так что пользователь может даже не подозревать о их наличии пока не откроет раздел «Система» в журнале событий Windows. Сегодня мы постараемся разобрать причины одной из таких ошибок. Встречается она довольно часто, причём во всех версиях Windows начиная с XP, имеет код 10016 и примерно следующее описание:

Параметры разрешений для конкретного приложения не дают разрешения Локально Активация для приложения COM-сервера с CLSID и APPID пользователю DESKTOP-AEM9850/компик с ИД безопасности…

Здесь приводится лишь часть описания ошибки, на деле оно может быть более объёмным и отличаться в деталях. Из описания следует, что пользователь DESKTOP-AEM9850/компик (пользователем может быть и система) пытается запустить некий COM-компонент, но не может этого сделать по причине отсутствия соответствующих прав. Что за компонент и какое именно приложение вызывает ошибку Windows прямо не указывает, всё что нам известно, это CLSID компонент и идентификатор приложения.


Задача заключается в том, чтобы определить, какому приложению принадлежит идентификатор, а затем предоставить пользователю или системе соответствующие права для его запуска. Проще всего это сделать через реестр. Откройте командой regedit редактор реестра и разверните ветку HKEY_CLASSES_ROOT/AppID. Воспользовавшись встроенным поиском, найдите в подразделе APPID приложения (в нашем примере это ).


После того как ключ будет найден, потребуется предоставить к нему полные права доступа пользователю, имя (первая его часть) которого указывается в описании. Для этого кликаем правой кнопкой мыши по ключу, выбираем «Разрешения»


И жмём в открывшемся окошке кнопку «Дополнительно».


Как видим, в данном примере владельцем ключа является TrustedInstaller. Заменим его администратором (пользователем DESKTOP-AEM9850).

Кликните по ссылке «Изменить».


Введите имя локального пользователя, нажмите «OK».


Установите галочку «Заменить владельца подконтейнеров и объектов» и еще раз нажмите «OK».


Теперь во второй раз откройте окошко разрешений для группы, выделите в нём администратора, коим был заменён TrustedInstaller, отметьте галочкой чекбокс «Полный доступ» и сохраните новые настройки.


Отлично, возвращаемся в редактор реестра и запоминаем значение параметра по умолчанию для найденного ранее ключа.


У нас это InstallAgent. Далее командой comexp.msc или dcomcnfg в окошке «Выполнить» открываем оснастку «Службы компонентов» и разворачиваем в меню «Компьютеры» -> «Мой компьютер» -> «Настройка DCOM» и находим компонент с именем параметра по умолчанию (InstallAgent). Через контекстное меню вызываем его свойства.


Переключаемся на вкладку «Безопасность», в блоке «Разрешения на запуск и активацию» жмём «Изменить».


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


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

Сделать копию реестра

Прежде чем выполнить шаги по устранению ошибок DCOM 10016, необходимо сделать копию системного реестра. Это позволит восстановить работу ОС в случае ее сбоев.

Также перед выполнением нижеследующих действий необходимо зайти в Windows с правами администратора.

Справка! Первый созданный в Windows 10 пользователь (напр., при инсталляции системы) имеет права администратора.

Шаг 1. Нажать клавиши «Win+R».



Нажимаем клавиши «Win+R»

Шаг 2. Напечатать в меню «regedit» и щелкнуть «ОК».



Печатаем в меню «regedit» и щелкаем «ОК»

Шаг 3. Откроется «Registry Editor» («Редактор реестра»). Нажать «File» («Файл») и щелкнуть «Export» («Экспорт»).



Нажимаем «File», щелкаем «Export»

Шаг 4. В следующем окне о («Все»).



О

Шаг 5. Выбрать папку для размещения копии реестра и ввести ее имя.



Выбираем папку для размещения копии реестра и вводим ее имя

Шаг 6. Щелкнуть «Save» («Сохранить»).



Щелкаем «Save»

Исправление ошибки 10016 через PowerShell

Скачиваем тут сценарий DCOMPermissions.psm1


Кладем данный модуль в нужную вам папку. Далее вы открываете консоль PowerShell и переходите в месторасположение данного модуля, после чего его нужно импортировать:

Import-Module .\DCOMPermissions.psm1 Grant-DCOMPermission -ApplicationID «» -Account «SYSTEM» -Type Launch -Permissions LocalLaunch,LocalActivation -OverrideConfigurationPermissions

Если ошибок не вышло, то значит все успешно применено, перезагрузка не потребуется.


Далее вы можете посмотреть примененные разрешения:

Вы увидите права у системы, у нее будет SID S-1-5-10.






Признаки возникновения ошибки

Понять, что на компьютере произошла именно ошибка 6008 можно по характерным признакам. С основными из них вы можете ознакомиться ниже:

  • Во время работы с какой-либо программой появляется окно «Ошибка 6008», а само приложение сразу же закрывается.
  • Компьютер самостоятельно завершает работу при открытии программы или после появления окна с ошибкой.
  • Операционная система работает очень медленно, а нажатия по кнопкам мыши или клавиатуры отображаются с задержкой.
  • ПК периодически перестает реагировать на все действия, выполняемые пользователем – попросту «зависает».

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

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

Любой бывалый Windows-админ не раз сталкивался с проблемами в работе службы WMI и ее компонентах.

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

О наличии проблем с WMI может свидетельствовать широкий спектр ошибок:

  • Ошибки обработки WMI запросов в системных журналах и логах приложений
  • Ошибки GPO, завязанные на WMI ( некорректная работа wmi фильтров политик, и пр.)
  • Ошибки в работе / невозможность установки агентов SCCM/SCOM
  • Ошибки в работе скриптов (vbs или powershell), использующих пространство имен WMI

В первую очередь нужно проверить имеется ли в системе служба Windows Management Instrumentation (Winmgmt) и включена ли она.

Если служба присутствует и находится в состоянии Started, рекомендуется протестировать работоспособность WMI, обратившись к ней с помощью простого wmi-запроса. С помощью Powershell, например, это можно сделать так:

Если при выполнении простейшего WMI-запроса система возвращает ошибку (на скриншоте приведен пример корректного ответа службы WMI), вероятно имеет место некорректное функционирование сервиса WMI или ряда его подсистем, повреждение репозитория WMI или другие проблемы.

Утилита WMIDiag

Для «тонкой» диагностики службы WMI существует официальная утилита Microsoft — WMIDiag (Microsoft WMI Diagnosis).

Утилита представляет собой vbs скрипт, который проверяет различные подсистемы WMI и записывает собранную информацию в лог файлы (по умолчанию логи находятся в каталоге %TEMP% — C:\USERS\%USERNAME%\APPDATA\LOCAL\TEMP\).

Получившийся отчет состоит из файлов, имена которых начинаются с WMIDIAG-V2.1 и включает в себя следующие типы фалов :

  • .log файлы содержат подробный отчет об активности и работе утилиты WMIDiag
  • .txt файлы содержат итоговые отчеты о найденных ошибках, на которые стоит обратить внимание
  • В .csv файлах содержится информация, нужная для долгосрочного анализа работы подсистемы WMI

В общем случае, WMIDiag может дать информацию по исправлению частных ошибок в WMI , но в большинстве случаев процесс это довольно трудоемкий и стоит потраченного времени только при решении инцидентов в критичных системах (как правило, на продуктивных серверах). Для массового сегмента рабочих станций пользователей гораздо проще «бить по площадям» и решать проблему работы WMI более радикально.

Перерегистрация библиотек WMI и перекомпиляция mof файлов

Следующий скрипт представляет собой «мягкий» вариант восстановления работоспособности службы WMI на отдельно взятом компьютере (выполняется перерегистрация dll библиотек и службы WMI, перекомпилируются mof файлы). Данная процедура является безопасной и ее выполнение не должно привести к каким-либо новым проблемам с системой.

sc config winmgmt start= disabled net stop winmgmt cd %windir%\system32\wbem for /f %%s in (‘dir /b *.dll’) do regsvr32 /s %%s wmiprvse /regserver winmgmt /regserver sc config winmgmt start= auto net start winmgmt for /f %%s in (‘dir /b *.mof’) do mofcomp %%s for /f %%s in (‘dir /b *.mfl’) do mofcomp %%s

Указанные команды можно выполнить путем простой вставки в окно командой строки, либо сохранить код в bat файле и запустить его с правами администратора. После окончания работы скрипта, систему нужно перезагрузить и вновь проверить работу WMI.

Пересоздание репозитория (хранилища) WMI

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

WMI репозиторий (хранилище) находится в каталоге %windir%\System32\Wbem\Repository и представляет собой базу данных, в которой содержится информация о метаданных и определениях WMI классов.

В некоторых случаях репозитория WMI может содержать статическую информацию классов.

При повреждении репозитория WMI, в работе службы Windows Management Instrumentation (Winmgmt) могут наблюдаться ошибки вплоть до полной невозможности ее запустить.

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

В Windows Vista и выше проверить целостность репозитория WMI можно с помощью команды:

Если команда возвращает, что база данных WMI находится в неконсистентном состоянии (INCONSISTENT), стоит попробовать выполнить «мягкое» восстановление репозитория:

И перезапустить службу wmi:

net stop Winmgmtnet start Winmgmt

Если описанная выше команда не помогла, выполняем сброс репозитория на начальное состояние (hard reset) так:

В том случае, если команды Winmgmt /salvagerepository и Winmgmt /resetrepository желаемого эффекта не дали, стоит попробовать выполнить «жесткое» пересоздание базы WMI вручную таким сценарием:

sc config winmgmt start= disabled net stop winmgmt cd %windir%\system32\wbem winmgmt /kill winmgmt /unregserver winmgmt /regserver winmgmt /resyncperf if exist Repos_bakup rd Repos_bakup /s /q rename Repository Repos_bakup regsvr32 /s %systemroot%\system32\scecli.dll regsvr32 /s %systemroot%\system32\userenv.dll for /f %%s in (‘dir /b *.dll’) do regsvr32 /s %%s for /f %%s in (‘dir /b *.mof’) do mofcomp %%s for /f %%s in (‘dir /b *.mfl’) do mofcomp %%s sc config winmgmt start= auto net start winmgmt wmiprvse /regserver

Что такое DistributedCOM

В первую очередь необходимо разобраться, что такое DistributedCOM, и почему этот объект вызывает ошибку. DistributedCOM — это Distributed Component Object Model, неотъемлемая часть взаимодействия сетей на персональных компьютерах и ноутбуках под управлением операционной системы виндовс. Это своего рода технология от «Майкрософт», срабатывающая всякий раз, когда компьютер или какое-либо приложение выполняет подключение к Глобальной сети.


Ошибка 10016 не сулит ничего страшного, но в устранении нуждается

К сведению! Стандартная Component Object Model способна получать доступ к файлам только на машине, с которой она была запущена, а Distributed Component Object Model может работать с данными на удаленных серверах.

Известно, что многие веб-сайты и ресурсы используют скрипты для доступа к удаленным серверам. Во время того, как операционная система делает то же самое, DCOM обращается к определенному объекту удаленного сервера, но часто не имеет соответствующих разрешений. Из-за этого и происходит ошибка. Она никак не влияет на работу системы, если только нет засорения журнала просмотра событий виндовс.



Изменение разрешений для объектов


В чем заключается настройка DCOM OPC? Для корректной работы OPC серверов по сети, необходимо настроить сетевые параметры и параметры безопасности DCOM.

Настройка DCOM для компьютера

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

В данном разделе нужно настроить свойства DCOM по умолчанию на сервере, чтобы «все работало». Приступим.

1. Запустим окно настройки DCOM

Настройка параметров DCOM выполняется с помощью служебной команды «dcomcnfg». Для запуска «dcomcnfg» нажмите на клавиатуре Win+R, чтобы открыть окно запуска программ из командной строки.

настройка dcom opc


Откроется окно Службы компонентов, в котором нужно будет раскрыть список Службы компонентов, а затем и список Компьютеры, где мы увидим еще один вложенный список Мой компьютер, на который нужно нажать правой кнопкой мыши и выбрать пункт меню Свойства.

2. Настройка свойств компьютера для DCOM

Настройка DCOM для работы OPC серверов в Windows 7

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

настройка dcom для сервера opc

  1. Галка Разрешить использование DCOM на этом компьютере — без нее DCOM работать не будет.
  2. В Уровень проверки подлинности по умолчанию выбираем Подключиться.
  3. В Уровень олицетворения по умолчанию выбираем Определить.

После жмем кнопку OK. Система может предупредить о том, что будут изменены свойства DCOM — соглашайтесь. Окно Службы компонентов не закрывайте, оно нам еще понадобится.

Те же настройки необходимо провести и на клиенте за исключением пунктов 3.2 и 3.3 — они не повлияют на работу, но и не повредят. Самое главное, чтобы DCOM был разрешен.

Настройка безопасности DCOM

Переходим на вкладку Безопасность и устанавливаем умолчания на права доступа и на запуск и активацию.

Настройка DCOM для работы OPC серверов в Windows 7

Кликните по кнопке №1. В появившемся диалоговом окне:

  1. Кликните на кнопке «Добавить»;
  2. Добавьте группу пользователей "Пользователи DCOM
  3. Установите для нее права доступа;
  4. Сохраните изменения, кликнув по кнопке «OK».

Повторите действия в диалоговом окне «Разрешение на запуск и активацию» которое появляется при клике на кнопке №2 «Изменить умолчания».

Смотрите еще: Как выделить файлы в папке для копирования: 5 известных способов

Настройка DCOM для работы OPC серверов в Windows 7

На вкладке Набор протоколов должен быть только один протокол, как на скриншоте

Настройка DCOM для работы OPC серверов в Windows 7

Настройка DCOM для OPC Enum

Настройка OPC Enum по умолчанию

Если вы настроили умолчания для компьютера, то чаще всего эта настройка не нужна. Нужно только убедиться, что все настройки выставлены так, как надо.

Настройка DCOM для работы OPC серверов в Windows 7

Настройка DCOM для работы OPC серверов в Windows 7

Настройка DCOM для работы OPC серверов в Windows 7

Настройка OPC Enum вручную

Но иногда почему-то настройки по умолчанию не работают. Тогда настраиваем DCOM для OPC Enum вручную.

Служба OpcEnum отвечает за отображение OPC-серверов. Если ее настроить некорректно, то при браузинге серверов, вы не увидите ничего, кроме ошибок. Эту службу нужно настроить на сервере.

Настройка DCOM для работы OPC серверов в Windows 7

  1. В окне Служба компонентов должно уже быть открыто дерево до Настройка DCOM. Нужно выбрать этот элемент в левой части окна, и после этого в правой найти OpcEnum, кликнуть на него правой кнопкой мышки и выбрать пункт меню Свойства.

Вкладка Общие

Откроется окно свойств, и во вкладке Общие в списке Уровень проверки подлинности выбрать Подключиться.

Вкладка Размещение

Во вкладке Размещение должен быть выбран пункт Запустить приложение на данном компьютере. Остальные галки должны быть сняты.

Настройка DCOM для работы OPC серверов в Windows 7
Настройка DCOM для работы OPC серверов в Windows 7

Вкладка Безопасность

Далее переходим к вкладке Безопасность, где будем раздавать права на удаленный запуск, доступ и изменение настроек OpcEnum.

Во всех трех случаях выбираем пункт Настроить, т.е. у нас должны быть активны три кнопки Изменить.

Настройка DCOM для работы OPC серверов в Windows 7

  • Начнем с Разрешение на запуск и активацию. Нам нужно добавить нашу группу с необходимыми разрешениями, поэтому кликаем на кнопку Добавить.
  • Вписываем (или ищем) Пользователи DCOM, жмем OK — группа должна добавиться.
  • Итак, группа в списке, теперь надо проставить галки под словом Разрешить. Ставим все галки, но, теоретически, для того, чтобы служба работала по сети нам нужно лишь Удаленный запуск и Удаленная активация. После проставления галок жмем OK.

  • Открываем следующее окно — Права доступа. Точно так же добавляем нашу группу и разрешаем ей все, либо только Удаленный доступ, жмем OK.

Открываем окошко Разрешение на изменение настроек.

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

Настройка DCOM для работы OPC серверов в Windows 7

Вкладка Удостоверение

Переходим ко вкладке Удостоверение окна свойств OpcEnum.

Для службы OpcEnum возможно два варианта запуска:

Настройка DCOM для работы OPC серверов в Windows 7

  • Системная учетная запись (только службы) — OPC-сервер будет запущен под системной учетной записью независимо от входа в систему. Данный вариант нам подходит, и его советуют как более предпочтительный.
  • Указанный пользователь — при данной настройке OPC-сервер будет запущен от имени указанного нами пользователя в одном экземпляре, независимо от того, под какой учетной записью совершен вход. В данном случае мы сами указываем пользователя.

Определившись нажимаем OK и переходим к перезапуску службы OpcEnum. Это можно сделать из того же окна: слева выбираем Службы (локальные), справа в списке ищем OpcEnum, выбираем и перезапускаем нажатием на появившуюся ссылку.

Смотрите еще: Необычный способ выделения файлов флажками в Windows 7

Настройка DCOM для работы OPC серверов в Windows 7

  1. Дожидаемся перезапуска службы и переходим к клиенту.
  2. На клиенте запускаем OPC-клиент и пытаемся искать OPC-сервера на компьютере OPC-сервера.

Но при попытке достучаться до тэгов прилетает отказ. Этого следовало ожидать, ведь мы еще не настраивали наш OPC сервер.

Настройка DCOM для OPC сервера

Мы вплотную подобрались к настройке ПО, которое будет выдавать нам теги на клиенте. Настройка не сильно отличается от процедуры, описанной в предыдущем разделе.

  1. В Настройка DCOM ищем необходимый OPC-сервер, тыкаем правой кнопкой мыши и выбираем свойства.
  2. На вкладке Общие выбираем Уровень проверки подлинностиПодключиться.
  3. На вкладке Размещение должен быть выбран только пункт Запустить приложение на данном компьютере.
  4. На вкладке Безопасность группе Пользователи DCOM даем права на удаленный запуск, доступ и изменение настроек как и в случае с OpcEnum
  5. На вкладке Удостоверение у нас есть 4 варианта:
    • Текущий пользователь — в этом случае OPC-сервер будет запускаться от имени вошедшего в систему пользователя. Можно использовать данный вариант, но необходимо на сервере авторизовываться под учетной записью opc, что может быть не всегда удобно. Но тем не менее можно выбрать этот вариант при условии, что сервер всегда будет запущен под учеткой opc.
    • Запускающий пользователь — при авторизации пользователя будет запущен экземпляр OPC-сервера. Если к серверу будет подключено два клиента, то будет запущено два OPC-сервера. В одном случае это будет отжирать ресурсы, в другом — все кроме первого клиенты не будут видеть данных.
    • Указанный пользователь — как и в случае с OpcEnum, этот вариант предпочтительный потому, что при такой настройке будет запущен один экземпляр под необходимой учетной записью. Можно выбрать этот вариант и ввести логин и пароль предварительно созданного пользователя.
    • Системная учетная запись (только службы)
  6. После выбора одного из вариантов и нажатия на кнопку OK, нужно перезапустить OPC-сервер, если он запущен.
  7. Теперь переходим к компьютеру, на котором запущен OPC-клиент и пытаемся искать OPC-сервер на удаленном сервере. Вы должны увидеть список OPC-серверов без каких-либо проблем, как и в предыдущем разделе.
  8. Но после манипуляций описанных в этом разделе мы должны иметь возможность создать группу в клиенте, увидеть теги и их значения.

Для корректной работы OPC серверов необходимо настроить сетевые параметры и параметры безопасности DCOM.

Настройка OpcEnum не требуется, поскольку данная служба автоматически настраивается при установке "OPC Core Components".

Пример настройки параметров приведен для тестового OPC сервера "Теst OPC Server" (является 32-х битным приложением). Настройка параметров DCOM выполняется с помощью панели управления "Службы компонентов" Windows. В зависимости от разрядности операционной системы и приложения OPC сервера необходимо запускать соответствующую версию панели управления:

  1. Версия Windows 32-х битная - команда "dcomcnfg" (рис. 19.1).
  2. Версия Windows 64-х битная, исполняемый файл OPC сервера 64-х битный - команда "dcomcnfg" (рис. 19).
  3. Версия Windows 64-х битная, исполняемый файл OPC сервера 32-х битный - команда "mmc comexp.msc /32" (рис. 20).

Для выполнения команды нажмите на клавиатуре Win + R, чтобы открыть окно запуска программ из командной строки.

Рис. 19.1 Запуск службы компонентов (вариант 1)

Рис. 20 Запуск службы компонентов (вариант 2)

4.1 Настройка параметров по умолчанию

Рис. 21 Свойства

Рис. 22 Безопасность COM

Кликните по кнопке №1 (рис. 22). В появившемся диалоговом окне (рис.23):

  1. Кликните на кнопке "Добавить";
  2. Добавьте группу пользователей "Пользователи DCOM", выполнив действия, аналогичные показанным на рисунках 7 – 9;
  3. Установите для нее права доступа;
  4. Сохраните изменения, кликнув по кнопке "OK".

Рис. 23 Настройка прав доступа

Повторите действия в диалоговом окне "Разрешение на запуск и активацию" (рис.24), которое появляется при клике на кнопке №2 "Изменить умолчания" (рис.22).

Рис. 24 Настройка разрешений на запуск

На закладке "Набор протоколов" (рис.25) удалите все протоколы, кроме TCP/ IP и нажмите "OK" для того чтобы сохранить изменения в диалоговом окне "Свойства: Мой компьютер".

Рис. 25 Настройка разрешений на запуск

4.2 Настройка параметров для OPC сервера

Рис. 26 Настройка DCOM для OPC сервера

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

Рис. 27 Общие свойства OPC сервера

Рис. 28 Свойства безопасности

Рис. 29 Конечные узлы

Рис. 30 Удостоверение

На закладке "Удостоверение" необходимо указать имя пользователя, который был создан ранее, от имени которого будет запускаться OPC сервер.

Замечание 1. Перед изменением настроек OPC сервера необходимо убедиться, что он не запушен и отсутствует в списке активных процессов. Или перезапустить OPC сервер после изменения настроек.

Замечание 2. Для некоторых OPC серверов необходимо, чтобы они были запущены хотя бы один раз с правами администратора, для того чтобы зарегистрироваться в системе и инициализировать параметры OPC сервера. Только после такой инициализации они будут доступны для обнаружения через OpcEnum и подключения.

4.3 Настройка доступа к OPC серверам "Для всех"

Внимание! Разрешение доступа для всех может снизить уровень безопасности компьютера.

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

  1. Компьютер с сервером может быть не включен в домен;
  2. Не требуется создавать пользователей на компьютере с OPC сервером;
  3. Пользователи могут запускать OPC клиент от своего имени.
  1. Угроза безопасности компьютера за счет разрешения удаленного доступа к DCOM для всех.

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

Откройте настройки DCOM для OPC сервера, как показано в разделе 4.2 и модифицируйте их согласно рис.31 – рис.34. Остальные опции должны соответствовать параметрам, указанным в разделе 4.2.

Рис. 31 Общие свойства

Рис. 32 Свойства безопасности

Рис. 33 Разрешения на запуск и активацию

Рис. 34 Права доступа

Необходимо настроить локальную политику безопасности. Для этого необходимо открыть консоль управления "Локальная политика безопасности". Консоль можно запустить, переместить курсор мыши в угол, выбрать "Параметры" - "Панель управления" - "Система и безопасность" -"Администрирование" - "Локальная политика безопасности". Необходимо перейти в раздел "Локальные политики - Параметры безопасности". И установить состояние правила "Сетевой доступ: разрешать применение разрешений "Для всех" к анонимным пользователям" в состояние "Включено" (рис. 35).

Рис. 35 Свойства политики безопасности

Если после изменения политики безопасности, как показано на рис. 35, OPC клиенты не могут получать список OPC серверов и подключаться к ним, то необходимо настроить и сохранить дополнительные свойства политики безопасности (рис. 36-37).

Читайте также: