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

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

Ветеран


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

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


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

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 objFSO             = WScript.CreateObject("Scripting.FileSystemObject")

' Первоначальный запуск процессов
For Each elem In arrProcesses
	If objSWbemServicesEx.Get("Win32_Process").Create(elem, objFSO.GetParentFolderName(elem), Nothing, 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
	Set objSWbemObjectEx = collSWbemObjectSet.NextEvent.TargetInstance
	
	For Each elem In arrProcesses
		If objSWbemObjectEx.Name = objFSO.GetFileName(elem) Then
			With WScript.CreateObject("CDO.Message")
				.From     = "monitor1@fabrikam.com"
				.To       = "admin1@fabrikam.com"
				.Subject  = "Atl-dc-01 down"
				
				If objSWbemServicesEx.Get("Win32_Process").Create(elem, objFSO.GetParentFolderName(elem), Nothing, lngProcessID) = 0 Then
					.Textbody = Now() & vbTab & "Process [" & elem & "] successfully started."
				Else
					.Textbody = Now() & vbTab & "Can't create process [" & elem & "]."
				End If
				
				.Send
			End With
			
			Exit For
		End If
	Next
Loop

Set objFSO             = Nothing
Set collSWbemObjectSet = Nothing
Set objSWbemServicesEx = Nothing
Set objSWbemLocator    = Nothing

WScript.Quit 0

Как и просили, отсылка без авторизации. Если запуск каких-то приложений отличается от обычного (минимизация/скрытие окна, приоритет отличен от Normal, рабочий каталог отличен от каталога приложения и т.п.) — говорите, будем усложнять логику.

Цитата novi:
т.к. эти приложения могут самостоятельно выгрузится. »
Например?

Цитата novi:
Есть причини по которым нужно именно так. »
Поделитесь ими.

Цитата novi:
В принципе скрипт сверху, этим всем и занимался. Тока не всё умел делать С вашей точки зрения он криво написан? »
Не знаю — не смотрел .

Отправлено: 07:03, 01-12-2013 | #8