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

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

Ветеран


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

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


Цитата novi:
а в нижней панели "панель задач", их нету »
Ух ты! Это как так получилось?

Давайте уточним, выложенный мною скрипт (с Вашими путями, разумеется) Вы запускали обычным двойным щелчком из Проводника? Или как-то иначе, например, из-под Диспетчера задач?

Цитата novi:
т.е. они я так понимаю запущены в фоне. »
Да нет, самый обычный запуск.

Цитата novi:
Выложил скрин. »
Не вижу .

Цитата novi:
2 вариант проверил: с начало запустил все свои программы указанные в скрипте, они нормально отображаются в диспетчере задач. Запускаю скрипт, он ещё раз их запускает, и те которые запустил именно скрипт их не видно. А в диспетчере задач их стало в два раза больше. Т.е. в диспетчере задач следующая картина: по два процесса каждой программы. »
Всё верно.

Цитата novi:
Разрешено только для внутренней сети. К хосту имеют доступ несколько человек, »
Ясно.

Цитата novi:
в идеале хотелось бы получить именно минимизацию. »
Пробуйте:
читать дальше »
Код: Выделить весь код
Option Explicit

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
	'Set objSWbemObjectEx = collSWbemObjectSet.NextEvent.TargetInstance
	With collSWbemObjectSet.NextEvent.TargetInstance
		For Each elem In arrProcesses
			If .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), objSWbemObjectEx, 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
	End With
Loop

Set objFSO             = Nothing

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

WScript.Quit 0

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