维护 WMI 安全性

WMI 安全性侧重于保护对命名空间数据的访问。 WMI 首先授予对 WMI 控件 和 DCOM 设置指定的用户组的访问权限,然后提供程序确定用户是否应有权访问命名空间数据。

本主题将讨论以下部分:

命名空间安全性

命名空间安全性取决于标准Windows用户安全标识符 (SID) 和 WMI 命名空间的安全描述符

可以通过执行以下操作来设置命名空间安全性:

分布式组件对象模型 (DCOM) 安全性设置。

DCOM 安全性需要身份验证设置和模拟设置。 身份验证意味着一个进程将自身标识到另一个进程。 模拟标识客户端授予服务器调用不同进程的颁发机构。 在安全检查期间,服务器模拟客户端。 有关详细信息,请参阅 保护 C++ 客户端和提供程序保护脚本客户端

脚本和 C/C++/C# 应用程序在连接到 WMI 命名空间或使用默认设置时,可以建立身份验证和模拟级别。 与远程计算机的连接需要与本地计算机上的 WMI 命名空间不同的设置。 有关详细信息,请参阅 在远程计算机上连接到 WMI

WMI、共享服务主机和身份验证

WMI 驻留在共享服务主机中,其他几个服务在 NetworkService 帐户下运行。 在 Svchost 进程中,WMI 与主机中的其他进程共享相同的身份验证。

提供程序 DLL 从 WMI 加载到单独的服务主机进程中。 __Win32Provider系统类中的 HostingModel 属性,表示提供程序指定运行提供程序的系统帐户。 设置此属性会导致提供程序加载到具有指定权限级别的共享主机进程中。 有关详细信息,请参阅 提供程序托管和安全性

WMI 客户端脚本和应用程序的安全性

脚本和应用程序必须建立正确的安全性,才能连接到本地和远程计算机上的 WMI 命名空间。 有关详细信息,请参阅 保护 C++ 客户端和提供程序保护脚本客户端以及 保护 WMI 事件

下表列出了有关维护 WMI 安全性的主题。

主题 说明
保护 WMI 命名空间 可以通过 WMI 控件限制对授权用户的命名空间数据访问。
保护提供商 有关编写安全提供程序的信息。
保护 C++ 客户端和提供程序 C++ 提供程序和客户端应用程序必须执行许多相同的操作才能维护 WMI 安全性。
保护脚本客户端 脚本和Visual Basic应用程序 (自动化客户端) 必须设置适当的安全性才能访问 WMI 数据和事件。
保护 WMI 事件 WMI 事件由事件提供程序传递到临时或永久使用者。 事件以事件类的实例的形式传递。
更改安全对象上的访问安全性 使用适当的权限,可以对表示可读取或更改安全对象安全描述符的安全对象 WMI 对象调用方法。

 

使用 WMI