使用 DCOMCNFG 设置系统范围安全性

更改系统范围内的安全设置将影响未设置其进程范围安全性的所有 COM 服务器应用程序。 这可能会阻止此类应用程序正常工作。 如果想要通过更改系统范围安全性设置来影响特定 COM 应用程序的安全设置,不如更改该特定 COM 应用程序的进程范围安全性设置。 有关设置进程范围安全性的详细信息,请参阅设置进程范围安全性

如果希望一台计算机上所有未提供自己的安全性的应用程序共享相同的默认安全设置,则可以在系统范围内设置安全性。 使用 Dcomcnfg.exe 可以轻松地在应用于计算机上所有应用程序的注册表中设置默认值。

请务必了解,如果客户端或服务器显式调用 CoInitializeSecurity 以设置进程范围安全性,则会忽略注册表中的默认设置,将为进程的安全设置改用 CoInitializeSecurity 参数。 此外,如果使用 Dcomcnfg.exe 为特定进程指定安全设置,进程设置将替代默认计算机设置。

启用系统范围安全性时,必须将身份验证级别设置为非 None 值,并且必须设置启动和访问权限。 可以选择设置默认模拟级别,还可以启用引用跟踪。 以下主题提供分步过程:

设置系统范围的默认身份验证级别

身份验证级别用于告知 COM 希望对客户端进行身份验证的级别。 这些级别提供各种级别的保护,从不保护到完全加密。 若要为计算机启用安全性,需要选择非“无”身份验证级别。 可以通过完成以下步骤,使用 Dcomcnfg.exe 来选择此类设置。

在系统范围内设置身份验证级别

  1. 运行 Dcomcnfg.exe。

  2. 选择“默认属性”选项卡。

  3. “默认身份验证级别”列表框中,选择除“无”以外的值。

  4. 如果要为计算机设置更多属性,请单击“应用”按钮应用新的身份验证级别。 否则,单击“确定”以应用更改并退出 Dcomcnfg.exe。

设置系统范围的启动权限

使用 Dcomcnfg.exe 设置的启动权限确定用户列表,其中每个用户都明确授予或拒绝启动任何未提供其自有启动权限设置的服务器的权限。 设置启动权限时,可以从此列表中添加或删除一个或多个用户或组。 对于添加的每个用户,必须指定是授予还是拒绝启动权限。

设置计算机的启动权限

  1. 在 Dcomcnfg.exe 的“默认安全”属性页上,选择“默认启动权限”区域中的“编辑默认值”按钮。

  2. 若要删除用户或组,请选择要删除的用户或组,然后选择“删除”按钮。 所选用户或组将不再显示在列表框中。 删除用户和组后,选择“确定”

  3. 如果要添加用户或组,请选择“添加”按钮。

  4. 如果知道要添加的完全限定用户名,请在“添加名称”文本框中键入。 如果不知道用户名,请参阅使用 DCOMCNFG 设置进程范围安全性以查找。 找到用户名后,从“名称”列表框中选择用户或组,然后选择“添加”按钮。

  5. “访问类型”列表框中,选择访问类型(允许启动拒绝启动)。 若要添加也具有所选访问权限类型的其他用户,请重复步骤 4。 为所选访问类型添加用户后,请选择“确定”按钮。

  6. 若要添加将具有不同访问权限类型的用户,请重复步骤 4 和步骤 5。 否则,选择“确定”以应用更改。

设置系统范围的访问权限

Dcomcnfg.exe 允许设置访问权限,以控制授予或拒绝访问那些不提供自己访问权限的服务器方法的用户列表。 可以将用户或组添加到列表中,指定是授予还是拒绝访问权限。 还可以从列表中删除用户。

设置访问权限时,必须确保 SYSTEM 包含在授予访问权限的用户列表中。 如果已向所有人授予访问权限,则隐式包含 SYSTEM。

为计算机设置访问权限的过程类似于设置启动权限。 应采取以下步骤。

设置计算机的访问权限

  1. 在 Dcomcnfg.exe 的“默认安全”属性页上,选择“默认访问权限”区域中的“编辑默认值”按钮。

  2. 若要删除用户或组,请选择要删除的用户或组,然后选择“删除”按钮。 所选用户或组将不再显示在列表框中。 删除用户和组后,选择“确定”

  3. 如果要添加用户或组,请选择“添加”按钮。

  4. 如果知道要添加的完全限定用户名,请在“添加名称”文本框中键入。 如果不知道用户名,请参阅使用 DCOMCNFG 设置进程范围安全性以查找。 找到用户名后,从“名称”列表框中选择用户或组,然后选择“添加”按钮。

  5. “访问类型”列表框中,选择访问类型(允许访问拒绝访问)。 若要添加将具有所选访问权限类型的其他用户,请重复步骤 4。 为所选访问类型添加用户后,请选择“确定”按钮。

  6. 若要添加将具有不同访问权限类型的用户,请重复步骤 4 和步骤 5。 否则,选择“确定”以应用更改。

设置系统范围的模拟级别

客户端设置的模拟级别确定为服务器提供代表客户端执行操作的授权量。 例如,当客户端将模拟级别设置为委派时,服务器可以作为客户端访问本地和远程资源,如果设置了掩蔽功能,服务器可以掩蔽多个计算机边界。 若要帮助确定应选择的模拟级别,请参阅模拟级别掩蔽

设置整个计算机的默认模拟级别会告知 COM 当计算机上的特定客户端未使用 CoInitializeSecurityCoSetProxyBlanket 以编程方式指定模拟级别时要使用的模拟级别。

设置计算机的模拟级别

  1. 运行 Dcomcnfg.exe 后,选择“默认属性”选项卡。

  2. “默认模拟级别”列表框中,选择所需的模拟级别。

  3. 如果要为计算机设置更多属性,请选择“应用”按钮应用新的模拟级别。 否则,选择“确定”以应用更改并退出 Dcomcnfg.exe。

设置系统范围的引用跟踪

启用引用跟踪时,要求 COM 执行其他安全性检查,并跟踪将阻止对象过早释放的信息。 请记住,这些额外的检查成本高昂。 有关引用跟踪的详细信息,请参阅引用跟踪。 使用以下步骤启用或禁用引用跟踪。

设置计算机的引用跟踪

  1. 运行 Dcomcnfg.exe 后,选择“默认属性”选项卡。

  2. 若要启用(或禁用)引用跟踪,请选择(或清除)页面底部附近的“为引用跟踪提供额外的安全性”复选框。

  3. 如果要为计算机设置更多属性,请选择“应用”按钮应用新设置。 否则,选择“确定”以应用更改并退出 Dcomcnfg.exe。

启用和禁用 DCOM

当计算机是网络的一部分时,DCOM 线路协议使该计算机上的 COM 对象能够与其他计算机上的 COM 对象通信。 可以为特定计算机禁用 DCOM,但这样做将禁用该计算机上的对象与其他计算机上的对象之间的所有通信。

在计算机上禁用 DCOM 不会影响本地 COM 对象。 COM 仍查找已指定的启动权限。 如果未指定任何启动权限,则使用默认启动权限。 即使禁用 DCOM,如果用户对计算机具有物理访问权限,他们也可以在计算机上启动服务器,除非设置启动权限不允许其启动。

注意

如果在远程计算机上禁用 DCOM,则之后将无法远程访问该计算机以重新启用 DCOM。 若要重新启用 DCOM,需要对该计算机进行物理访问。

 

为计算机手动启用或禁用 DCOM

  1. 运行 Dcomcnfg.exe。

  2. 选择“默认属性”选项卡。

  3. 选择(或清除)“在此计算机上启用分布式 COM”复选框。

  4. 如果要为计算机设置更多属性,请单击“应用”按钮以启用或禁用 DCOM。 否则,单击“确定”以应用更改并退出 Dcomcnfg.exe。

设置进程范围安全性