Quantcast
Channel: Скрипт получения времени работы в rdp сессии
Viewing all articles
Browse latest Browse all 27

Скрипт получения времени работы в rdp сессии

0
0

Доброго дня.

Помогите разобраться с написанием скрипта.

Задача получить время работы пользователя в rdp сессии в течении дня.

Пользователи цепляются удаленно по rdp на свой компьютер windows 7.

Если получить информацию по входу вроде как понятно, обращаемся к журналу безопасности и берем определенное событие (4624) с определенным типом входа (10 и 7). 

get-eventLog -LogName Security -after (Get-date -hour 0 -minute 0 -second 0) | Where-Object {$_.EventID -eq '4624'}|Where-Object {$_.Message -match 'Тип входа:\s+(10)\s' -or $_.Message -match 'Тип входа:\s+(7)\s'} |

    

    foreach {
    $time = $_.TimeGenerated
    $message = $_.message.split("`n") | %{$_.trimstart()} | %{$_.trimend()}
    $UserName = (([regex]'(?<=Новый вход:.*[\s\S]*.*записи:.\s)([\s\S]*)(?=\s\n.*Домен)').match($_.message).value)
    $time
    $username}

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

Но вот как получить время выхода?

если делать так:

Get-EventLog -LogName Security -after (Get-date -hour 0 -minute 0 -second 0)| ?{(4634) -contains $_.EventID -and $_.Message -match 'Тип входа:\s+(3)\s' }

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

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



Viewing all articles
Browse latest Browse all 27

Latest Images

Trending Articles





Latest Images