http://dieseyer.de • all rights reserved • © 2011 v11.4

'*** v6.7 *** www.dieseyer.de *******************************
'
' Datei: wmi-aktive-vbs.vbs
' Autor: dieseyer@gmx.de
' Auf: www.dieseyer.de
'
' Die Prozedur prüft, wie oft ein VBS mit einem bestimmten Name
' mit "wscript.exe" oder "cscript.exe" gerade läuft.
'
'************************************************************

Option Explicit ' Siehe http://dieseyer.de/dse-wsh-lernen.html#OptionExpl

Dim TesteVBS, i
TesteVBS = "kleINES.vbs"
TesteVBS = WScript.ScriptFullName

MsgBox TesteVBS & " läuft " & AnzahlLaufendeVBS( TesteVBS ) & "x", , WScript.ScriptName

WScript.Quit



'**************************************************************
Function AnzahlLaufendeVBS( VBScripts )
'**************************************************************
' On Error Resume Next

AnzahlLaufendeVBS = 0

Const wbemFlagReturnImmediately = &h10
Const wbemFlagForwardOnly = &h20
Dim strComputer : strComputer = "."
Dim objWMIService : Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Dim colItems : Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_Process", "WQL", wbemFlagReturnImmediately + wbemFlagForwardOnly)
Dim objItem
For Each objItem In colItems
If InStr( LCase( objItem.CommandLine), LCase( VBScripts ) ) > 0 Then
If InStr( LCase( objItem.CommandLine ), "script.exe" ) > 0 Then
' Txt = Txt & vbCRLF & objItem.CommandLine
AnzahlLaufendeVBS = AnzahlLaufendeVBS + 1
End If
End If
Next

' MsgBox VBScripts & " läuft " & AnzahlLaufendeVBS & " mal!", , "Skriptende - " & WScript.ScriptName

End Function ' AnzahlLaufendeVBS( VBScripts )

http://dieseyer.de • all rights reserved • © 2011 v11.4