Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

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

Ветеран


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

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


Цитата novi:
пока пишется скрипт, »
Увы, не пишется скрипт. Никак не пишется . Visual Studio я, оказывается, давно уже удалил, а для PowerShell пока катастрофически не хватает знаний.

Цитата novi:
можете его чуть чуть поменять чтобы он не постоянно висел в памяти, а запускался, проверял и выгружался? »
Пробуйте:
читать дальше »
Код: Выделить весь код
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 objSWbemObjectEx

Dim elem
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 objSWbemObjectEx   = objSWbemServicesEx.Get("Win32_ProcessStartup").SpawnInstance_
objSWbemObjectEx.ShowWindow = SW_SHOWMINNOACTIVE

For Each elem In arrProcesses
	If objSWbemServicesEx.ExecQuery("SELECT ExecutablePath FROM Win32_Process WHERE ExecutablePath = '" & Replace(elem, "\", "\\") & "'").Count = 0 Then
		With WScript.CreateObject("CDO.Message")
			.From     = "windows@myservermail.ru"
			.To       = "мой-емейл@myservermail.ru"
			.Subject  = "Process [" & elem & "] closed."
			
			If objSWbemServicesEx.Get("Win32_Process").Create(elem, WScript.CreateObject("Scripting.FileSystemObject").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
				
				.Update
			End With
			
			.Send
		End With
	End If
Next

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

WScript.Quit 0

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

Отправлено: 23:34, 16-01-2014 | #33