为WMI配置非管理员用户帐户

1. Windows 2003 R2 SP2 Server及以上版本的步骤

您可以将常规Windows用户配置为访问WMI信息,方法是使用lusrmgr.msc将常规用户帐户添加到“分布式COM用户”和“性能监视器用户”组,然后配置DCOM安全设置以允许这些组远程访问系统(使用dcomcnfg)。

注:需要在这些被监视的设备的客户端配置中执行这些配置文件。

在本地用户和组设置中配置分布式COM用户:

 

首先,我们在本地用户设置中添加DCOM用户组。

  1. 单击“开始” → 运行,类型lusrmgr.msc然后单击“确定”。
  2. 在“用户”文件夹中,右键单击用户以打开菜单,然后选择属性
  3. 点击到成员选项卡,然后单击添加
  4. 在“输入要选择的对象名称”下,键入 “分布式COM用户”(不带引号),单击检查姓名,然后单击OK
  5. 点击添加.
  6. 性能监视器用户事件日志读取器组重复步骤3-5.

配置DCOM安全设置以允许组远程访问系统:

 

接下来,我们为用户组(分布式COM用户和性能监视器用户)提供基本的访问权限,以便能够远程控制设备。

  1. 点击开始 → 运行,类型组件服务然后单击确定。
  2. 深入到组件服务树直到你找到我的电脑。右键单击“我的电脑”打开菜单,然后单击属性
  3. 单击COM安全选项卡,然后单击编辑限制启动和激活权限部分。
  4. 单击“添加”。
  5. 在“输入要选择的对象名称”下,键入“分布式COM用户”(不带引号),单击检查姓名,然后单击确定
  6. 单击添加.
  7. 对于性能监视器用户组重复9-12步。
  8. 检查允许对于每个组的每个权限(本地启动、远程启动、本地激活、远程激活),然后单击确定

正在设置要应用于所有命名空间的WMI控件安全设置:

 

最后,为两个用户组的所有名称空间下的所有类提供访问权限,以便使OpManager能够使用WMI获取这些数据。

  1. 单击开始 → 运行,类型wmimgmt.msc然后单击确定。
  2. 右键单击WMI控件(本地)以打开菜单,然后单击属性
  3. 单击安全选项卡,然后单击,然后单击安全按钮。
  4. 点击添加
  5. 在“输入要选择的对象名称”下,键入“分布式COM用户”(不带引号),单击检查姓名,然后单击确定
  6. 确保已选择“分布式COM用户”组,然后单击高级
  7. 突出显示行分布式COM用户在里面点击编辑
  8. 从“适用于”下拉列表,选择“此命名空间和子命名空间”
  9.  

  10. Under the 'Allow' 执行方法,启用帐户远程启用,然后单击确定
  11. 对于性能监视器用户组重复步骤17-23。
  12. 单击确定关闭所有窗口。

为Windows服务监视的服务控制管理器安全设置权限:

如果要监视Windows服务监视器是否处于打开/关闭状态,则需要向SCManager授予权限。对Windows服务的访问是由服务控制管理器的安全描述符控制的,默认情况下,服务控制管理器对强化操作系统是有限制的。下面提到的步骤将在用户级别授予对服务控制管理器的远程访问权限,以获取服务器上的服务列表。

检索用户帐户的用户SID

  1. 在受监视的设备上,以管理员模式打开命令提示符。
  2. 运行以下命令以检索用户SID。将UserName替换为用户帐户的用户名。

    wmic useraccount where name="UserName" get name,sid

    例:

    wmic useraccount where name="administrator" get name,sid

  3. 记下SID(例如S-1-0-10-200000-300000000000-4000000000-500)

检索SC管理器的当前SDDL

  1. 运行下面的命令,将SC管理器的当前SDDL保存到CurrentSDDL.txt。

    sc sdshow scmanager > CurrentSDDL.txt

  2. 编辑CurrentSDDL.txt并复制整个内容。
  3. SDDL如下所示:

    D:(A;;CC;;;AU)(A;;CCLCRPRC;;;IU)(A;;CCLCRPRC;;;SU)(A;;CCLCRPWPRC;;;SY)(A;;KA;;;BA)(A;;CC;;;AC)S:(AU;FA;KA;;;WD)(AU;OIIOFA;GA;;;WD)

更新SDDL:

  1. 为上述SID框架新的SDDL片段

    (A;;CCLCRPWPRC;;;<SID of User>)

    示例。

    (A;;CCLCRPWPRC;;;S-1-0-10-200000-30000000000-4000000000-500)

  2. 现在把这个片段放在原始SDDL的“S:”之前。
  3. 更新的SDDL将如下所示:

    D:(A;;CC;;;AU)(A;;CCLCRPRC;;;IU)(A;;CCLCRPRC;;;SU)(A;;CCLCRPWPRC;;;SY)(A;;KA;;;BA)(A;;CC;;;AC)(A;;CCLCRPWPRC;;;S-1-0-10-200000-30000000000-4000000000-500)S:(AU;FA;KA;;;WD)(AU;OIIOFA;GA;;;WD)

  4. 最后使用更新的SDDL执行以下命令:

    sc sdset scmanager D:(A;;CC;;;AU)(A;;CCLCRPRC;;;IU)(A;;CCLCRPRC;;;SU)(A;;CCLCRPWPRC;;;SY)(A;;KA;;;BA)(A;;CC;;;AC)(A;;CCLCRPWPRC;;;S-1-0-10-200000-30000000000-4000000000-500)S:(AU;FA;KA;;;WD)(AU;OIIOFA;GA;;;WD)

    这将向用户授予以下权限:
    CC - 获取服务的当前配置
    LC - 获取服务的当前状态
    RP - 读取属性/启动服务
    WP - 写入属性/停止服务
    RC - 读安全描述符。

现在,您应该能够使用常规用户帐户而不是管理员帐户对此Windows主机执行WMI监视。