Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Ведение лога запускаемых программ

Ответить
Настройки темы
VBS/WSH/JS - [решено] Ведение лога запускаемых программ

Пользователь


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

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


Ребята , в домене необходимо контролировать активность программ , какая когда с каким ключом кем была запущена....

есть неплохой скрипт , не очень разбираюсь vb помогите довести до ума

Код: Выделить весь код
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

Отправлено: 14:31, 01-10-2014

 

Ветеран


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

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


Цитата rosalin:
Ребята , в домене необходимо контролировать активность программ , какая когда с каким ключом кем была запущена.... »
Глобальная цель какова?

Цитата rosalin:
помогите довести до ума »
Что там «доводить»?

Отправлено: 14:50, 01-10-2014 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Пользователь


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

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


Ситуация.
Бухгалтер открыла письмо на почте "Исковое заявление". Во вложении был файл Исковое.doc.exe
Он создал в папке С:/tmp несколько файлов, один из которых с названием Rar.exe заархивировал все файлы в отдельные архивы с паролем, и в каждой папке оставил текстовый файл с требованием денег за разархивацию.

Глобальная задача регистрировать лог активность программ, под каждым логином свой,
тоесть какая, с каким ключам, когда. Для чего нужно - несколько раз предотвращал архивацию с паролем рабочих файлов .doc .xls и т.д.

этот скриптик помог бы еще больше.

в нем не понятно как назначить лог именно по именам пользователей домена , сейчас пишет все в статический путь c:\MyLog.txt

Последний раз редактировалось rosalin, 01-10-2014 в 15:16.


Отправлено: 15:08, 01-10-2014 | #3


Ветеран


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

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


rosalin, я Вас понял. Но тут надо запрещать открытие вложений в виде исполняемых файлов, либо ещё жёстче — вводить Software Restriction Policies.

Цитата rosalin:
в нем не понятно как назначить лог именно по именам пользователей домена , сейчас пишет все в статический путь c:\MyLog.txt »
А Вам как бы хотелось?

Отправлено: 16:37, 01-10-2014 | #4


Пользователь


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

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


Ну не очень понял как скрипт работает , но в идеале если это получиться написать скрипт кинуть в logon и пусть при входе юзеров, для каждого пишет действия активности в свой файлик куда нибудь в папочку подальше, файлики разбить по дате создания

PS Привел один из примеров, почему не совсем подходит рекомендация, потому как был еще случай подбора пароля по rdp и потом пытались выполнять разные команды , но что то удалось что то нет

вообщем подобный лог будет не лишний для принятия контрмер

Отправлено: 16:51, 01-10-2014 | #5


Ветеран


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

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


Лог Вам ничем тут не поможет. Меры должны быть превентивными. Какими — я изложил выше. Подбор паролей должен пресекаться на корню той же групповой политикой — в «Политика блокировки учётной записи». «Родная» административная учётная запись «Администратор/Administrator» должна быть переименована и/или отключена.

Цитата rosalin:
кинуть в logon и пусть при входе юзеров, для каждого пишет »
Не в Logon. В Startup. Иначе будете иметь столько же одинаковых логов, сколько будет зарегистрированных в данный момент на машине учётных записей.

Пробуйте:
читать дальше »
Код: Выделить весь код
Option Explicit

Const ForAppending = 8
Const TristateTrue = -1
Const TemporaryFolder = 2


Dim strComputer

Dim objSWbemLocator
Dim objSWbemServicesEx
Dim objSWbemEventSource
Dim objSWbemObjectEx

Dim objFSO
Dim objTS

Dim strPath

Dim strDomain
Dim strUser


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")

strPath = objFSO.BuildPath(objFSO.GetSpecialFolder(TemporaryFolder), "Application activity.log")

Do
	Set objSWbemObjectEx = objSWbemEventSource.NextEvent()
	
	Set objTS = objFSO.OpenTextFile(strPath, ForAppending, True, TristateTrue)
	
	With objSWbemObjectEx.TargetInstance
		If .GetOwner(strUser, strDomain) <> 0 Then
			strDomain = "Unkhown"
			strUser   = "Unkhown"
		End If
		
		objTS.WriteLine _
			Now() & vbTab & _
			.Name & vbTab & _
			.ProcessID & vbTab & _
			.ParentProcessID & vbTab & _
			.ExecutablePath & vbTab & _
			.CommandLine & vbTab & _
			strDomain & "\" & strUser
	End With
	
	objTS.Close
	
	Set objTS = Nothing
Loop

Set objFSO             = Nothing
Set collSWbemObjectSet = Nothing
Set objSWbemServicesEx = Nothing
Set objSWbemLocator    = Nothing

WScript.Quit 0

Отправлено: 05:28, 02-10-2014 | #6


Пользователь


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

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


Cцeнapий:
Cтpoкa: 42
Cимвoл: 3
Oшибкa: He нaйдeн
Кoд: 80041002
Иcтoчник: SWbemObjectEx

Отправлено: 08:49, 02-10-2014 | #7


Ветеран


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

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


Код не меняли?

Запуск так:
Цитата Iska:
В Startup. »
делали или как-то иначе?

Отправлено: 11:31, 02-10-2014 | #8


Пользователь


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

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


Код не менял вообще , запускал простым кликом, насчет переменных домен ни где прописывать не надо ?

Отправлено: 11:50, 02-10-2014 | #9


Ветеран


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

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


Хмм… Если ничего не меняли в коде, то ошибка вот здесь:
Код: Выделить весь код
		If .GetOwner(strUser, strDomain) <> 0 Then
Единственный вариант, который могу предположить — процесс завершается быстрее, нежели чем отведённый для опроса интервал — т.е., менее, чем за секунду.

Давайте попробуем так:
читать дальше »
Код: Выделить весь код
Option Explicit

Const ForAppending = 8
Const TristateTrue = -1
Const TemporaryFolder = 2


Dim strComputer

Dim objSWbemLocator
Dim objSWbemServicesEx
Dim objSWbemEventSource
Dim objSWbemObjectEx

Dim objFSO
Dim objTS

Dim strPath

Dim strDomain
Dim strUser


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")

strPath = objFSO.BuildPath(objFSO.GetSpecialFolder(TemporaryFolder), "Application activity.log")

Do
	Set objSWbemObjectEx = objSWbemEventSource.NextEvent()
	
	Set objTS = objFSO.OpenTextFile(strPath, ForAppending, True, TristateTrue)
	
	With objSWbemObjectEx.TargetInstance
		On Error Resume Next
		If .GetOwner(strUser, strDomain) <> 0 Then
			If Err.Number <> 0 Then
				Err.Clear
				On Error Goto 0
				strDomain = "Unkhown"
				strUser   = "Unkhown"
			Else
				On Error Goto 0
			End If
		End If
		
		objTS.WriteLine _
			Now() & vbTab & _
			.Name & vbTab & _
			.ProcessID & vbTab & _
			.ParentProcessID & vbTab & _
			.ExecutablePath & vbTab & _
			.CommandLine & vbTab & _
			strDomain & "\" & strUser
	End With
	
	objTS.Close
	
	Set objTS = Nothing
Loop

Set objFSO             = Nothing
Set collSWbemObjectSet = Nothing
Set objSWbemServicesEx = Nothing
Set objSWbemLocator    = Nothing

WScript.Quit 0
Это сообщение посчитали полезным следующие участники:

Отправлено: 12:15, 02-10-2014 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Ведение лога запускаемых программ

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Bandwith/Quota - Windows. Контроль URL, ведение лога в прозрачн.режиме. Чем? Barit Сетевые технологии 2 11-03-2013 11:38
Во всех запускаемых играх через некоторое время срабатывает защита Mech77 Непонятные проблемы с Железом 11 30-08-2012 20:39
CMD/BAT - [решено] Различные варианты исполнения по выбору. Ведение лога. Kainos Скриптовые языки администрирования Windows 3 11-12-2011 14:10
Вывод списка всех служб, запускаемых от определенной учетки. __sa__nya Microsoft Windows NT/2000/2003 1 14-08-2009 15:29
отслеживание запускаемых процессов snl73 Microsoft Windows 2000/XP 13 15-08-2006 20:18




 
Переход