使用 VBScript 执行特权操作

如果使用 WMI 的脚本 API,可设置特定的安全特权。 例如,可设置安全特权,来请求关闭操作系统或检查安全事件日志。 有关详细信息,请参阅使用特殊特权运行

仅当在计算机上访问 WMI 时,才需要设置特权。 访问远程主机时,COM RPC 会自动设置特权。 若要确定所有必需特权,请查看要访问的特定 WMI 类(例如 Win32_OperatingSystem)对应的文档。 有关详细信息,请参阅 WbemPrivilegeEnum

本主题讨论以下部分:

在 Security_ 对象中设置特权

按照以下过程在 Visual Basic 中设置安全特权。

在 Visual Basic 中设置特权

  1. 创建类型为 SWbemLocator 的对象。

  2. 将新特权添加到 SWbemLocator.Security_ 对象。

    Security_ 对象包含 SWbemObjectSet 集合。 集中的对象是 SWbemSecurity 对象。 有关详细信息,请参阅访问集合

  3. 登录 WMI 并检索 SWbemServices 对象。

    SWbemServices 对象继承在上一步中设置的特权。

还可以使用 SWbemPrivilegeSet.AddAsString 方法设置特权。

将特权设置为名字对象的一部分

可以将特权设置为名字对象的一部分。

以下示例演示如何将调试特权添加到名字对象。

Set Service = GetObject("winmgmts:{impersonationLevel=impersonate, (Debug)}")

撤销和重置特权

以下示例演示如何设置 SeDebugPrivilege 特权,以及如何撤销 SeRemoteShutdownPrivilege 特权。

Set Service = GetObject("winmgmts:{impersonate,(Debug,!RemoteShutdown)}")

特权常量

执行特权操作