Solved

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

Posted on 2009-06-30
2
1,496 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
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

Portable, direct connect server access

The ATEN CV211 connects a laptop directly to any server allowing you instant access to perform data maintenance and local operations, for quick troubleshooting, updating, service and repair.

Question has a verified solution.

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

While rebooting windows server 2003 server , it's showing "active directory rebuilding indices please wait" at startup. It took a little while for this process to complete and once we logged on not all the services were started so another reboot is …
Configuring Remote Assistance for use with SCCM
As developers, we are not limited to the functions provided by the VBA language. In addition, we can call the functions that are part of the Windows operating system. These functions are part of the Windows API (Application Programming Interface). U…
This Micro Tutorial hows how you can integrate  Mac OSX to a Windows Active Directory Domain. Apple has made it easy to allow users to bind their macs to a windows domain with relative ease. The following video show how to bind OSX Mavericks to …

751 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