Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.59/75: Рейтинг темы: голосов - 75, средняя оценка - 4.59
33 / 67 / 10
Регистрация: 07.06.2013
Сообщений: 508
Записей в блоге: 1

Мониторинг запускаемых процессов

23.06.2013, 21:36. Показов 14990. Ответов 31
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Извините пожалуйста за некро, но всёже..
Разъясните пожалуйста как это работает?
Или может для моих задач требуется другое?
Собственно, что бы хотелось увидеть:
1) Монитор процессов (собирать в один файл запущенных за день процессов с временем запуска и учётной записью)
2) Монитор с отсекателем (смотрит запущенные процессы, сравнивает с эталонным который записан в файле, если появляется новый процесс, то он его кладёт в третий файл с временем и учёткой и автоматом его отсекает)

Ещё отдельно хотелось бы узнать: бывает что проги запускаются под одной учёткой от имени другой, скажем так у меня запущена учётка "user" и в этой учётке я запускаю тотал от имени "user2", можно как то и эти данные собрать?

 Комментарий модератора 
Сообщение выделено в новую тему из: Мониторинг и завершение вновь запущенных системных процессов/приложений
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
23.06.2013, 21:36
Ответы с готовыми решениями:

Мониторинг и завершение вновь запущенных системных процессов/приложений
Здравствуйте уважаемые форумчане! Задача: При старте генерируется файл со списком запущенных процессов и приложений, затем с заданным...

Посмотреть список запускаемых процессов
Вот такая ситуация, сказали посмотри вроде прокси упала попинговал, пингуется, зашёл по ssh заходит, конечно если перегрузить, то всё...

Записать в текстовый файл имена запускаемых процессов
Всем привет! Написал монитор процессов, где процессы в списке обновляются каждые 0,5 сек. Теперь стоит задача: Записи в тестовый файл Имена...

31
Модератор
Эксперт JS
 Аватар для Eva Rosalene
5241 / 2115 / 416
Регистрация: 06.01.2013
Сообщений: 4,846
27.06.2013, 22:11
Студворк — интернет-сервис помощи студентам
Я похожую вещь писал. Правда работала она только с PID и на определенные процессы (cmd и conhost), убивая новые. Вирус, если интересно
0
33 / 67 / 10
Регистрация: 07.06.2013
Сообщений: 508
Записей в блоге: 1
27.06.2013, 22:57  [ТС]
Цитата Сообщение от Dragokas Посмотреть сообщение
Ок, а какой алгоритм, когда появился новый процесс, которого нет в списке.
1. Запись в лог.
А что дальше: как скрипт будет знать, что этот процесс больше не учитывать - просто запоминать в оперативке?
Пусть при следующем запуске все равно его учитывает и опять пишет в лог?

... а вообще интересная защитная штука получится.
Я думаю здесь требуется построить следующим образом
Первый монитор собирает информацию в лог (запускается один раз, ну или сколько нам надо)
Второй монитор с отсекателем
Смотрит лог разрешённого, если такого процесса в нём нет то данные о процессе заносит в лог2 и отсекает процесс.
Администратор сам мониторит лог2 и если надо ручками его вносит в лог1.
Думаю в лог надо добавить путь к файлу, и если есть возможность хеш

ИЛИ

Всё склепать в один батник и возможность запустить батник с параметрами допустим параметр 1 запуск в режиме монитора, а параметр 2 в режиме отсекателя
1
33 / 67 / 10
Регистрация: 07.06.2013
Сообщений: 508
Записей в блоге: 1
15.07.2013, 11:06  [ТС]
UP!
0
33 / 67 / 10
Регистрация: 07.06.2013
Сообщений: 508
Записей в блоге: 1
22.08.2013, 10:32  [ТС]
Во время тестирования выявил в логе вот такой отчёт:
HTML5
1
+ PrintIsolationHost.exe 7604   бЁб⥬*   14:46:46,25 21.08.2013
Добавлено через 18 часов 43 минуты
Bash
1
2
3
Set Exclude=tasklist.exe svchost.exe avp.exe wmiprvse.exe conhost.exe cmd.exe 
Set Exclude=%Exclude% dllhost.exe SearchProtocolHost.exe SearchFilterHost.exe FlashPlayerUpdateService.exe
Set Exclude=%Exclude% taskeng.exe audiodg.exe igfxsrvc.exe find.exe wmic.exe taskhost.exe
Я понимаю что Exclude - это исключение..., а зачем Exclude записан в трёх строчках?
0
 Аватар для DimN
98 / 49 / 0
Регистрация: 14.08.2013
Сообщений: 230
Записей в блоге: 4
22.08.2013, 11:29
Складываются они, в одну строку слишком длинно получится. ИМХО.
2
33 / 67 / 10
Регистрация: 07.06.2013
Сообщений: 508
Записей в блоге: 1
30.08.2013, 10:16  [ТС]
Обнаружил в логах:
Code
1
2
3
4
+ wscript.exe       2776    бЁб⥬     8:03:28,39 30.08.2013
+ wscript.exe       3084    бЁб⥬     8:03:36,85 30.08.2013
- wscript.exe       2776    бЁб⥬     8:03:36,86 30.08.2013
- wscript.exe       3084    бЁб⥬     8:03:38,98 30.08.2013
И такое каждый час, как выяснить откуда (путь к файлу) запускается скрипт?
0
33 / 67 / 10
Регистрация: 07.06.2013
Сообщений: 508
Записей в блоге: 1
04.09.2013, 09:11  [ТС]
Как вместо:
Bash
1
Set Exclude=tasklist.exe svchost.exe avp.exe wmiprvse.exe conhost.exe cmd.exe
Указать путь к файлу в котором будут находится эти исключения?
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18035 / 7738 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
05.09.2013, 00:20
Bash
1
for /F "UseBackQ Delims=" %%? in ("c:\temp\excl.txt") do set Set Exclude=%%?
исключения должны быть записаны в одну строку.

Или
Bash
1
for /F "UseBackQ Delims=" %%? in ("c:\temp\excl.txt") do set Set Exclude=!Exclude! %%?
(исключения должны быть записаны в столбик.)
1
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18035 / 7738 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
17.11.2013, 18:37
Лучший ответ Сообщение было отмечено ComSpec как решение

Решение

Офигеть, я в шоке, нашел через гугл: http://www.youtube.com/watch?v=3WORAgebTv4

А вот, кстати, моя новая версия - на событиях VBScript.
  • Практически не грузит систему.
  • Ведет протокол имен и Process ID запускаемых и завершаемых процессов в файлы формата Plain Text и CSV (лог сохраняется рядом со скриптом).
  • Показывает Имя и ID родительского процесса, а также аргументы запуска
Ограничение: не засекает процессы, время жизни которых менее 1 сек.

Для завершения работы скрипта запустите его еще раз


Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
sCurFolder = left(WScript.ScriptFullname, instrrev(WScript.ScriptFullname, "\"))
sLogFile1 = sCurFolder & "Processes.log"
sLogFile2 = sCurFolder & "Processes.csv"
sMarker = CreateObject("WScript.Shell").ExpandEnvironmentStrings("%temp%") & "\Marker_Process_Watcher_Dragokas"
sComputer = "."
 
' Слежение за событием класса Win32_Process каждые 1 секунду
Set objWMIService = GetObject("winmgmts:\\" & sComputer & "\root\cimv2")
Set colMonitoredEvents = objWMIService.ExecNotificationQuery _
  ("SELECT * FROM __InstanceOperationEvent WITHIN 1 WHERE TargetInstance ISA 'Win32_Process'")
 
set oFSO = CreateObject("Scripting.FileSystemObject")
 
' Если уже выполняется монитор, удалить маркер и завершить текущий сценарий
if CheckMarker("Exist") then CheckMarker("Delete"): WScript.Echo "Мониторинг завершен.": WScript.Quit
 
' Создать шапку протокола
set oTS1 = oFSO.CreateTextFile(sLogFile1, true) ' true - overwrite
set oTS2 = oFSO.CreateTextFile(sLogFile2, true) ' true - overwrite
oTS1.WriteLine "Event       Date-Time   PID Process Name    Par.PID Parent Proc.Name    Command Line Arguments"
oTS1.WriteLine "-----       ---------   ----------------    ------- ----------------    ----------------------"
oTS2.WriteLine "Event;Date-Time;Process ID;Process Name;Parent PID;Parent Process Name;Command Line Arguments"
 
sMessage = "Сейчас начнется мониторинг создания/завершения процессов." & vbLf & "Протокол дополняется в файл: " & sLogFile1 & " (.csv)" &_
  vbLf & vbLf & "Чтобы завершить мониторинг, запустите скрипт еще раз :)"
 
' Если скрипт сам себя не перезапускал
if WScript.Arguments.Count = 0 then
    ' Если скрипт запущен под админ. правами
    if isAdminRights() then
        WScript.Echo sMessage
    else
        if Msgbox(sMessage & vbLf & vbLF & "Запустить с правами Администратора?", vbYesNo + VbInformation, "Process Monitor by Dragokas") = vbYes then
             ' Получение прав Администратора
             Elevate()
             WScript.Quit
        end if
    end if
end if
 
CheckMarker("Create")
 
Do
    ' Ожидаем события
    Set objLatestEvent = colMonitoredEvents.NextEvent()
 
    set oProc = objLatestEvent.TargetInstance
 
    ' Проверяем вид события
    Select Case objLatestEvent.Path_.Class
      Case "__InstanceCreationEvent"
        if not CheckMarker("Exist") then Exit Do
        oTS1.WriteLine "Created" & ProcInfo(oProc, vbTab)
        oTS2.WriteLine "Created" & ProcInfo(oProc, ";")
      Case "__InstanceDeletionEvent"
        if not CheckMarker("Exist") then Exit Do
        oTS1.WriteLine "Deleted" & ProcInfo(oProc, vbTab)
        oTS2.WriteLine "Deleted" & ProcInfo(oProc, ";")
    End Select
Loop
 
' Закрываем файл-протокол
oTS1.Close()
oTS2.Close()
 
set oProc = Nothing: set objLatestEvent = Nothing: set oFSO = Nothing: set oTS = Nothing: Set colMonitoredEvents = Nothing: Set objWMIService = Nothing
 
Function ProcInfo(objProcess, Delim) ' Получения свойств события процесса, определение родительского процесса
  with objProcess
    ParentPID = .ParentProcessId
    if ParentPID <> 0 then
        set oParentProcesses = objWMIService.ExecQuery("SELECT * FROM Win32_Process WHERE ProcessId = '" & ParentPID & "'")
        if not oParentProcesses is Nothing then
            For each oParentProc in oParentProcesses
                ParentName = oParentProc.Name
            next
            set oParentProcesses = Nothing: set oParentProc = Nothing
        end if
        set oParentProc = Nothing
    end if
    ProcInfo = Delim & Now & Delim & .ProcessId & Delim & .Name & Delim & .ParentProcessId & Delim & ParentName & Delim & .CommandLine
  end with
End function
 
Function CheckMarker(Action) ' Слежение за маркером запуска/завершения монитора
  Select case Action
    Case "Create"
      set oMarker = oFSO.CreateTextFile(sMarker, true)
      oMarker.Close()
      set oMarker = Nothing
    Case "Delete"
      On error resume next
      For N = 1 to 10
        oFSO.DeleteFile sMarker, true 'true - Read Only Force
        if Err = 0 then Exit For
        Err.Clear
        WScript.Sleep(100) 'Если возник конфликт общего доступа, ждем 100 мс. и повторим
      next
      On error Goto 0
    Case "Exist"
      CheckMarker = oFSO.FileExists(sMarker)
  End Select
End Function
 
Sub Elevate()
  Const DQ = """"
  Set colOS = GetObject("winmgmts:\root\cimv2").ExecQuery("Select * from Win32_OperatingSystem")
  For Each oOS In colOS
    strOSLong = oOS.Version
  Next
  If Left(strOSLong, 1) = "6" Then
    If Not isAdminRights Then
        Set oShellApp = CreateObject("Shell.Application")
        oShellApp.ShellExecute WScript.FullName, DQ & WScript.ScriptFullName & DQ & " " & DQ & "Twice" & DQ, "", "runas", 1
        WScript.Quit
    End If
  End If
  set oOS = Nothing: set colOS = Nothing: set oShellApp = Nothing
End Sub
 
Function isAdminRights()
    Const KQV = &H1, KSV = &H2, HKCU = &H80000001, HKLM = &H80000002
    Set oReg = GetObject("winmgmts:root\default:StdRegProv")
    strKey = "System\CurrentControlSet\Control\Session Manager"
    intErrNum = oReg.CheckAccess(HKLM, strKey, KQV + KSV, flagAccess)
    isAdminRights = flagAccess
    Set oReg = Nothing
End Function
Миниатюры
Мониторинг запускаемых процессов  
Вложения
Тип файла: zip Process_Monitor2.zip (2.2 Кб, 90 просмотров)
3
33 / 67 / 10
Регистрация: 07.06.2013
Сообщений: 508
Записей в блоге: 1
25.08.2015, 09:36  [ТС]
Dragokas, Привет, давно уже не пользовался этой штукой, но вот понадобилась... очень полезная она.
Но заметил какую то странность, закрывается сама по себе ровно в 20:44.
Единственное чего ещё не хватает в логе информации о учётной записи от которой запускается процесс.
0
33 / 67 / 10
Регистрация: 07.06.2013
Сообщений: 508
Записей в блоге: 1
01.09.2015, 09:46  [ТС]
При создании лога думаю в название надо добавить дату и время запуска
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18035 / 7738 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
02.11.2016, 22:56
Новая версия v2.2.
  • Добавлена совместимость с Windows 2000 и Windows 10.
    Примечание: в windows 2000 вывод аргументов запуска процесса будет недоступен.
  • Добавлен вывод имени пользователя / домен, запустившего процесс.
  • Улучшено форматирование TXT формата лога.
  • Отчёт создаётся с датой / временем в имени файла (можно отключить константой в шапке скрипта).
Кликните здесь для просмотра всего текста


Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
' Task Monitor v.2.2
'
' by Alex Dragokas
 
Const AddTimeToLogName = true
 
Dim bWin2000: bWin2000 = isWin2000()
Dim oDict: set oDict = CreateObject("Scripting.Dictionary")
 
sCurFolder = left(WScript.ScriptFullname, instrrev(WScript.ScriptFullname, ""))
 
if AddTimeToLogName then
    sTime = Year(Now) & "-" & Month(Now) & "-" & Day(Now) & "_" & Hour(Now) & "-" & Minute(Now) & "-" & Second(Now)
    
    sLogFile1 = sCurFolder & "Processes_" & sTime & ".log"
    sLogFile2 = sCurFolder & "Processes_" & sTime & ".csv"
else
    sLogFile1 = sCurFolder & "Processes.log"
    sLogFile2 = sCurFolder & "Processes.csv"
end if
sMarker = CreateObject("WScript.Shell").ExpandEnvironmentStrings("%temp%") & "\Marker_Process_Watcher_Dragokas"
sComputer = "."
 
' Слежение за событием класса Win32_Process каждые 1 секунду
Set objWMIService = GetObject("winmgmts:" & sComputer & "\root\cimv2")
Set colMonitoredEvents = objWMIService.ExecNotificationQuery _
  ("SELECT * FROM __InstanceOperationEvent WITHIN 1 WHERE TargetInstance ISA 'Win32_Process'")
 
set oFSO = CreateObject("Scripting.FileSystemObject")
 
' Если уже выполняется монитор, удалить маркер и завершить текущий сценарий
if CheckMarker("Exist") then CheckMarker("Delete"): WScript.Echo "Мониторинг завершен.": WScript.Quit
 
sMessage = "Сейчас начнется мониторинг создания/завершения процессов." & vbLf & "Протокол дополняется в файл: " & sLogFile1 & " (.csv)" &_
  vbLf & vbLf & "Чтобы завершить мониторинг, запустите скрипт еще раз :)"
 
' Если скрипт сам себя не перезапускал
if WScript.Arguments.Count = 0 then
    ' Если скрипт запущен под админ. правами
    if isAdminRights() then
        WScript.Echo sMessage
    else
        if Msgbox(sMessage & vbLf & vbLF & "Запустить с правами Администратора?" & vbCrLf & vbCrLf & "НЕТ - запустить с ограниченными правами.", vbYesNo + VbInformation, "Task Monitor by Dragokas") = vbYes then
             ' Получение прав Администратора
             Elevate()
             WScript.Quit
        end if
    end if
end if
 
' Создать шапку протокола
set oTS1 = oFSO.CreateTextFile(sLogFile1, true) ' true - overwrite
set oTS2 = oFSO.CreateTextFile(sLogFile2, true) ' true - overwrite
oTS1.WriteLine "Event       Date-Time   PID Process Name    Par.PID Parent Proc.Name    Domain\Username     Command Line Arguments"
oTS1.WriteLine "-----       ---------   ----    ------------    ------- ----------------    ---------------     ----------------------"
oTS2.WriteLine "Event;Date-Time;Process ID;Process Name;Parent PID;Parent Process Name;User;Command Line Arguments"
 
CheckMarker("Create")
 
Delim_Pl = vbTab
Delim_CS = ";"
 
Do
    ' Ожидаем события
    Set objLatestEvent = colMonitoredEvents.NextEvent()
 
    set oProc = objLatestEvent.TargetInstance
 
    ' Проверяем вид события
    Select Case objLatestEvent.Path_.Class
      Case "__InstanceCreationEvent"
        if not CheckMarker("Exist") then Exit Do
        ProcInfo oProc, "Created", txtPlain, txtCSV
        oTS1.WriteLine "Created" & txtPlain
        oTS2.WriteLine "Created" & txtCSV
      Case "__InstanceDeletionEvent"
        if not CheckMarker("Exist") then Exit Do
        ProcInfo oProc, "Deleted", txtPlain, txtCSV
        oTS1.WriteLine "Deleted" & txtPlain
        oTS2.WriteLine "Deleted" & txtCSV
    End Select
Loop
 
' Закрываем файл-протокол
oTS1.Close()
oTS2.Close()
 
set oProc = Nothing: set objLatestEvent = Nothing: set oFSO = Nothing: set oTS = Nothing: Set colMonitoredEvents = Nothing: Set objWMIService = Nothing: set oDict = Nothing
 
Sub ProcInfo(objProcess, EventType, txtPlain, txtCSV) ' Получения свойств события процесса, определение родительского процесса
  with objProcess
    ParentPID = .ParentProcessId
    if ParentPID <> 0 then
        set oParentProcesses = objWMIService.ExecQuery("SELECT * FROM Win32_Process WHERE ProcessId = '" & ParentPID & "'")
        if not oParentProcesses is Nothing then
            For each oParentProc in oParentProcesses
                ParentName = oParentProc.Name
            next
            set oParentProcesses = Nothing: set oParentProc = Nothing
        end if
        set oParentProc = Nothing
    end if
 
    txtPlain = Delim_Pl & Now & Delim_Pl & .ProcessId & Delim_Pl & .Name:      if len(.Name) < 8      then txtPlain = txtPlain & Delim_Pl
    txtPlain = txtPlain & Delim_Pl & .ParentProcessId & Delim_Pl & ParentName: if len(ParentName) < 8 then txtPlain = txtPlain & Delim_Pl
    
    txtCSV   = Delim_CS & Now & Delim_CS & .ProcessId & Delim_CS & .Name & Delim_CS & .ParentProcessId & Delim_CS & ParentName
    
    ' поле пользователь / домен недоступно для события "Процесс завершен".
    if EventType <> "Deleted" then
        On Error Resume next
        objProcess.GetOwner strUserName, strUserDomain
        On Error Goto 0
        
        txtPlain = txtPlain & Delim_Pl & Delim_Pl & strUserDomain & "" & strUserName
        txtCSV   = txtCSV   & Delim_CS            & strUserDomain & "" & strUserName
        
        if len(strUserDomain & "" & strUserName) < 16 then txtPlain = txtPlain & Delim_Pl
        
        if not oDict.Exists(.ProcessId) then
            oDict.Add .ProcessId, strUserDomain & "" & strUserName
        else
            oDict(.ProcessId) = strUserDomain & "" & strUserName
        end if
    else
        if oDict.Exists(.ProcessId) then
            txtPlain = txtPlain & Delim_Pl & Delim_Pl & oDict(.ProcessId)
            txtCSV   = txtCSV   & Delim_CS            & oDict(.ProcessId)
            
            if len(oDict(.ProcessId)) < 16 then txtPlain = txtPlain & Delim_Pl
        else
            txtPlain = txtPlain & Delim_Pl & Delim_Pl & Delim_Pl & Delim_Pl
            txtCSV   = txtCSV   & Delim_CS
        end if
    end if
    if bWin2000 then
        txtPlain = txtPlain & Delim_Pl & "unknown"
        txtCSV   = txtCSV   & Delim_CS & "unknown"
    else
        txtPlain = txtPlain & Delim_Pl & .CommandLine
        txtCSV   = txtCSV   & Delim_CS & .CommandLine
    end if
    
  end with
End sub
 
Function CheckMarker(Action) ' Слежение за маркером запуска/завершения монитора
  Select case Action
    Case "Create"
      set oMarker = oFSO.CreateTextFile(sMarker, true)
      oMarker.Close()
      set oMarker = Nothing
    Case "Delete"
      On error resume next
      For N = 1 to 10
        oFSO.DeleteFile sMarker, true 'true - Read Only Force
        if Err = 0 then Exit For
        Err.Clear
        WScript.Sleep(100) 'Если возник конфликт общего доступа, ждем 100 мс. и повторим
      next
      On error Goto 0
    Case "Exist"
      CheckMarker = oFSO.FileExists(sMarker)
  End Select
End Function
 
Sub Elevate()
  Const DQ = """"
  Set colOS = GetObject("winmgmts:\root\cimv2").ExecQuery("Select * from Win32_OperatingSystem")
  For Each oOS In colOS
    strOSLong = oOS.Version
  Next
  If instr(strOSLong, "6.") = 1 or instr(strOSLong, "10.") = 1 Then
    If Not isAdminRights Then
        Set oShellApp = CreateObject("Shell.Application")
        oShellApp.ShellExecute WScript.FullName, DQ & WScript.ScriptFullName & DQ & " " & DQ & "Twice" & DQ, "", "runas", 1
        WScript.Quit
    End If
  End If
  set oOS = Nothing: set colOS = Nothing: set oShellApp = Nothing
End Sub
 
Function isAdminRights()
    Const KQV = &H1, KSV = &H2, HKCU = &H80000001, HKLM = &H80000002
    Set oReg = GetObject("winmgmts:root\default:StdRegProv")
    strKey = "System\CurrentControlSet\Control\Session Manager"
    intErrNum = oReg.CheckAccess(HKLM, strKey, KQV + KSV, flagAccess)
    isAdminRights = flagAccess
    Set oReg = Nothing
End Function
 
Function isWin2000()
    Set colOS = GetObject("winmgmts:\root\cimv2").ExecQuery("Select * from Win32_OperatingSystem")
    For Each oOS In colOS
      if instr(oOS.Version, "5.0.") = 1 then isWin2000 = true
    Next
End Function
Вложения
Тип файла: zip Task_Monitor_v2.2.zip (2.8 Кб, 66 просмотров)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
02.11.2016, 22:56

Мониторинг процессов
Подскажите как реализовать следующее: Программа, что ведет протокол действий пользователя с управления процессами во время сеанса работы,...

Мониторинг состояния процессов
День добрый. нужно написать программу, реализующую мониторинг состояния процессов Unix. Схема мониторинга ассиметрична и подразумевает...

Мониторинг дочерних процессов
У меня есть задача сделать систему процессов, каждый из которых будет заниматься своей задачей. Соответственно порождающий их процесс...

C# Мониторинг и обновление процессов Windows
Здравствуйте! Я самостоятельно занимаюсь программированием на C#, придумываю себе некоторые задачи и пытаюсь по своим силам их...

Solaris Мониторинг системных процессов
Добрый вечер! Есть аппликейшн сервер. На сервере крутится Apach. На сервере установлена Solaris. Сервер жутко виснет. Команда: prstat...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
32
Ответ Создать тему
Новые блоги и статьи
Нейтральные знания, чистый код - бла-бла-бла-бла, на самом деле кликбейт и самореклама, плагиат, и вот почему
Hrethgir 27.07.2026
То-есть отклонение такой публикации говорит само за себя, и пусть только возьмут на вооружение после отклонения публикации - это будет чистейшим актом плагиата. Отклонял Хабр. Дословно, отклонённая. . .
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
Очистка реквизитов и табличных частей документа при копировании (вариант 2)
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2. Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
сукцессия 43. Вторая научная статья за месяц- прайминг и гатгил
anaschu 25.07.2026
две стороны одной монеты
Более приземисто - Эстафету хвоста в .cdl (деревья эстафеты в сад).
Hrethgir 24.07.2026
В будущем, после написания блока инверсии обхода дерева (эстафеты хвоста), я планирую вернуться к нашему прошлому разговору о том, обладают ли знания целеполаганием. Тогда я пришел к выводу, что. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru