FAQ по Microsoft Windows Server 2003

       

Как на терминальном сервере

Как это реализовать стандартными средствами Windows найти не удалось, однако в WMI командах есть возможность выполнять отображение количество запущенных процессов.

Ниже пример небольшого сценария, который, работая резидентно, отслеживает процессы приложения по имени исполняемого файла, для примера блокнота (notepad.exe) или калькулятора (calc.exe) - по счетчику (n=3) - отслеживает количество работающих приложений.

При этом, сам сценарий загружается как процесс wscript.exe и отображается с этим именем в диспетчере задач.

Пример скрипта:

strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

Set colMonitoredProcesses = objWMIService. _ ExecNotificationQuery("select * from __InstanceCreationEvent" _ & " within 1 where TargetInstance isa 'Win32_Process'")

Set colMonitorProcessesd = objWMIService.ExecNotificationQuery _ ("SELECT * FROM __InstanceDeletionEvent " & _ "WITHIN 1 WHERE TargetInstance ISA 'Win32_Process' ")

i = 0 num=3 lim=num

Do While i = 0 Set objLatestProcess = colMonitoredProcesses.NextEvent If objLatestProcess.TargetInstance.Name = "notepad.exe" or objLatestProcess.TargetInstance.Name = "calc.exe" Then num=num-1 Wscript.Echo "Num: "& num if num

С целью информативности работы сценария принменены всплывающие окна, которые можно убрать.

Указаный сценарий предназначен для запуска в приложении Cscript.exe. Исходя из этого, если программой для запуска сценариев по умолчанию она не является в вашей системе, вам необходимо добавить перед сценарием имя программы "cscript"

например: cscript Processrestrict.vbs.

Если предоставленной информации оказалось недостаточно для решения вашей задачи вы можете

задать вопрос в этой теме форума



Содержание раздела