2016-07-12 1 views
-1

特別な権限を持つcmd.exeを実行して、batファイルを実行して終了するまで待つ必要があります。batファイルを呼び出して終了するまで待つcmd.exeを実行します。

特別な権限を持つcmd.exeを既に開くことができましたが、batファイルが終了するまで待つことができません。 cmd.exeがcimv2を使用して特別な権限で開かれているため、WScript.Shellを使用できません。

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 
+2

http://stackoverflow.com/a/26588562/4473405それが働いた –

+0

おかげで、 – Eduardo

答えて

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 
関連する問題