Windows Event Log bedolgozás MSSQL adatbázisba [update 1]

2015-04-30 22:23:52
Címkék: windows , script , mssql , event log

Korábbi leírás alapján kicsit módosított scriptek.

Tábladefiníció (MSSQL 2012-höz)

CREATE TABLE [dbo].[events](
    [EventID] [int] IDENTITY(1,1) NOT NULL,
    [RecordNumber] [int] NULL,
    [Category] [int] NULL,
    [CategoryString] [varchar](255) NULL,
    [ComputerName] [varchar](255) NULL,
    [EventCode] [int] NULL,
    [EventType] [int] NULL,
    [LogFile] [varchar](32) NULL,
    [Message] [text] NULL,
    [SourceName] [varchar](255) NULL,
    [TimeGenerated] [datetime] NULL,
    [Type] [varchar](255) NULL,
    [UserName] [varchar](255) NULL,
    [TimeWritten] [datetime] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY];

A gyűjtő script, visual basicben (transfer.vbs)

Option Explicit
Dim objWMI, wbtTimeWritten, wbtTimeGenerated, colLoggedEvents, strComputer, objItem, cnames, conn, cmd, rs, lasttime, dtmRegular

cnames = Array( _
    "SQL-01", _
    "SQL-02" _
)

set wbtTimeWritten = CreateObject("WbemScripting.SWbemDateTime")
set wbtTimeGenerated = CreateObject("WbemScripting.SWbemDateTime")
set conn = CreateObject("ADODB.Connection")
set cmd  = CreateObject("ADODB.Command")
set rs   = CreateObject("ADODB.RecordSet")

conn.Provider                                = "sqloledb"
conn.Properties("Data Source").Value         = "SQL-02\SQLINSTANCE"
conn.Properties("Initial Catalog").Value     = "Management"
conn.Properties("Integrated Security").Value = "SSPI"
conn.Open

set cmd.ActiveConnection = conn

For Each strComputer In cnames
    rs.Open "select ISNULL(MAX(TimeWritten), '2007-01-01') as TimeWritten from events where ComputerName = '" & strComputer & "'", conn
    wbtTimeWritten.SetVarDate rs("TimeWritten"), true
    WScript.Stdout.write "Last: " & strComputer & " / " & wbtTimeWritten.value
    rs.Close

    set objWMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    set colLoggedEvents = objWMI.ExecQuery("Select * from Win32_NTLogEvent where TimeWritten > '" & wbtTimeWritten.Value & "' and LogFile != 'Security'")

    WScript.Stdout.write " " & colLoggedEvents.count & " rows"
    For Each objItem in colLoggedEvents
        wbtTimeWritten.Value = objItem.TimeWritten
        wbtTimeGenerated.Value = objItem.TimeGenerated

        dtmRegular = wbtTimeWritten.GetVarDate(false)
        dtmRegular = DateAdd("h", 2, dtmRegular)
        wbtTimeWritten.SetVarDate dtmRegular, false

        dtmRegular = wbtTimeGenerated.GetVarDate(false)
        dtmRegular = DateAdd("h", 2, dtmRegular)
        wbtTimeGenerated.SetVarDate dtmRegular, false

        cmd.CommandText = "insert into events (RecordNumber, Category, CategoryString, ComputerName, EventCode, EventType, LogFile, Message, SourceName, TimeGenerated, Type, TimeWritten, UserName) values (" & _
        "" & objItem.RecordNumber & ", " & _
        "" & objItem.Category & ", " & _
        "'" & objItem.CategoryString & "', " & _
        "'" & strComputer & "', " & _
        "" & objItem.EventCode & ", " & _
        "" & objItem.EventType & ", " & _
        "'" & objItem.LogFile & "', " & _
        "'" & Replace(objItem.Message & " ", "'", """") & "', " & _
        "'" & objItem.SourceName & "', " & _
        "'" & wbtTimeGenerated.Year & "-" & wbtTimeGenerated.Month & "-" & wbtTimeGenerated.Day & " " & wbtTimeGenerated.Hours & ":" & wbtTimeGenerated.Minutes & ":" & wbtTimeGenerated.Seconds & "', " & _
        "'" & objItem.Type & "', " & _
        "'" & wbtTimeWritten.Year & "-" & wbtTimeWritten.Month & "-" & wbtTimeWritten.Day & " " & wbtTimeWritten.Hours & ":" & wbtTimeWritten.Minutes & ":" & wbtTimeWritten.Seconds & "', " & _
        "'" & objItem.User & "')"
        cmd.Execute
    Next
    WScript.Echo " done."
Next

WSCript.Quit

Egy kellemes kis lekérdezés, amit tetszőlegesen lehet szűrni az értékes információért (events.sql)

print ''
print ''
print '~~~~~~~~~'
print 'Esemenyek'
print '~~~~~~~~~'
print ''
declare @day int
set @day = 7
select [TimeWritten]
       ,SubString(ComputerName, 1, 15) [ComputerName]
       ,SubString(LogFile, 1, 3) [Log]
       ,SubString(SourceName, 1, 20) [SourceName]
       ,SubString(Type, 1, 1) [Type]
       ,SubString(Replace(SubString(Message, 1, 512), char(13)+char(10), ''), 1, 120) [Message]
  from Mgmt.dbo.events
 where EventType != 3
   and SourceName not in ('W32Time', 'Print')
   and TimeWritten > CURRENT_TIMESTAMP-@day
 order by TimeWritten desc

Egy batch fájl, ami mindent elintéz (evsql.bat)

@echo off
cscript transfer.vbs
osql -E -s "|" -w 206 -S SQL-02\SQLINSTANCE -i events.sql | findstr /v "affec" | findstr /v ">" | less
pause

Hozzászólás

Olcsó asztali órás rádió Androidból

2017-04-14 22:36:00
14

Konzol kimenet színezés

2017-01-06 13:08:37
0

Windows Event Log bedolgozás MSSQL adatbázisba [update 1]

2015-04-30 22:23:52
0

Az internetadó margójára

2014-11-01 10:39:57
0

A C4nn0N logó

2014-07-26 20:50:32
0

Virtualizálás Xen 4.4-gyel Ubuntu 14.04 alatt (64 bit)

2014-04-30 09:46:38
1

Xen és XenServer előadás

2014-04-17 06:11:00
0

HLDS-V8: Javascripttel programozható HLDS (CS 1.6)

2014-03-15 09:33:53
0

Node.js lazy hibakezelés

2013-08-19 22:08:35
0

Office 2013 animáció kikapcsolása

2013-07-02 08:31:35
1

Node.js ékezetes szövegbevitel konzolból / parancssorból

2013-06-27 07:41:54
0

Egy Counter Strike szerver üzemeltetési tapasztalatai

2013-05-17 14:21:14
7

Hogyan tegyünk grafikus felületet Ubuntu 10.04 Serverre?

2013-05-07 08:19:05
2

Torrent tracker node.js-ben 65 sorban

2013-04-28 10:23:25
0

Hányadik vagyok a Google-ben?

2013-04-24 09:09:01
0

Virtualizálás Xen 4.1-gyel Ubuntu 12.04 alatt (64 bit)

2013-01-22 08:58:15
2

Cloud Backup - Ments a felhőbe

2012-05-02 21:46:13
0

VIP plugin CS 1.6-hoz

2012-04-22 16:35:07
7

Ki az az admin?

2012-03-17 23:45:04
0

Csináltam egy blogot

2011-12-09 15:32:11
2

Az IT szabályozásokról

2009-09-01 17:30:58
0

Twitter - IRC gateway, avagy hogyan twitteljünk irc protokollon

2009-06-05 09:51:47
0

Hogyan lehet blokkolhatatlan hirdetéseket elhelyezni egy weblapon?

2008-10-28 10:56:30
11

Virtualizálás Xen-nel Ubuntu 8.04.1 Server-en

2008-09-04 18:46:02
0

Hogyan tegyünk grafikus felületet Ubuntu 8.04 Serverre?

2008-05-19 20:02:29
0

FAR Manager kedvcsináló I.

2008-05-02 11:41:02
0

Far Manager 1.80 - Open Source

2008-01-04 21:11:19
0

IBM DB2 9.5 Express install Ubuntu 7.10 Serverre

2007-12-19 10:35:03
0

IBM Websphere Application Server 6.1.0.3 Express és WAS Plugin install Ubuntu 7.10 Serverre

2007-12-19 10:33:27
0

Hogyan tegyünk grafikus felületet Ubuntu 7.10 Serverre?

2007-12-11 22:00:17
0

Warezolás, gazemberség?

2007-11-20 21:01:00
0

iSCSI Target és Initiator installálása Ubuntu 6.06.1 LTS-re

2007-10-13 18:23:40
0

Oracle 11g R1 install Ubuntu 6.06.1-re

2007-08-18 14:13:04
0

How to install Oracle 11g R1 on Ubuntu 6.06.1 LTS

2007-08-18 14:13:04
0

Hogyan tegyünk grafikus felületet Ubuntu 6.06.1 Serverre?

2007-08-18 14:09:55
0

Apache2 - WebDAV - Ubuntu 6.06.1 - Windows XP kliens

2007-08-13 19:48:34
0

CVS beállítása Ubuntu 6.06.1-re

2007-05-21 19:39:32
0

IBM DB2 8.2 Express install Debian 4.0-ra (64 bit)

2007-05-15 20:21:33
0

IBM DB2 8.2 Express install Ubuntu 6.06.1-re

2007-05-09 20:47:34
0

Lemez olvasási/írási sebesség tesztelés linux alatt

2007-05-05 20:14:30
0

Oracle Applications tippek 1.

2007-05-03 20:47:55
0

Windows Event Log bedolgozás MSSQL adatbázisba

2007-04-30 21:06:33
0

Oracle tippek 1.

2007-04-30 17:20:25
0

MySQL automatikus backup készítés jelszó felfedése nélkül

2007-04-18 23:42:51
0

LVM - logikai lemezkezelés (skicc)

2007-04-15 19:28:33
0

Counter Strike 1.6 telepítése Ubuntu 6.06.1-re

2007-04-08 12:15:32
0