VBA 具有更高权限的 GetObject(运行 作为其他用户)
VBA GetObject with higher privileges (run as other user)
我正在编写一个脚本,该脚本将 return 给定远程计算机的驱动程序信息。
我想知道是否有可能或者是否有解决方法可以让它以更高的权限工作。
例如,我会创建一个会弹出的表单,询问用户凭据,脚本会 运行 使用输入的用户凭据。
这是目前的脚本:
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...
这可能吗?有办法实现吗?
经过一番挖掘,我发现 Win32_PnPSignedDriver
支持用 user/pass/domain 调用。以下代码非常适合我。
Set objWMIService = objSWbemLocator.ConnectServer(strComputer, "Root\CIMv2", strUser, strPassword, "MS_409", "ntlmdomain:" + strDomain)
Set colItems = objWMIService.ExecQuery("Select * from Win32_PnPSignedDriver", , 48)
我正在编写一个脚本,该脚本将 return 给定远程计算机的驱动程序信息。
我想知道是否有可能或者是否有解决方法可以让它以更高的权限工作。
例如,我会创建一个会弹出的表单,询问用户凭据,脚本会 运行 使用输入的用户凭据。
这是目前的脚本:
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...
这可能吗?有办法实现吗?
经过一番挖掘,我发现 Win32_PnPSignedDriver
支持用 user/pass/domain 调用。以下代码非常适合我。
Set objWMIService = objSWbemLocator.ConnectServer(strComputer, "Root\CIMv2", strUser, strPassword, "MS_409", "ntlmdomain:" + strDomain)
Set colItems = objWMIService.ExecQuery("Select * from Win32_PnPSignedDriver", , 48)