Kill all Lotus Notes Processes and delete temp files

What I need help on is a script I have written to close Lotus Notes and delete all temp files.  i need my script to be able to kill all Notes processes and delete the temp files so I can relaunch it without having to re-logon.  Here is what I have so far.

'******************************************************************************
Call kill_process_matching("nlnotes.exe,nhldaemn.exe,nupdate.exe,nwrdaemn.exe,nnotesmm.exe,nlnotes.exe,notes.exe,nweb.exe,naldaemn.exe")
delete_file("C:\Program Files\Lotus\Notes\Data\~notes.lck")
delete_file("C:\Program Files\Lotus\Notes\Data\Cache.DSK")
delete_file("C:\Program Files\Lotus\Notes\Data\log.nsf")


'******************************************************************************
'kill_process_matching(str_procs)
'
'Description
'            This functions checks all running processes for specific processes that are passed to it
'            and terminates any that it findes
'inputs
'      str_procs a comma delimited list of process names to look for
'
'

'******************************************************************************

function kill_process_matching(str_procs)
      dim bool_imp_proc_running            'bool value used to identify if an identifed process is running
      dim arry_arg_proc_names                  'an array of strings used to store the split str_procs
      dim obj_service                   'used as a winmgmts object
      dim obj_current_proc                  'used as the current process being checked
      dim obj_current_proc_list            'array of objects to bee killed
      dim strComputer                        ' the name of the computer - can be a remote name
      dim str_proc_to_kill_name             'string used to store current important process to look for

                              

      if trim(str_procs) = "" then
            exit function
      End IF
      arry_arg_proc_names=split(str_procs, ",")
      If not InStr(1, str_procs, ",", 1) >0 Then str_procs=str_procs & ","
      strComputer = "."
      Set obj_service = GetObject("winmgmts:" _
          & "{impersonationLevel=impersonate}!\\" _
          & strComputer & "\root\cimv2")
      for each str_proc_to_kill_name in arry_arg_proc_names
      ' loop through the list of passed in process names to kill
            Set obj_current_proc_list = obj_service.ExecQuery _
                ("Select * from Win32_Process Where Name like '" & str_proc_to_kill_name & "'")
            on error resume next 'just incase it can't terminate it
            For Each obj_current_proc in obj_current_proc_list
            ' loop through each process that it found matching the current name

                obj_current_proc.Terminate()
            
            Next
            on error goto 0
            Set obj_current_proc_list = Nothing
      Next

End Function


Function delete_file(STR_FQ_FileName)  
  Dim fso, f1
  Set fso = CreateObject("Scripting.FileSystemObject")
  If fso.FileExists(STR_FQ_FileName)Then 'if the file alread exists get the file attributes and prep for writing
        On Error Resume Next
        Set f1 = fso.GetFile(STR_FQ_FileName)
        f1.Attributes=0
        f1.Delete
        Set f1 = Nothing
        On Error GoTo 0
  End If
 Set fso = Nothing
End Function

'******************************************************************************


For some reason I am either missing some temp files or some child process that is not letting me re-run Notes in the same windows sesssion.  i would like this script to be able to work for Notes versions 5 and 6.5.
tmassoglia01Asked:
Who is Participating?
 
marilyngConnect With a Mentor Commented:
Use KillNotes.exe and call that from a script.  Works on Both server and clients.   Will kill every process running in the Notes directory.   So then all you need to add in your batch file is one to stop the service first ( essential) then another to call the killNotes.exe

The only other way to do this is to step through the active PID's and compare that to a list of exe's that exist in the Notes Directory.  If found then kill that process.   I did this in NT in a batch file (awhile ago, so I would have to resurrect the code)

KillNotes:http://www-10.lotus.com/ldd/sandbox.nsf/0/7b70d2411b8dec9688256acb005c433f
0
 
justchat_1Commented:
Try manually ending these processes via the task manager and then deleting the files-Do any processes or files say access denied or any other error??
0
 
tmassoglia01Author Commented:
No they do not, my problem is not the deleting of files or ending of processes, but rather which file need to be deleted and which processes need to be ended.
0
 
justchat_1Commented:
Im not sure I understand the question...I thought the processes and files defined above were the ones you needed to end/delete
0
 
tmassoglia01Author Commented:
Wow, thanks jsut what I needed!
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.