LISTING 4: ChkProcess.vbs Option Explicit Stop On error Resume Next '================== 'Declarations '================== Dim user,domain Dim wshShell Dim strUserName Dim loc Dim svc Dim proc_list Dim proc Dim ret Dim oArgs Dim Program Dim Target Dim Start '================== 'Main Body '================== Set oArgs =WScript.Arguments set loc = createObject("WbemScripting.SWbemLocator") Set wshShell = CreateObject("Wscript.Shell") Program = oArgs(0) Target = oArgs(1) strUserName = wshShell.ExpandEnvironmentStrings("%Username%") loc.security_.impersonationLevel = 3 'impersonate set svc = loc.connectServer(".","root\cimv2") set proc_list = svc.ExecQuery("Select * from Win32_Process") for each proc in proc_list ret = proc.GetOwner(user,domain) if ret <> 0 then 'wscript.echo "Error executing GetOwner for process " & proc.Name & " ,Error value = " & ret Else If proc.name = Program then If strUserName = user then MsgBox user & " is already running " & Program & " ... You cannot open another instance",vbexclamation,"Warning" WScript.quit End If End If end if next start = WshShell.run(Target)