我需要能够以特殊权限运行cmd.exe来运行bat文件并等到它完成。
我已经设法打开了具有特殊权限的cmd.exe,但是在bat文件完成之前我找不到等待。
我无法使用WScript.Shell
,因为cmd.exe
使用cimv2以特殊权限打开。
Dim WMIObj, strHost, intProcessID
On Error Resume Next
strHost = "."
Set WMIObj = GetObject("winmgmts:\\" & strHost & "\root\cimv2:Win32_Process")
If IsObject(WMIObj) Then
WMIObj.Security_.Privileges.AddAsString "SeRestorePrivilege", True
WMIObj.Create "cmd.exe /c cd /d c:\temp && asd.cmd && pause", Null, Null, intProcessID
End If
Set WMIObj = Nothing
答案 0 :(得分:0)
添加循环以等待PID intProcessID
的进程消失:
Set wmi = GetObject("winmgmts://./root/cimv2")
Do
WScript.Sleep 100
Set p = wmi.ExecQuery("SELECT * FROM W32_Process WHERE ProcessID=" & intProcessID)
Until p.Count = 0