Тема: VBA: Ведение лога запускаемых программ
Ребята, ситуация.
Бухгалтер открыла письмо на почте "Исковое заявление". Во вложении был файл Исковое.doc.exe
Он создал в папке С:/tmp несколько файлов, один из которых с названием Rar.exe заархивировал все файлы в отдельные архивы с паролем, и в каждой папке оставил текстовый файл с требованием денег за разархивацию.
Глобальная задача регистрировать лог активность программ, под каждым логином свой,
тоесть какая, с каким ключам, когда. Для чего нужно - несколько раз предотвращал архивацию с паролем рабочих файлов .doc .xls и т.д.
в идеале если это получиться, написать скрипт кинуть в logon и пусть при входе юзеров, для каждого пишет действия активности в свой файлик куда нибудь в папочку подальше, файлики разбить по дате создания
за основу беру этот
Option Explicit
Const ForAppending = 8
Const TristateTrue = -1
Dim strComputer
Dim objSWbemLocator
Dim objSWbemServicesEx
Dim objSWbemEventSource
Dim objSWbemObjectEx
Dim objFSO
Dim objTS
strComputer = "."
Set objSWbemLocator = WScript.CreateObject("WbemScripting.SWbemLocator")
Set objSWbemServicesEx = objSWbemLocator.ConnectServer(strComputer, "root\cimv2")
Set objSWbemEventSource = objSWbemServicesEx.ExecNotificationQuery( _
"SELECT * FROM __InstanceCreationEvent WITHIN 1 " & _
"WHERE TargetInstance ISA 'Win32_Process'")
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
Do
Set objSWbemObjectEx = objSWbemEventSource.NextEvent()
Set objTS = objFSO.OpenTextFile("c:\MyLog.txt", ForAppending, True, TristateTrue)
With objSWbemObjectEx.TargetInstance
objTS.WriteLine Now() & " " & _
.Name & " " & _
.ProcessID & " " & _
.ParentProcessID & " " & _
.ExecutablePath & " " & _
.CommandLine
End With
objTS.Close
Set objTS = Nothing
Loop
Set objFSO = Nothing
Set collSWbemObjectSet = Nothing
Set objSWbemServicesEx = Nothing
Set objSWbemLocator = Nothing
WScript.Quit 0
Скрипт хорош, но в домене нужно что бы регистрировал действия всех учетных записей и путь соответственно спрятать подальше