使用 DCOMCNFG 设置进程范围安全性

如果应用程序的安全需求不同于计算机上其他应用程序所需的安全需求,则可能需要为特定应用程序启用安全性。 例如,可能决定对需要低级别安全性的应用程序使用系统范围的设置,同时为特定应用程序设置更高级别的安全性。

但是,有时不使用注册表中适用于特定应用程序的安全设置。 例如,如果客户端调用 CoSetProxyBlanket 来设置特定接口代理的安全性,则会重写使用 Dcomcnfg.exe 在注册表中设置的进程范围设置。 同样,如果客户端或服务器(或两者)调用 CoInitializeSecurity 来设置进程的安全性,则忽略注册表中的设置,并改用为 CoInitializeSecurity 指定的参数。

为应用程序启用安全性时,可能需要修改多个设置。 其中包括身份验证级别、位置、启动权限、访问权限和标识。 有关分步过程,请参阅以下内容:

为应用程序设置身份验证级别

若要为应用程序启用安全性,必须设置非 None 的身份验证级别。 身份验证级别告知 COM 需要多少身份验证保护,包括通过第一个方法调用对客户端进行身份验证和完全加密参数状态。

设置应用程序的身份验证级别

  1. 在 Dcomcnfg.exe 的“应用程序”属性页上,选择该应用程序,然后单击“属性”按钮(或双击所选应用程序)。

  2. “常规”页上,从“身份验证级别”列表框中选择“无”以外的身份验证级别

  3. 如果要为此应用程序设置其他属性,请选择“应用”按钮以应用新的身份验证级别。 如果已为此应用程序设置属性,并且想要应用更改,请单击“确定”

设置应用程序的位置

为应用程序设置的位置确定运行应用程序的计算机。 可以选择在数据所在的计算机、用于设置位置的计算机或指定计算机上运行应用程序。

设置应用程序的位置

  1. 运行 Dcomcnfg.exe 后,从“应用程序”页中选择应用程序,然后选择 “属性”按钮(或双击所选应用程序)。

  2. “位置”页上,选择一个或多个与要运行应用程序的位置对应的一个或多个复选框。 如果选择多个复选框,COM 将使用适用的第一个框。 如果在服务器计算机上运行 Dcomcnfg.exe,请始终选择“在此计算机上运行应用程序”

  3. 如果要为此应用程序设置其他属性,请选择“应用”按钮以应用新的位置。 如果已为此应用程序设置属性,并且想要应用更改,请选择“确定”

设置应用程序的启动权限

使用 Dcomcnfg.exe,可以设置启动权限来控制授予或拒绝启动特定服务器的权限的用户列表。 可以将用户或组添加到列表中,指定是授予还是拒绝访问权限。 还可以从列表中删除用户。

设置应用程序的启动权限

  1. 运行 Dcomcnfg.exe 后,从“应用程序”页中选择应用程序,然后选择 “属性”按钮(或双击所选应用程序)。

  2. “安全”属性页上,选择“使用自定义启动权限”选项按钮,然后选择同一区域中的“编辑”按钮。

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

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

  5. 如果知道要添加的完全限定用户名,请在“添加名称”文本框中键入。 如果不知道用户名,可以浏览用户数据库查找(请参阅下面的“浏览用户数据库”)。 找到用户名后,从“名称”列表框中选择用户或组,然后选择“添加”按钮。

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

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

为应用程序设置访问权限

使用 Dcomcnfg.exe,可以通过设置访问权限来管理授予或拒绝访问特定服务器方法的用户列表。 可以将用户或组添加到列表中,指定是授予还是拒绝访问权限。 还可以从列表中删除用户。

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

为应用程序设置访问权限的过程类似于设置启动权限。 步骤如下所示。

设置应用程序的访问权限

  1. 运行 Dcomcnfg.exe 后,从“应用程序”页中选择应用程序,然后选择 “属性”按钮(或双击所选应用程序)。

  2. “安全”属性页上,选择“使用自定义访问权限”选项按钮,然后选择同一区域中的“编辑”按钮。

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

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

  5. 如果知道要添加的完全限定用户名,请在“添加名称”文本框中键入。 如果不知道用户名,可以浏览用户数据库查找。 找到用户名后,从“名称”列表框中选择用户或组,然后选择“添加”按钮。

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

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

设置应用程序的标识

应用程序的标识是用于运行应用程序的帐户。 标识可以是当前登录的用户(交互式用户)、启动服务器的客户端进程的用户帐户、指定用户或服务的标识。 可以使用 Dcomcnfg.exe 为应用程序选择其中一个标识。 有关确定要为应用程序设置的标识的帮助,请参阅应用程序标识

为应用程序设置标识

  1. 运行 Dcomcnfg.exe 后,从“应用程序”页中选择应用程序,然后选择 “属性”按钮(或双击所选应用程序)。

  2. “标识”属性页上,选择所需标识的选项按钮。 如果选择“此用户”,则必须键入用户名、密码和确认的密码。

  3. 如果要为此应用程序设置其他属性,请选择“应用”按钮以应用新的标识。 如果已为此应用程序设置属性,并且想要应用更改,请选择“确定”

浏览用户数据库

需要查找特定用户的完全限定用户名时,可以在 Dcomcnfg.exe 中浏览用户数据库。 例如,可以浏览用户数据库以查找要添加访问权限或启动权限的用户。

浏览用户数据库

  1. “列出名称”列表框中,选择要添加的用户或组的域。

  2. 若要查看所选域中的用户,请选择“显示用户”按钮。

  3. 若要查看特定组的成员,请在“名称”列表框中选择该组,然后选择“显示成员”按钮。

  4. 如果找不到要添加的用户或组,请选择“搜索”按钮,此时会显示“查找帐户”对话框。 选择要搜索的域(或选择“全部搜索”),键入要查找的用户名,然后选择“搜索”按钮。

Dcomcnfg.exe 和 64 位应用程序

在从 Windows XP 到 Windows Server 2008 的 x64 操作系统上,64 位版本的 DCOMCNFG.EXE 无法正确配置 32 位 DCOM 应用程序进行远程激活。 此行为会导致要远程激活的组件在本地激活。 此行为不会在 Windows 7 和 Windows Server 2008 R2 及更高版本中发生。

解决方法是使用 32 位版本的 DCOMCNFG。 使用以下命令行运行 32 位版本的 mmc.exe 并加载 32 位版本的组件服务管理单元。

C:\WINDOWS\SysWOW64>mmc comexp.msc /32

32 位版本的组件服务可正确注册 32 位 DCOM 应用程序进行远程激活。

设置进程范围安全性