Solved

Need VBScript to monitor a 64 bit process and take action when the process closes

Posted on 2009-06-30
2
1,445 Views
Last Modified: 2013-11-29
I have been using a VBScript to launch a special 32 bit application, then monitor it's process to see when it closes, then log the user off automatically.  But now I need to modify this to run on W2K3 x64 (and the process is also 64 bit now).  Can someone help me modify the below portion of a script so that it would work on W2K3 x64, and when MyProgram.EXE is also 64 bit?

(This was the VBScript for 32 bit version of the program)
'Connect to wmi
'set objWMIService = GetObject("winmgmts:root\cimv2")
Do
 found = false
'List the processes
strQuery = "Select * from win32_process where name='MyProgram.EXE'"
set colProcesses = objWMIService.ExecQuery(strQuery)
 
for each proc in colProcesses
 
   ' Get the reference class linking processes to sessions to get the session object path
   strQuery = "References of {win32_process.handle='" & proc.handle & "'} where ResultClass=Win32_SessionProcess"
   set colSessionReferences = objWMIService.ExecQuery(strQuery)
 
   for each oSessionReference in colSessionReferences
      'Get associators of the session object that are user accounts (linked by win32_loggedonuser)
      strQuery = "Associators of {" & oSessionReference.antecedent & "} where AssocClass=win32_LoggedOnUser"
      set colUsers = objWMIService.ExecQuery(strQuery,,48)
         for each user in colUsers
         if user.name = MUser then found = true
      next
   next
next
Loop While found = true
 
'Run the Windows 2003 logoff utility
wshShell.Run "c:\windows\system32\shutdown.exe -l -f"

Open in new window

0
Comment
Question by:Herrmannator
2 Comments
 
LVL 4

Accepted Solution

by:
asrdias earned 500 total points
ID: 24761533
The script should be fine... it works in my x64 Win7...

You must check if your wscript or cscript are running in 32bit or 64bit. Use task manager to check those processes. If there is a *32 in front of them then you're on 32 bit.
The 32 bit versions are stored in C:\Windows\SysWOW64 and the 64 bit ones should be on System32

0

Featured Post

Announcing the Most Valuable Experts of 2016

MVEs are more concerned with the satisfaction of those they help than with the considerable points they can earn. They are the types of people you feel privileged to call colleagues. Join us in honoring this amazing group of Experts.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Storage devices are generally used to save the data or sometime transfer the data from one computer system to another system. However, sometimes user accidentally erased their important data from the Storage devices. Users have to know how data reco…
Sometimes drives fill up and we don't know why.  If you don't understand the best way to use the tools available, you may end up being stumped as to why your drive says it's not full when you have no space left!  Here's how you can find out...
Windows 8 comes with a dramatically different user interface known as Metro. Notably missing from the new interface is a Start button and Start Menu. Many users do not like it, much preferring the interface of earlier versions — Windows 7, Windows X…
Windows 10 is mostly good. However the one thing that annoys me is how many clicks you have to do to dial a VPN connection. You have to go to settings from the start menu, (2 clicks), Network and Internet (1 click), Click VPN (another click) then fi…

813 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

16 Experts available now in Live!

Get 1:1 Help Now