在 Windows 8/Windows 10 上配置DCOM

2021年7月8日 | 分类: 电气设计 | 标签: , ,

1. 初步条件

1.1安装 OPC 核心组件

OPC Core Components需要OPC服务器和OPC客户端才能运行。如果服务器和客户端安装在不同的计算机上,此包必须安装在两台计算机上。如果客户端或服务器运行在操作系统的 64 位版本上,并且它们是 64 位应用程序,则需要安装相应的 OPC 核心组件版本。

您可以从 opcfoundation.org 免费下载OPC核心组件。

图1 具有必要库的网站部分

在安装 OPC 核心组件之前,您应该安装 .Net 框架版本 2,因为 OPC 核心组件安装包不支持 Windows 中已有的第 4 版。要安装.Net框架版本2,您可以安装已经包含版本2和3的版本3.5。您可以通过 Windows 8 中的组件服务做到这一点:

  1. 将鼠标指头移动到桌面角之一:
  2. 选择设置 – 控制面板 – 程序 – 在 Windows侧栏中打开或关闭 Windows 功能;
  3. 在树状栏里选择.Net Framework 3.5。清除激活窗口通信基础复选框。
  4. 单击“确定“。

注:建议在安装 OPC 核心组件后重新启动计算机。

2. 创建用户并授予访问权限

2.1 添加用户

您需要创建具有运行和使用 DCOM 应用程序的权限的用户。可以使用相同用户名和密码的账户作为Windows账户,但为了提高安全性,您也可以创建受限制权限的用户。您需要管理员权限才能添加用户。

注意!您需要在两台计算机上(服务器和客户端安装的位置)创建相同用户名和密码的用户。稍后,您应该使用此用户帐户运行OPC客户端。
您可以使用以下操作访问计算机管理控制台(图 2):

  1. 使用任务栏图标或 Win+E 键盘快捷方式打开窗口资源管理器;
  2. 选择资源管理器左侧的计算机项目;
  3. 单击右鼠标按钮。
  4. 选择管理

图2 访问计算机或服务器管理控制台

图3 添加新用户

图4 新用户属性

您可以创建任何名称的用户。密码必须指定,不得为空密码。

2.2 授予权限

要允许新用户使用 DCOM,您应该将用户添加到相应的 DCOM 用户组。

图5 用户组

图6 将用户添加到组

手动键入新对话框中的用户名。它是本示例中的”opc”。然后单击“确定“。

图7 选定用户

图8 组中的用户

注意。您可以创建多个用户并将它们添加到一个 DCOM 用户组。您还可以将现有用户添加到此组。

3. 为DCOM和OPC配置Windows 8和Windows Server 2012防火墙

OPC 技术基于保留系统端口 135 的 DCOM 技术。要使服务器和客户端正常运行,您应该允许在防火墙中使用这些连接。如果客户端和服务器位于不同的计算机上,则需要防火墙配置。下面可以看到在 Windows 8 中配置标准防火墙的示例。如果客户端和服务器在一台计算机上使用,则无需配置防火墙。

:可以先临时关闭防火墙,待DCOM配置成功后,再启用防火墙。

图9 访问计算机或服务器管理控制台

对于Windows 8用户。要打开防火墙管理控制台,您应该将鼠标指头移动到桌面四角之一。选择设置 – 控制面板 – 系统和安全 – Windows 防火墙 –侧栏中的高级设置,或从命令行(Win + R)运行”firewal.cpl”命令。

3.1 允许 DCOM 活动

默认情况下,Windows 会阻止其他计算机的入站连接。要使 OPC 客户端能够连接到此计算机上的 OPC 服务器,您应该为传入的 DCOM 连接添加规则。

图12 添加新规则

图13 选择协议

图14 规则属性

图15 规则范围

图16 规则名称并完成新入站规则向导

重复 UDP 协议的上述步骤(图 13)。

3.2 为每个 OPC 服务器创建规则

您需要允许在本计算机上运行的每个OPC服务器的活动。此外,您还应允许 OpcEnum 系统服务的网络活动,该服务允许远程客户端从此计算机接收服务器列表。

添加规则所需的步骤与上述指定的步骤类似,规则的类型选择”程序”,下一步的需要指定可执行程序文件的位置(图 17-18)。

例如,当您在 64 位操作系统上添加OpcEnum的规则时,您应该指定路径C:\Windows\SysWOW64\OpcEnum.exe而在 32 位操作系统上,它将是C:\Windows\System32\OpcEnum.exe

图17 添加单个规则

  1. 选择新规则操作;
  2. 选择程序规则类型。

图18 选择文件

  1. 选择程序路径选项;
  2. 指定程序及其文件名称的完整路径;
  3. 您可以使用“浏览”按钮选择磁盘上的程序。

您应该重复这些步骤,为每个OPC服务添加一个规则。

4. 指定 DCOM 属性

要使 OPC 服务器正确运行,您应该指定 DCOM 网络和安全属性。
无需配置 OpcEnum,因为此服务在安装OPC Core Components时会自动配置。【建议OpcEnum也配置一遍】
此示例显示了如何指定测试 OPC 服务器”Test OPC Server”的属性(它是一个 32 位应用程序)。您可以使用 Windows 组件服务的控制面板配置 DCOM 参数。根据操作系统和 OPC 服务器应用程序的位数大小,您应该运行相应的控制面板版本:

  1. 32位版本的Windows – dcomcnfg 命令(图 19.1).
  2. 64位版本的Windows和64位OPC 服务器可执行文件 – dcomcnfg 命令(图 19.1)。
  3. 64位版本的Windows和32位OPC 服务器可执行文件 – mmc comexp.msc/32 命令(图19.2)。

要从命令行运行命令,通过在键盘上按Win+R打开运行对话”框。

图19.1 开始组件服务(案例 1)

图19.2 开始组件服务(案例 2)

4.1 指定默认属性

图21 属性

图 22 COM 安全

单击按钮 1(图 22)。在新的对话框中(图.23):

  1. 单击“添加”按钮;
  2. 通过执行类似于图7-9中显示的操作来添加DCOM用户组:
  3. 设置访问权限;

单击”确定”按钮以保存更改。

图 23 配置访问权限

“启动和激活权限“对话框(图.24)中重复操作,该对话框在单击“编辑默认“按钮(图 22)时显示。

图 24 配置启动权限

删除默认协议选项卡上的 TCP/IP(图.25)上的所有协议,然后单击OK以保存“我的计算机 – 属性对话框”中的更改。

图25 配置协议

4.2 指定 OPC 服务器属性

图 26 指定 OPC 服务器的 DCOM 属性

由于所有属性已指定为整个计算机,您应该确保 OPC 服务器使用默认属性。

图27 常规

图28 安全

图 29 终结点

图30 标识

您应该指定之前创建的用户,该用户将在“标识“选项卡【如果服务器和客户端使用相同的Windows登陆用户,此处可以设置为交互式用户】

注1在编辑 OPC 服务的属性之前,您应该确保它未运行,并且不在活动流程列表中;或在编辑OPC属性后重新启动OPC服务。

注2某些 OPC 服务必须至少使用管理员权限启动一次,以便在系统中注册并初始化 OPC 服务的参数。它们将仅在此类初始化后通过 OpcEnum 和连接进行检测。

4.3 配置Everyone对 OPC 服务器的访问

注意!Everyone的访问权限可能会降低计算机的安全级别。

当只配置Distributed COM Users用户权限无法通讯时,可以再配置Everyone用户权限。

有时可能需要允许每个人(包括匿名用户)访问 OPC 服务器。例如,当带有 OPC 服务器的计算机不属于域,并且许多客户端连接到服务器时。

优势:

  1. 具有服务器的计算机有可能不属于域:
  2. 无需使用 OPC 服务器在计算机上创建用户;
  3. 用户可以使用自己的帐户运行OPC客户端。

缺点:

  1. 由于Everyone可以远程访问 DCOM,因此安全性较低。

如果您想为Everyone提供对 OPC 服务器的访问权限,则应为选定的 OPC 服务器配置个人访问权限。

打开OPC服务器的DCOM属性,如第4.2节所示,并根据图31-图34对其进行编辑。其他属性必须与第 4.2 节中指定的属性相对应。

图31常规

图32 安全

图33 Launch and activation permissions

图 34 访问权限

您应该配置本地安全策略。为此,您应该打开本地安全策略控制台。您可以通过将鼠标指头移到角落并选择“设置 – 控制面板 – 系统和安全 – 管理工具 – 本地安全策略”来打开控制台。您应该转到“本地政策:安全选项“部分。并设置规则网络访问:让 Everyone 的权限适用于匿名用户启用(图35)。

图35 安全策略属性

如果您更改安全策略(如图 35 所示),而 OPC 客户端无法获取 OPC 服务器列表并连接到它们,则应指定并保存高级安全策略属性(图 36-37)。

  1. DCOM:安全描述符定义语言(SDDL)语法中的机器访问限制
  2. DCOM:安全描述符定义语言(SDDL)语法中的机器启动限制

图36 DCOM:访问限制

您可以在第 2.2 节中找到如何添加组或用户的详细信息。

5. 典型问题

5.1 RPC服务器不可用

此错误意味着无法与 RPC 服务建立网络连接。如果您正在连接到远程 OPC 服务器,则可能会出现。

  1. 如果在尝试在远程计算机上获取 OPC 服务器列表时出现错误,则应检查防火墙设置。默认情况下,位于 Windows\System32 文件夹中的 OpcEnum .exe文件必须添加到例外中。
  2. 您应该确保允许与端口 135 的入站 DCOM 连接。视窗防火墙具有入站规则”窗口管理仪表(DCOM-in)”。您需要启用此规则。
  3. 如果在尝试连接到 OPC 服务器时出现错误,您应该确保 OPC 服务器的可执行文件添加到 Windows 防火墙异常列表中。
  4. 尝试允许所有传入和传出连接到客户端计算机上的远程 IP 地址。在 Windows 防火墙中,您应该添加进站和出站”自定义”规则:所有程序→所有协议和端口→您的远程IP 地址→允许连接。

5.2 访问被拒绝

此错误意味着当前权限不足以建立连接。您应该配置第4部分第3节中描述的 DCOM。如果没有任何帮助,请为Everyone打开DCOM连接。

5.3 未找到 IOPCSERVERLIST INTERFACE

  1. 仔细检查,如果您的应用程序是 32 位,则您也应该安装 32 位版本的OPC Core Components(例如,”OPC Core Components Redistributable (x86) 3.00.107.msi”)。
  2. 安装OPC Core Components后,应重新启动计算机。
  3. 有时,如果您将”组件服务→计算机→计算机的组件服务→ OpcEnum”设置为”连接”,则可能会解决这个问题(请看第4部分第1节内容)。

5.4 OPC 客户端可以连接到远程 OPC 服务器,但不会从服务器接收信息

在OPC记录器中,此错误显示为”建议:拒绝访问”。此错误意味着服务器无法将数据发送到客户端计算机。请在客户端计算机上启动 dcomcnfg.exe,转到”组件服务→计算机→我的计算机”,通过此节点右键单击并配置如下所示的 DCOM 设置:

图1 DCOM 设置

重新启动OPC客户端(OPC记录器,OPC Scada查看器)

via 原文

目前还没有任何评论.

Scroll Up