System Administration: Script to Execute/Kill Remote Applications

These two scripts utilize WMI to connect to and run or kill an application on a remote PC.
Author:Darron Nesbitt
Platform: Windows NT, Windows 2000
Type: VBScript

DESCRIPTION: These two scripts utilize WMI to connect to and run or kill an application on a remote PC. The scripts will run on Windows 2000 or Windows NT.

Execute Remote App script:

This script when executed prompts for the following:

Remote computer's name
Path to application that will be executed on the remote computer
Path to directory Application resides in

<Execute Remote App.txt>

Onces succesfully started a process id will be returned along with the process owner.


Kill Remote App script:

This script when executed prompts for the following:

Remote computer's name
Process ID of the application to kill

<Kill Remote App.txt>

Download the script.
Scroll down to view the script.


SCRIPT:

'************************************************************************
'*		This script is for executing an application on a remote
'*		computer running Win2K or WinNT w/WMI installed.
'*
'*		Author: Darron Nesbitt
'*		Date: 	7/10/2001
'*
'************************************************************************

Dim strComputerName ' The Computer Name to be queried via WMI
Dim strWinMgt		' The WMI management String

On Error Resume Next

'get computer's name or ip address
strComputerName = ucase(InputBox("Enter the remote computers name or IP","Computer Name/IP"))
AppPath = ucase(InputBox("Enter path to application:" & VBCRLF & VBCRLF & "Example:C:\WINNT\SYSTEM32\Calc.exe","Application Path"))
WorkingDirectory = ucase(InputBox("Enter path to application directory" & VBCRLF & VBCRLF &  "Example: C:\WINNT\SYSTEM32","Application Working Directory"))
strWinMgt = "winmgmts://" & strComputerName & ""

'
' Get Computer/User Info
'
 Set CompSysSet = GetObject(strWinMgt).ExecQuery("select * from Win32_ComputerSystem")
 for each CompSys in CompSysSet
         strDescription = CompSys.Description
         strModel       = CompSys.Model
         strName        = CompSys.Name
			strManufacturer	= CompSys.Manufacturer
			strUserName		= CompSys.UserName
 next

 CompInfo = "Computer Information" & VBCrLf & VBCrLf
 CompInfo = CompInfo & "Computer Name: " & strName & VBTab & "User: " & strUserName & VBCrLf

'connect to processes
Set Process = GetObject(strWinMgt).Get("Win32_Process")

'start app
RetVal = Process.Create (AppPath,WorkingDirectory,null,PID)

'if 0 not returned error
if RetVal <> 0 then
	MsgBox "Error: " & Err.Description & ":" & Err.Number
else

	'build ProcessInfo string
	Set Processes = GetObject(strWinMgt).ExecQuery("select * from Win32_Process where ProcessID = " & PID)
	for each Process in Processes
		RetVal = Process.GetOwner(strUser,strDomain)
		ProcessInfo = "Name: " & Process.Caption & VBTAB & "ProcessID: " & PID & VBCRLF
		ProcessInfo = ProcessInfo & "Process Owner: " & ucase(strDomain) & "\" & ucase(strUser) & VBCRLF
	next

	'display info about computer and process
	RetVal = MsgBox (CompInfo & VBCRLF & VBCRLF & "Application started." & VBCRLF & VBCRLF & _
			 		 	ProcessInfo,VBOKOnly,strComputerName & " - Start Application")
end if

msgbox "Done!!"




'************************************************************************
'*		This script is for Killing an application on a remote
'*		computer running Win2K or WinNT w/WMI installed. To use you need
'*		the process id of the application.
'*
'*		Author: Darron Nesbitt
'*		Date: 	7/10/2001
'*
'************************************************************************

Dim strComputerName ' The Computer Name to be queried via WMI
Dim strWinMgt		' The WMI management String

On Error Resume Next

'get computer's name or ip address
strComputerName = ucase(InputBox("Enter the remote computers name or IP","Computer Name/IP"))
PID = InputBox("Enter the applications Process ID","Process ID to Kill")
strWinMgt = "winmgmts://" & strComputerName & ""

'
' Get Computer/User Info
'
 Set CompSysSet = GetObject(strWinMgt).ExecQuery("select * from Win32_ComputerSystem")
 for each CompSys in CompSysSet
         strDescription = CompSys.Description
         strModel       = CompSys.Model
         strName        = CompSys.Name
			strManufacturer	= CompSys.Manufacturer
			strUserName		= CompSys.UserName
 next

 CompInfo = "Computer Information" & VBCrLf & VBCrLf
 CompInfo = CompInfo & "Computer Name: " & strName & VBTab & "User: " & strUserName & VBCrLf

'build ProcessInfo string
Set Processes = GetObject(strWinMgt).ExecQuery("select * from Win32_Process where ProcessID = " & PID)
for each Process in Processes
	RetVal = Process.GetOwner(strUser,strDomain)
	ProcessInfo = "Name: " & Process.Caption & VBTAB & "ProcessID: " & PID & VBCRLF
	ProcessInfo = ProcessInfo & "Process Owner: " & ucase(strDomain) & "\" & ucase(strUser) & VBCRLF

	'display info about computer and process
	RetVal = MsgBox (CompInfo & VBCRLF & VBCRLF & "Application to Kill:" & VBCRLF & VBCRLF & _
		 		 	ProcessInfo & VBCRLF & VBCRLF & "Do you want to kill this process?",VBYesNo,strComputerName & " - Kill Application")
	if RetVal = 6 then
		RetVal = Process.Terminate(0)
	end if
next

'if 0 not returned error
if RetVal <> 0 then
	MsgBox "Error: " & Err.Description & ":" & Err.Number
end if


msgbox "Done!!"


Disclaimer: We hope that the information in these pages is valuable to you. Your use of the information contained in these pages, however, is at your sole risk. All information on these pages is provided "as -is", without any warranty, whether express or implied, of its accuracy, completeness, fitness for a particular purpose, title or non-infringement, and none of the third-party products or information mentioned in the work are authored, recommended, supported or guaranteed by me. I shall not be liable for any damages you may sustain by using this information, whether direct, indirect, special, incidental or consequential, even if it has been advised of the possibility of such damages.





0 Comments (click to add your comment)
Comment and Contribute

 


(Maximum characters: 1200). You have characters left.