首页 > 解决方案 > 具有更高权限的 VBA GetObject(以其他用户身份运行)

问题描述

我正在编写一个脚本,该脚本将返回给定远程计算机的驱动程序信息。
我想知道是否有可能或者是否有一种解决方法可以让它以更高的权限工作。
例如,我将创建一个会弹出的表单,询问用户凭据,并且脚本将使用输入的用户凭据运行。

这是到目前为止的脚本:

Sub start()


strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_PnPSignedDriver", , 48)
For Each objItem In colItems


    Debug.Print "Description: " & objItem.Description
    Debug.Print "DeviceClass: " & objItem.DeviceClass
    Debug.Print "DeviceID: " & objItem.DeviceID
etc...

那么这可能吗?有没有办法做到这一点?

标签: excelvbacredentials

解决方案


经过一番挖掘,我发现Win32_PnPSignedDriver支持使用用户/密码/域调用。以下代码非常适合我。

Set objWMIService = objSWbemLocator.ConnectServer(strComputer, "Root\CIMv2", strUser, strPassword, "MS_409", "ntlmdomain:" + strDomain)

Set colItems = objWMIService.ExecQuery("Select * from Win32_PnPSignedDriver", , 48)

推荐阅读