none
PowerShell

    Вопрос

  • Добрый день.

    Прошу прошения если создал тему не в том разделе.

    Есть Код на PowerShell, который выводит список событий 4625 из журнала Security

    $Dateinception = get-date -year 2017 -month 3 -day 1
    $Dateend = get-date -year 2017 -month 3 -day 18
    $Events = get-eventLog -LogName Security -Newest 10000 -after $Dateinception -before $Dateend  | Where-Object { $_.EventID -eq 4625 } 
    $Data = New-Object System.Management.Automation.PSObject
    $Data | Add-Member NoteProperty Time ($null)
    $Data | Add-Member NoteProperty UserName ($null)
    $Data | Add-Member NoteProperty Address ($null)
    
    $Events | %{
    
    $Data.time = $_.TimeGenerated
    
    $message = $_.message.split("`n") | %{$_.trimstart()} | %{$_.trimend()}
    
    $Data.UserName = ($message | ?{$_ -like "Имя учетной записи:*"} | %{$_ -replace "^.+:."} ) 
    $Data.Address = ($message | ?{$_ -like "Сетевой адрес источника:*"} | %{$_ -replace "^.+:."}) 
    
    $data
    
    }
    

    Данный код выводит результат таблицу с тремя столбцами: Time, UserName, Address

    Вопрос:

    Куда и что нужно вставить, чтобы сортировка в данной таблице была по алфавиту в графе UserName

    Нужно для того, чтобы было видно, кто за за определенный промежуток времени больше всего попал в событие 4625

    Заранее спасибо.

    • Перемещено SQxModerator 20 марта 2017 г. 8:04 Вопрос касаемо сценария на Powershell
    20 марта 2017 г. 7:23

Ответы

  • $Dateinception = get-date -year 2017 -month 3 -day 1
    $Dateend = get-date -year 2017 -month 3 -day 18
    Get-WinEvent -FilterHashtable @{LogName="Security";ID=4625;StartTime=$Dateinception;EndTime=$Dateend} | 
    		Select @{n = "TimeCreated";e={$_.TimeCreated}},@{n="User";e={$_.properties[5].Value}},@{n="Address";e={$_.properties[19].Value}} | Sort User

    • Помечено в качестве ответа tosh1ba 20 марта 2017 г. 13:21
    20 марта 2017 г. 12:58
    Отвечающий
  • Формат даты: MM/dd/YYYY
    Param (
    	[Datetime]$Dateinception = "03/01/2017",
    	[Datetime]$Dateend = "03/22/2017"
    )

    • Помечено в качестве ответа tosh1ba 22 марта 2017 г. 8:37
    22 марта 2017 г. 8:36
    Отвечающий
  • А как то можно сделать чтобы -Format d был?

    -Format d - Это тип String, подобное приведет к двойному преобразованию и ошибке в Get-WinEvent.

    Param (
    $Dateinception = (get-date -format d 01.03.2017),
    $Dateend = (get-date -format d 22.03.2017)
    )
    


    • Помечено в качестве ответа tosh1ba 22 марта 2017 г. 9:01
    22 марта 2017 г. 8:49
    Отвечающий

Все ответы

  • ...
    
    $Events | %{
    ...
    }| sort UserName 


    my blog: http://shserg.ru/


    • Изменено s.h.s. _ 20 марта 2017 г. 8:39
    • Предложено в качестве ответа Vector BCOModerator 20 марта 2017 г. 8:45
    • Помечено в качестве ответа KazunEditor 20 марта 2017 г. 8:47
    • Снята пометка об ответе tosh1ba 20 марта 2017 г. 9:35
    20 марта 2017 г. 8:39
  • вот результат вывода:

    Time                                UserName                           Address                           
    ----                                --------                           -------                           
    17.03.2017 12:04:10                     oadm                                                             
    16.03.2017 17:11:43                     USR1CV8                        -                                 
    16.03.2017 17:05:45                     USR1CV8                        -                                 
    16.03.2017 16:43:51                     USR1CV8                        -                                 
    16.03.2017 15:01:14                     USR1CV8                        -                                 
    15.03.2017 21:17:56                     oadm                                                             
    15.03.2017 21:17:17                     oadm                                                             
    15.03.2017 21:17:17                     oadm                                                             
    13.03.2017 11:52:13                     sanya                          -                                 
    13.03.2017 11:51:56                     sanya                          -                                 
    13.03.2017 11:51:51                     sanya                          -                                 
    08.03.2017 12:48:08                     Алексей                        192.168.0.55                      
    08.03.2017 12:47:02                     Алексей                        192.168.0.55                      
    08.03.2017 12:45:16                     Алексей                        192.168.0.55                      
    07.03.2017 9:39:54                      Алексей                        192.168.0.55                      
    06.03.2017 9:00:14                      itllc1                         -                                 
    05.03.2017 18:26:09                     USR1CV8                        -                                 
    05.03.2017 18:18:37                     USR1CV8                        -                                 
    05.03.2017 18:13:04                     USR1CV8                        -                                 
    05.03.2017 18:09:23                     USR1CV8                        -                                 
    05.03.2017 18:04:49                     USR1CV8                        -                                 
    05.03.2017 17:59:17                     USR1CV8                        -                                 
    05.03.2017 17:45:28                     USR1CV8                        -                                 
    03.03.2017 23:52:53                     администратор                                                    
    03.03.2017 23:49:54                     администратор$p1r1t                                              
    03.03.2017 23:49:39                     администратор$p1r1t                                              

    если вставляю:

    $Dateinception = get-date -year 2017 -month 3 -day 1
    $Dateend = get-date -year 2017 -month 3 -day 18
    $Events = get-eventLog -LogName Security -Newest 10000 -after $Dateinception -before $Dateend  | Where-Object { $_.EventID -eq 4625 } 
    $Data = New-Object System.Management.Automation.PSObject
    $Data | Add-Member NoteProperty Time ($null)
    $Data | Add-Member NoteProperty UserName ($null)
    $Data | Add-Member NoteProperty Address ($null)
    
    $Events | %{
    
    $Data.time = $_.TimeGenerated
    
    $message = $_.message.split("`n") | %{$_.trimstart()} | %{$_.trimend()}
    $Data.UserName = (@(($message | ?{$_ -like "Имя учетной записи:*"}))[-1] | %{$_ -replace "^.+:."} )
    $Data.Address = ($message | ?{$_ -like "Сетевой адрес источника:*"} | %{$_ -replace "^.+:."}) 
    
    $data
    
    }| sort UserName 

    то результат: 

    Time                                UserName                           Address                           
    ----                                --------                           -------                           
    03.03.2017 23:49:39                     администратор$p1r1t                                              
    03.03.2017 23:49:39                     администратор$p1r1t                                              
    03.03.2017 23:49:39                     администратор$p1r1t                                              
    03.03.2017 23:49:39                     администратор$p1r1t                                              
    03.03.2017 23:49:39                     администратор$p1r1t                                              
    03.03.2017 23:49:39                     администратор$p1r1t                                              
    03.03.2017 23:49:39                     администратор$p1r1t                                              
    03.03.2017 23:49:39                     администратор$p1r1t                                              
    03.03.2017 23:49:39                     администратор$p1r1t                                              
    03.03.2017 23:49:39                     администратор$p1r1t                                              
    03.03.2017 23:49:39                     администратор$p1r1t                                              
    03.03.2017 23:49:39                     администратор$p1r1t                                              
    03.03.2017 23:49:39                     администратор$p1r1t                                              
    03.03.2017 23:49:39                     администратор$p1r1t                                              
    03.03.2017 23:49:39                     администратор$p1r1t                                              
    03.03.2017 23:49:39                     администратор$p1r1t                                              
    03.03.2017 23:49:39                     администратор$p1r1t                                              
    03.03.2017 23:49:39                     администратор$p1r1t                                              
    03.03.2017 23:49:39                     администратор$p1r1t                                              
    03.03.2017 23:49:39                     администратор$p1r1t                                              
    03.03.2017 23:49:39                     администратор$p1r1t                                              
    03.03.2017 23:49:39                     администратор$p1r1t                                              
    03.03.2017 23:49:39                     администратор$p1r1t                                              
    03.03.2017 23:49:39                     администратор$p1r1t                                              
    03.03.2017 23:49:39                     администратор$p1r1t                                              
    03.03.2017 23:49:39                     администратор$p1r1t                                              
    

    то есть отображаются события только за 03.03.2017 и почему то только одного пользователя

    20 марта 2017 г. 9:20
  • Блин на третьем форуме пишу - и на одном и том же месте молчание.

    Задача сложная, или я не так вопрос задаю может? :(

    20 марта 2017 г. 10:53
  • Задача просто архисложная. 

    $Dateinception = get-date -year 2017 -month 3 -day 1
    $Dateend = get-date -year 2017 -month 3 -day 18
    Get-WinEvent -FilterHashtable @{LogName="Security";ID=4625;StartTime=$Dateinception;EndTime=$Dateend} | 
    		Select @{n = "TimeCreated";e={$_.TimeCreated}},@{n="User";e={$_.properties[5].Value}},@{n="Address";e={$_.properties[19].Value}} | Group User | Sort Count,Name -Desc

    • Предложено в качестве ответа Vector BCOModerator 20 марта 2017 г. 12:34
    20 марта 2017 г. 12:23
    Отвечающий
  • Count Name                      Group                                                                    
    ----- ----                      -----                                                                    
       11 USR1CV8                   {@{TimeCreated=16.03.2017 17:11:43; User=USR1CV8; Address=-}, @{TimeCr...
        4 Алексей                   {@{TimeCreated=08.03.2017 12:48:08; User=Алексей; Address=192.168.0.55...
        4 oadm                      {@{TimeCreated=17.03.2017 12:04:10; User=oadm; Address=::1}, @{TimeCre...
        3 sanya                     {@{TimeCreated=13.03.2017 11:52:13; User=sanya; Address=-}, @{TimeCrea...
        2 администратор$p1r1t       {@{TimeCreated=03.03.2017 23:49:54; User=администратор$p1r1t; Address=...
        1 администратор             {@{TimeCreated=03.03.2017 23:52:53; User=администратор; Address=::1}}    
        1 itllc1                    {@{TimeCreated=06.03.2017 9:00:14; User=itllc1; Address=-}}  

    вот результат выполнения последнего кода. 

    тоже не то

    20 марта 2017 г. 12:38
  • $Dateinception = get-date -year 2017 -month 3 -day 1
    $Dateend = get-date -year 2017 -month 3 -day 18
    Get-WinEvent -FilterHashtable @{LogName="Security";ID=4625;StartTime=$Dateinception;EndTime=$Dateend} | 
    		Select @{n = "TimeCreated";e={$_.TimeCreated}},@{n="User";e={$_.properties[5].Value}},@{n="Address";e={$_.properties[19].Value}} | Sort User

    • Помечено в качестве ответа tosh1ba 20 марта 2017 г. 13:21
    20 марта 2017 г. 12:58
    Отвечающий
  • ДА, спасибо это то что нужно
    20 марта 2017 г. 13:21
  • Добрый день. 

    Прошу помочь еще одним советом.

    Пытаюсь данный скрипт, вернее его переменные вынести в параметры, чтобы можно было при запуске задавать параметры, например диапазон даты:

    делаю следующим образом:

    Param (
    $Dateinception = get-date -format d 01.03.2017,
    $Dateend = get-date -format d 22.03.2017
    )
    
    Get-WinEvent -FilterHashtable @{LogName="Security";ID=4625;StartTime=$Dateinception;EndTime=$Dateend} | 
    		Select @{n = "TimeCreated";e={$_.TimeCreated}},@{n="User";e={$_.properties[5].Value}},@{n="Address";e={$_.properties[19].Value}} | Sort -Descending User 


    выдает сообщение:

    Отсутствует выражение после "=".
    At line:2 char:16
    
    Отсутствует ")" в списке параметров функции.
    At line:2 char:18
    
    Неожиданный токен ")" в выражении или инструкции.
    At line:4 char:1

    Видимо ошибка в синтаксисе. Помогите разобраться. 

    спасибо

    22 марта 2017 г. 8:21
  • Формат даты: MM/dd/YYYY
    Param (
    	[Datetime]$Dateinception = "03/01/2017",
    	[Datetime]$Dateend = "03/22/2017"
    )

    • Помечено в качестве ответа tosh1ba 22 марта 2017 г. 8:37
    22 марта 2017 г. 8:36
    Отвечающий
  • А как то можно сделать чтобы -Format d был?
    22 марта 2017 г. 8:38
  • А как то можно сделать чтобы -Format d был?

    -Format d - Это тип String, подобное приведет к двойному преобразованию и ошибке в Get-WinEvent.

    Param (
    $Dateinception = (get-date -format d 01.03.2017),
    $Dateend = (get-date -format d 22.03.2017)
    )
    


    • Помечено в качестве ответа tosh1ba 22 марта 2017 г. 9:01
    22 марта 2017 г. 8:49
    Отвечающий