30
9月
2022
在 Windows 上恢复 DCOM
15:02

在 Windows 上恢复 DCOM

30 9月 2022 15:02

在网上没有看到关于DCom系统默认设置的说明,所以决定写一篇文章。

警告

更改访问权限以及启动和激活权限可能会影响应用程序的启动以及用户和管理员正常运行的能力。 使用 dcomcnfg.exe 对 DCOM 组件的访问权限列表管理不当可能会导致使用 DCOM 技术进行通信的应用程序或组件失败。 通常不需要覆盖 Windows 安装期间创建的默认 DCOM 设置,因此您无需更改它们。 如果目标是增强默认提供的安全性之外的安全性,请确保用户具有启动和激活权限。 如果未全局授予启动和激活权限,您将必须更改特定应用程序的启动权限 ACL,以向适当的用户授予激活权限。 我不建议编辑 Windows 在安装过程中设置的系统用户组的权限。

DCOM 失败的原因

    1. DCOM组件使用传输系统进行操作 有机磷农药 (对象远程过程调用)。 服务 远程过程调用 是最重要的之一,因为 Windows(也使用 DCOM 来运行大多数组件)依赖于它。 我在实践中看到,某个用户因禁用“不必要的”Windows 服务而失控,禁止启动 RPC 服务。 结果,电脑重启后无法启动。 加载“一次一茶匙”进行,操作系统没有响应操作。 所以 RPC 服务应该正在运行。 与 Linux 上使用消息的 DBUS 不同,Windows 上的 DCOM 使用使用创建的比特流(打包调用) “马沙林加”,即序列化对象并将其传输到目标进程的过程。
  1. 对 DCOM 组件的访问基于 权利体系,使用指定 前交叉韧带- 访问控制列表。 用于配置设置的 dcomcnfg.exe 管理单元的描述很差。 微软只是建议不要更改默认设置,因为......它们可能会破坏系统。 设置本身没有在任何地方被提及。

有2种权限设置:

  • 访问权限(可以是本地或远程)
  • 激活权限 - 即启动组件。

另外,在DCOM设置中有两个限制(限制)

  • 访问限制
    *激活限制
  1. 防火墙- 在终端服务器 1c 上使用单个 RDP 端口 3389 应该是开放的。

如果不使用终端服务器,1c Enterprise网络版使用需要对外开放的TCP端口。

? 在防火墙中的服务器上,为传入连接创建规则 - 允许 TCP 端口: 1540, 1541, 1560-1591

! 可以使用命令显示PC上开放的端口 网络统计-an

  1. 集团政策。 运行DCOM的用户远程使用服务器资源。 默认设置允许 DCOM 在此模式下运行,但增加安全性可能会意外影响用户远程启动的权限,例如 计算机配置 - 管理模板 - 系统 - 分布式 COM 模型 (计算机配置 - 管理模板 - 系统 - 分布式 COM)。

  2. 属性和权限 特定的DCOM应用程序 在组件服务管理单元中:控制面板 -> 系统和安全 -> 管理工具 -> 组件服务 -> 计算机 -> 我的电脑 -> DCOM 设置 -> 应用程序名称 -> 属性 -> 安全。

  • 启动和激活权限 - 默认
    *访问权限 - 默认
    常规 - 身份验证级别 - 默认。
    身份 - 启动用户。
    托管 - 在此计算机上运行应用程序。
  1. 如果防病毒软件具有内置防火墙,它还可以监视端口。

快速恢复默认DCOM权限设置

仅当 DCOM 系统完全或部分停止工作时才需要执行此项。

首先,必须启用 DCOM 并且模拟级别为“定义“(数值 - 2)。

HKEY_LOCAL_MACHINE\Software\Microsoft\Ole

钥匙 “启用_DCOM”- 字符串 REG_SZ - 值 “是”

关键“旧版模拟级别" - DWORD - 值 2

注册

其次,要将权限恢复到原来的状态,需要在注册表编辑器REGEDIT.EXE中删除4个注册表项:

HKEY_LOCAL_MACHINE\Software\Microsoft\Ole

*DefaultAccessPermission*
DefaultLaunchPermission
MachineAccessRestriction
MachineLaunchRestriction**

! 这些密钥可以安全删除;他们将被再次创造。 这将删除管理员所做的所有非标准 DC​​OM 访问权限设置,启动和激活权限、限制和 DCOM 用户组将返回到安装操作系统后立即的原始值。 这样,DCOM系统就会恢复正常运行。

dcomcnfg.exe 实用程序中的默认访问权限设置

以下是 Windows 8-10 的默认 DCOM 设置。

DCOMCNFG.EXE -我的电脑属性-通讯安全

默认属性:
1234

1 访问权限 - 限制(限制)
11
12
13
14
15

2 访问权限 - 默认值
21
22
23

3 启动和激活的权限 - 限制(限制)
31
32
33
34
35

4 启动和激活权限 - 默认值
41
42
43

默认 DCOM 表权限 (ACL):



1 访问权限 - 限制(限制)

集团 本地访问 远程访问
全部 允许 允许
所有应用程序包 允许 -
性能日志用户 允许 允许
DCOM 用户 允许 允许
匿名登录 允许 -




2 访问权限 - 默认值

集团 本地访问 远程访问
自我 允许 允许
系统 允许 -
管理员 允许 允许




3 启动和激活的权限 - 限制(限制)

集团 本地发布 远程启动 本地激活 远程激活
全部 允许 - 允许 -
所有应用程序包 允许 - 允许
管理员 允许 允许 允许 允许
性能日志用户 允许 允许 允许 允许
DCOM 用户 允许 允许 允许 允许




4 启动和激活权限 - 默认值

集团 本地发布 远程启动 本地激活 远程激活
系统 允许 允许 允许 允许
管理员 允许 允许 允许 允许
互动 允许 允许 允许 允许




用户组“DCOM 用户"

您需要将用户添加到“DCOM 用户”组,该组应该能够远程和本地运行 DCOM 组件。 也就是说,不是所有用户,而是那些实际使用 DCOM 的用户。



相关出版物