(理想的にはVBScript / JScriptのようなスクリプト言語を使用して)別のプログラムを生成したプロセスの詳細を取得する方法はありますか?つまり、Computrace LoJackがiexploreを起動した場合、インターネットとの通信を処理しますか?
質問する
2468 次
1 に答える
2
WMIを使用して、目的のプロセスのParentProcessIdを確認できます。「通常の」ユーザーモードアプリケーションの場合、親プロセスはexplorer.exeである必要があります。
strProcess = "iexplore.exe"
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colProcesses = objWMIService.ExecQuery("Select * from Win32_Process " _
& " Where name = '" & strProcess & "'")
For Each objProcess in colProcesses
WScript.Echo objProcess.ParentProcessId
Next
Internet Explorerの場合、IEのIDも確認してください。これは、IE自体の複数のインスタンスを生成するためです。次のようなものを試してください。
strProcess = "iexplore.exe"
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colProcesses = objWMIService.ExecQuery("Select * from Win32_Process " _
& " Where name = 'explorer.exe' OR name = 'iexplore.exe'")
i = 0
arrIds = Array()
For Each objProcess in colProcesses
ReDim Preserve arrIds(i)
arrIds(i) = objProcess.ProcessId
i = i + 1
Next
Set colProcesses = objWMIService.ExecQuery("Select * from Win32_Process " _
& " Where name = '" & strProcess & "'")
For Each objProcess in colProcesses
intParentID = objProcess.ParentProcessId
blnIsFound = False
For Each intID in arrIds
If intID = intParentID Then
blnIsFound = True
Exit For
End If
Next
If blnIsFound = False Then
WScript.Echo "Process " & objProcess.ProcessId & " spawned by process " & objProcess.ParentProcessId
End If
Next
于 2012-04-27T18:01:48.170 に答える