alexii пишет:Rom5, у меня всё одно один. Откуда такая информация?
Все оказалось не так просто... Нужно подумать.
Изначально я сообщил о двух winlogon, т.к. пару раз в процессах (pslist от Sysinternals) на доменных машинах (XP SP3 eng) наблюдал за этим задвоением, причем во втором случае уже специально наблюдал через Rem.Assistance за экраном залоченной машиной - как только юзер ее разлочил, процесс остался один.
Увы, на сегодняшний момент рабочая рутина так и не дала времени помоделировать в домене такую ситуацию специально и понаблюдать вдумчиво, хотя дома даже махонький скрипт подготовил для этого дела.
На домашней же отдельной машине (XP sp3 rus) я понял, что есть отличия от работы в домене.
Тест проводил так: скринсейвер изначально настроил на 1 мин, простейший скрипт, выбирающий данные по этим двум процессам, запускаю из батника в бесконечном цикле с паузой приблизительно 30сек, далее блокирую консоль Win+L и гуляю, срабатывает скринсейвер, гуляю немного с ним, потом я его снимаю, еще гуляю с полминуты, разблокируюсь, прерываю батник, смотрю лог.
Так вот, блокирование консоли на процессы не влияло, а срабатывание скринсейвера вызывало запуск logon.scr и причем родителем процесса выступал winlogon.
Тест показал, что logon.scr появляется только при срабатывании хранителя (аналогично доменной ситуации), а winlogon всегда один.
Т.е. результат кардинально отличается от работы в домене или обособлено, а т.к. работа в домене мне куда важнее - потестирую процессы скорее всего аж во вторник, т.к. в понедельник будет не до изысканий. Тогда общественности и донесу результат.
батник запуска:
:::: ---- prc_wlog.cmd ----
:Beg
cscript /nologo prc_wlog.vbs >> prc_wlog.txt
ping -n 30 127.0.0.1 >nul
Goto :Beg
скрипт:
'''''' ----- prc_wlog.vbs -------
On Error Resume Next
Const wbemFlagReturnImmediately = &h10
Const wbemFlagForwardOnly = &h20
strComputer = "127.0.0.1"
WScript.Echo "=========================================="
WScript.Echo "Computer: " & strComputer
WScript.Echo Now()
WScript.Echo "=========================================="
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_Process", "WQL", wbemFlagReturnImmediately + wbemFlagForwardOnly)
iWinLog = 0 : iScrLog = 0
For Each objItem In colItems
sName = objItem.Name
If sName = "winlogon.exe" OR sName = "logon.scr" Then
If sName = "winlogon.exe" Then iWinLog = iWinLog + 1
If sName = "logon.scr" Then iScrLog = iScrLog + 1
WScript.Echo "Name: " & sName
WScript.Echo "CreationDate: " & WMIDateStringToDate(objItem.CreationDate)
WScript.Echo "ParentProcessId: " & objItem.ParentProcessId
WScript.Echo "Priority: " & objItem.Priority
WScript.Echo "ProcessId: " & objItem.ProcessId
WScript.Echo
End If 'objItem.Caption = "winlogon.exe" Then
Next
WScript.Echo "=========================================="
WScript.Echo "iWinLog = " & CStr(iWinLog) & " iScrLog =" & CStr(iScrLog)
WScript.Echo
WScript.Echo
Function WMIDateStringToDate(dtmDate)
WScript.Echo dtm:
WMIDateStringToDate = CDate(Mid(dtmDate, 5, 2) & "/" & _
Mid(dtmDate, 7, 2) & "/" & Left(dtmDate, 4) _
& " " & Mid (dtmDate, 9, 2) & ":" & Mid(dtmDate, 11, 2) & ":" & Mid(dtmDate,13, 2))
End Function
лог
==========================================
Computer: 127.0.0.1
26.08.2011 23:06:37
==========================================
Name: winlogon.exe
CreationDate: 26.08.2011 23:03:13
ParentProcessId: 604
Priority: 13
ProcessId: 680
==========================================
iWinLog = 1 iScrLog =0
==========================================
Computer: 127.0.0.1
26.08.2011 23:07:06
==========================================
Name: winlogon.exe
CreationDate: 26.08.2011 23:03:13
ParentProcessId: 604
Priority: 13
ProcessId: 680
==========================================
iWinLog = 1 iScrLog =0
==========================================
Computer: 127.0.0.1
26.08.2011 23:07:36
==========================================
Name: winlogon.exe
CreationDate: 26.08.2011 23:03:13
ParentProcessId: 604
Priority: 13
ProcessId: 680
==========================================
iWinLog = 1 iScrLog =0
==========================================
Computer: 127.0.0.1
26.08.2011 23:08:06
==========================================
Name: winlogon.exe
CreationDate: 26.08.2011 23:03:13
ParentProcessId: 604
Priority: 13
ProcessId: 680
Name: logon.scr
CreationDate: 26.08.2011 23:07:59
ParentProcessId: 680
Priority: 4
ProcessId: 1808
==========================================
iWinLog = 1 iScrLog =1
==========================================
Computer: 127.0.0.1
26.08.2011 23:08:35
==========================================
Name: winlogon.exe
CreationDate: 26.08.2011 23:03:13
ParentProcessId: 604
Priority: 13
ProcessId: 680
Name: logon.scr
CreationDate: 26.08.2011 23:07:59
ParentProcessId: 680
Priority: 4
ProcessId: 1808
==========================================
iWinLog = 1 iScrLog =1
==========================================
Computer: 127.0.0.1
26.08.2011 23:09:05
==========================================
Name: winlogon.exe
CreationDate: 26.08.2011 23:03:13
ParentProcessId: 604
Priority: 13
ProcessId: 680
==========================================
iWinLog = 1 iScrLog =0
==========================================
Computer: 127.0.0.1
26.08.2011 23:09:34
==========================================
Name: winlogon.exe
CreationDate: 26.08.2011 23:03:13
ParentProcessId: 604
Priority: 13
ProcessId: 680
==========================================
iWinLog = 1 iScrLog =0
Сорри, за много текста среди ночи)
ps. Причина правки: сбило с толку то, что открыте окна "Свойства: Экрана" на вкладке "Заставка" уже вызывает процесс logon.scr )
WBR. Roman