SWbemSecurity.ImpersonationLevel 属性

ImpersonationLevel 属性是一个整数,用于定义分配给此对象的 COM 模拟级别。 此设置确定 Windows Management Instrumentation 拥有的进程 (WMI) 是否可以在调用其他进程时检测或使用安全凭据。 有关模拟级别的详细信息,请参阅 “设置Client_Application_Process安全性”。

如果未在名字对象中专门设置模拟级别,或者通过在安全对象上设置 SWBemSecurity.ImpersonationLevel 属性,WMI 会将默认模拟级别设置为 默认模拟级别中指定的值。 如果此设置不够,提供程序不会为请求提供服务,并且对 WMI API 的调用可能会失败,并且 wbemErrAccessDenied (2147749891/0x80041003) 的错误代码。

有关此语法的说明,请参阅 脚本 API 的文档约定

此属性是可读写的。

语法

SWbemSecurity.ImpersonationLevel As Integer

属性值

备注

作为 DCOM 模拟级别,此属性可设置为以下值之一:

说明
匿名 隐藏调用方的凭据。 WMI 实际上不支持此模拟级别;如果脚本指定模拟Level=Anonymous,则 WMI 将无提示地将模拟级别升级到“标识”。 但是,这在某种程度上是毫无意义的练习,因为使用“标识”级别的脚本可能会失败。
识别 使对象能够查询调用方凭据。 使用此模拟级别的脚本可能会失败;“标识”级别通常允许你检查访问控制列表。 无法使用“标识”对远程计算机运行脚本。
Impersonate 使对象能够使用调用方凭据。 建议将此模拟级别用于 WMI 脚本。 执行此操作时,WMI 脚本将使用用户凭据;因此,它将能够执行能够执行的任何任务。
委托 使对象允许其他对象使用调用方凭据。 委派允许脚本在远程计算机上使用凭据,然后使该远程计算机在另一个远程计算机上使用凭据。 虽然可以在 WMI 脚本中使用此模拟级别,但应仅在必要时执行此操作,因为它可能会带来安全风险。
除非事务中涉及的所有用户帐户和计算机帐户都标记为“受信任的委派”,否则不能使用委托模拟级别。 这有助于最大程度地降低安全风险。 尽管远程计算机可以使用凭据,但只有在事务中涉及的任何其他计算机都信任委托时,才能执行此操作。

如前所述,匿名模拟会隐藏凭据,并且标识允许远程对象查询凭据,但远程对象无法模拟安全上下文。 (换句话说,虽然远程对象知道你是谁,但它不能“假装”你。) WMI 脚本使用这两个设置之一访问远程计算机通常会失败。 事实上,大多数脚本使用这两个设置之一在本地计算机上运行也将失败。

模拟允许远程 WMI 服务使用安全上下文来执行请求的操作。 使用模拟设置的远程 WMI 请求通常成功,前提是凭据具有足够的权限来执行预期操作。 换句话说,不能使用 WMI 远程执行操作 (,或者) 无权在 WMI 外部执行操作。

将模拟Level 设置为委托允许远程 WMI 服务将凭据传递到其他对象,并且通常被视为安全风险。

通过将 ImpersonationLevel 属性设置为所需值,可以设置 SWbemServicesSWbemObject、SWbemObjectSet、SWbemObjectPathSwbemLocator 对象的模拟级别。 以下示例演示如何设置 SWbemObject 对象的模拟级别:

objinstance.Security_.ImpersonationLevel = _
    wbemImpersonationLevelImpersonate

还可以将模拟级别指定为名字对象的一部分。 以下示例设置身份验证级别和模拟级别,并检索 Win32_Service实例。

Set objinst = GetObject("WinMgmts:{impersonationLevel=impersonate,"& _
                         "authenticationLevel=pktPrivacy}"& _
                         "!root/cimv2:Win32_service='ALERTER'")

要求

要求
最低受支持的客户端
Windows Vista
最低受支持的服务器
Windows Server 2008
类型库
Wbemdisp.tlb
DLL
Wbemdisp.dll
CLSID
CLSID_SWbemSecurity
IID
IID_ISWbemSecurity

另请参阅

SWbemSecurity

设置Client_Application_Process安全性

WbemImpersonationLevelEnum