2016-06-21 11 views
1

私は各コンピュータに接続するvbスクリプトをビルドしています。その目的は、SVCHOSTプロセス内で実行されるexeファイルを検出することです。VBScript SVCHOSTコンテナ検出

このexecがSVCHOSTの内部に存在する場合、どのように検出できますか?その場合、このexecに含まれるSVCHOSTプロセスを終了しますか?

あなたは、このコードで始めることができますあなたの

+0

あなたの目的は何ですか?詳細をさらに記述してください! – Hackoo

答えて

0

ありがとう:

Option Explicit 
If Not WScript.Arguments.Named.Exists("elevate") Then 
    CreateObject("Shell.Application").ShellExecute WScript.FullName _ 
    , WScript.ScriptFullName & " /elevate", "", "runas", 1 
    WScript.Quit 
End If 

Dim objWMI,colObjects,MyProcess,Process,TheProcess,DetectionProgram,MyPID 
TheProcess = "svchost.exe" 
DetectionProgram = "DcomLaunch" 
Set objWMI = GetObject("winmgmts:\\.\root\cimv2") 
Set colObjects = objWMI.ExecQuery("Select * From Win32_Process where Caption='"& TheProcess &"'") 

For Each Process in colObjects 
    MyProcess = MyProcess & Process.CommandLine & vbcrlf & "PID = " & Process.ProcessID & vbcrlf 
Next 

Wscript.Echo MyProcess 

For Each Process in colObjects 
    If InStr(1,Ucase(Process.CommandLine),UCase(DetectionProgram)) >= 1 Then 
     MyPID = Process.ProcessID 
     wscript.echo "PID = " & MyPID 
     Call Kill(MyPID) 
    End If 
Next 

'**************************************************** 
Sub Kill(PID) 
    Dim Ws,Command,Execution 
    Set Ws = CreateObject("Wscript.Shell") 
    Command = "cmd /c Taskkill /F /PID "& PID &"" 
    Execution = Ws.Run(Command,0,True) 
    Set Ws = Nothing 
End Sub 
'**************************************************** 
+0

問題は、SVCHOSTの内部にあるものです。どのように選択するのですか?そのコードは私にプロセス名を与えるだけです... SVCHOSTには他のプロセスが含まれていて、exeは1つのSVCHOSTの内部にあります。そのSVCHOSTを選択して終了する必要があります – user6495763

+0

@ user6495763最後の編集を確認してください – Hackoo

+1

非常にスマート、ありがとうございました – user6495763

関連する問題