none
Скрипт vbs для журнала безапасности RRS feed

  • Вопрос

  • Здравствуйте нужна помощь в написании скрипта для выборки из журнала безопасности по событию №528  входа и выхода там мне нужно только два поля это адрес сети источника и порт источника и все это в текстовый фаил записать . помогите написать его так как я в vbs полный ноль . 

Все ответы

  • надыбал скрипт но не понимаю пишет  ошибку 

    E:\12.vbs(48, 9) Ошибка выполнения Microsoft VBScript: Индекс выходит за пределы
     допустимого диапазона: 'i'

     что не так делаю

    'кодировка ISO 8859-2
    'Event code 528
    '
    '(0) Сеанс подключен к станции:
    '(1) Имя пользователя:	user
    '(2) Домен:		DOMAIN
    '(3) Код входа:		(0x0,0x1E76B6)
    '(4) Имя сеанса:	RDP-Tcp#6
    '(5) Имя клиента:	ComputerName
    '(6) Адрес клиента:	127.0.0.1
    
    strComputer = "."
    set objShell = createobject("wscript.shell")
    Set objWMIService = GetObject("winmgmts:" _
        & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    
    Set colLoggedEvents = objWMIService.ExecQuery _
        ("Select * from Win32_NTLogEvent Where Logfile = 'Security' AND EventCode = '528' AND EventType = 4")
    
    endOfString = chr(13) & chr(10)
    
    For Each objEvent in colLoggedEvents
    
        'Wscript.Echo "Category: " & objEvent.Category
        'Wscript.Echo "Computer Name: " & objEvent.ComputerName
        'Wscript.Echo "Event Code: " & objEvent.EventCode
        
        'Wscript.Echo "Message: " & objEvent.Message
        i = 0
    
        ArrayOfStrings = Split(objEvent.Message, endOfString)
        
        For Each row in ArrayOfStrings
          
          if row <> "" then
          
            SplittedRow = Split(row, ":")
            ArrayOfValues(i) = Trim(Replace(SplittedRow(1), Chr(9), ""))
            i = i + 1
          
          end if
    
        Next
        
        a = 0
        IP = ArrayOfValues(6) 
        
        for each row in ArrayOfIPExclusions
        
          if InStr(IP, row) > 0 then
          
            a = 1
            exit for
          
          end if
        
        next
    
        if a = 0 then
          
          'http://social.technet.microsoft.com/Forums/en-US/ITCG/thread/f21292fd-e9d7-4a57-a14e-31461aeab905/
          strParams = "%comspec% /c nslookup " & IP
          Set objExecObj = objShell.exec(strParams)
    
          do while not objExecObj.StdOut.AtEndOfStream
            strText = objExecObj.StdOut.Readline()
            if instr(strText, "Server") then 
              strServer = trim(replace(strText,"Server:",""))
            elseif instr (strText, "Name") Then
              strhost = trim(replace(strText,"Name:",""))
            end if
          loop
          
          b = 0
          for each row in ArrayOfHOSTExclusions
        
            if InStr(LCase(strhost), row) > 0 then
          
              b = 1
              exit for
          
            end if
        
          next
         
          if b = 0 then
          
            IP = IP & Left("               ", 15 - Len(IP))
            strhost = strhost & Left("                                       ", 40 - Len(strhost))
            Wscript.Echo Mid(objEvent.TimeWritten, 7, 2) & "." & Mid(objEvent.TimeWritten, 5, 2) & "." & Left(objEvent.TimeWritten, 4) & " " & Mid(objEvent.TimeWritten, 9, 2) & ":" & Mid(objEvent.TimeWritten, 11, 2) & ":" & Mid(objEvent.TimeWritten, 13, 2) & "; IP: " & IP & " (" & strhost & "); user: " & ArrayOfValues(1)
          
          end if
          
        end if
    
        'Wscript.Echo "Record Number: " & objEvent.RecordNumber
        'Wscript.Echo "Source Name: " & objEvent.SourceName
        'Wscript.Echo "Time Written: " & objEvent.TimeWritten
        'Wscript.Echo "Event Type: " & objEvent.Type
        'Wscript.Echo "User: " & objEvent.User
    
    Next


  • Вам в скриптовую ветку бы надо.