Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


Пробуйте, свёл вместе:
читать дальше »
Код: Выделить весь код
Option Explicit

Const cdoSendUsingPort = 2
Const cdoBasic = 1

Const strSchema = "http://schemas.microsoft.com/cdo/configuration/"

Const SW_SHOWMINIMIZED   = 2
Const SW_SHOWMINNOACTIVE = 7


Dim arrProcesses

Dim strComputer

Dim objSWbemLocator
Dim objSWbemServicesEx
Dim collSWbemObjectSet
Dim objSWbemObjectEx

Dim elem
Dim objFSO

Dim lngProcessID


arrProcesses = Array("C:\WINDOWS\system32\notepad.exe", "C:\WINDOWS\system32\calc.exe", "C:\WINDOWS\system32\mspaint.exe")

strComputer = "."

Set objSWbemLocator    = WScript.CreateObject("WbemScripting.SWbemLocator")
Set objSWbemServicesEx = objSWbemLocator.ConnectServer(strComputer, "root\cimv2")
Set collSWbemObjectSet = objSWbemServicesEx.ExecNotificationQuery("SELECT * From __InstanceDeletionEvent WITHIN 1 WHERE TargetInstance ISA 'Win32_Process'")
Set objSWbemObjectEx   = objSWbemServicesEx.Get("Win32_ProcessStartup").SpawnInstance_

objSWbemObjectEx.ShowWindow = SW_SHOWMINNOACTIVE

Set objFSO             = WScript.CreateObject("Scripting.FileSystemObject")

' Первоначальный запуск процессов
For Each elem In arrProcesses
	If objSWbemServicesEx.Get("Win32_Process").Create(elem, objFSO.GetParentFolderName(elem), objSWbemObjectEx, lngProcessID) = 0 Then
		'WScript.Echo Now() & vbTab & "Process [" & elem & "] successfully started."
	Else
		WScript.Echo Now() & vbTab & "Can't create process [" & elem & "]."
	End If
Next

' Слежение за теми же процессами
Do
	With collSWbemObjectSet.NextEvent.TargetInstance
		For Each elem In arrProcesses
			If .Name = objFSO.GetFileName(elem) Then
				With WScript.CreateObject("CDO.Message")
					.From     = "windows@myservermail.ru"
					.To       = "мой-емейл@myservermail.ru"
					.Subject  = "Process [" & objFSO.GetFileName(elem) & "] closed."
					
					If objSWbemServicesEx.Get("Win32_Process").Create(elem, objFSO.GetParentFolderName(elem), objSWbemObjectEx, lngProcessID) = 0 Then
						.Textbody = Now() & vbTab & "Process [" & elem & "] successfully started."
					Else
						.Textbody = Now() & vbTab & "Can't create process [" & elem & "]."
					End If
					
					With .Configuration.Fields
						.Item(strSchema & "smtpserver")       = "mx.myservermail.ru"
						.Item(strSchema & "sendusing")        = cdoSendUsingPort
						.Item(strSchema & "smtpserverport")   = 25
						'.Item(strSchema & "smtpauthenticate") = cdoBasic
						'.Item(strSchema & "sendusername")     = "windows@myservermail.ru"
						'.Item(strSchema & "sendpassword")     = "password"
						
						.Update
					End With
					
					.Send
				End With
				
				Exit For
			End If
		Next
	End With
Loop

Set objFSO             = Nothing

Set objSWbemObjectEx   = Nothing
Set collSWbemObjectSet = Nothing
Set objSWbemServicesEx = Nothing
Set objSWbemLocator    = Nothing

WScript.Quit 0

Пока без проверки на вторичный запуск.
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:01, 01-12-2013 | #15