Как стать автором
Обновить
0
0
viltor @viltor

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

Отправить сообщение
вот помогли на форуме microsoft решение выглядит так:

код
$time = [int](New-TimeSpan ([datetime]::Today) (get-date)).TotalMilliseconds
$filter = "*[System[TimeCreated[timediff(@SystemTime) < $time] and EventID=4624] and EventData[Data[Name='LogonType']=10]]"
Get-WinEvent -FilterXPath $filter -LogName Security | Foreach {
$evt = $_
$addr = $evt.Properties[18].Value
$textcolor = $host.ui.rawui.foregroundcolor
$host.ui.rawui.foregroundcolor = «red»

if ($addr -like «192.168.0*») {$host.ui.rawui.foregroundcolor = «DarkGreen»}
if ($addr -like «10.*») {$host.ui.rawui.foregroundcolor = «yellow»}
"" | Select-Object @{n=«Time»;e={$evt.TimeCreated}},@{n=«UserName»;e={$evt.Properties[5].Value}},@{n=«Address»;e={$addr}}
$host.ui.rawui.foregroundcolor = $textcolor
}


всем спасибо!
ок, постараюсь сам как то разобраться.

хочу тебе лично сказать огромное спасибо за готовность помочь,(человеку который в этом мало что понимает «просто задачу поставили именно такую») редко встречаю такое отношение. спасибо

немного изучил вопрос да там много чего изменилось… теперь что то без скобок что то без знаков вопросов

вообщем как получится сделать сразу напишу сюда
команда запуска вот .\test.ps1

система server 2012 r2 64x

пробовал на 2008 r2 запустить там вот что выдаёт
нельзя вызывать выражение со значением NULL и ссылается на 26 строку

$message = $_.message.split("`n") | %{$_.trimstart()} | %{$_.trimend()}
истина где то рядом) теперь ошибки нет но и ничего не выводит…

вот скрипт
param ($key1,$val1,$val2,$val3,$val4,$val5,$val6)
if ($val1 -eq $null) {$val1=0};
$mydate = Get-date -hour 0 -minute 0 -second 0;
if ($key1 -eq «year») { $mydate = (Get-date -hour 0 -minute 0 -second 0 -day 1 -month 1); $mydate = $mydate.addyears(-$val1); };
if ($key1 -eq «month») { $mydate = (Get-date -hour 0 -minute 0 -second 0 -day 1); $mydate = $mydate.addmonths(-$val1); };

if ($key1 -eq «day») { $mydate = $mydate.adddays(-$val1) };

if ($key1 -eq «date») { $mydate = (Get-date -hour 0 -minute 0 -second 0 -day $val1 -month $val2 -year $val3); }; # здесь реализуем возможность задания интервала

if ($val4 -eq $null) {$Events = Get-EventLog security -message "*Тип входа:?10*" -after ($mydate) | ?{$_.eventid -eq 528 }}
if ($val4 -ne $null) {$Events = Get-EventLog security -message "*Тип входа:?10*" -after ($mydate) -before (get-date -hour 0 -minute 0 -second 0 -day $val4 -month $val5 -year $val6) | ?{$_.eventid -eq 528 }}
$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 "^.+:."})

$textcolor = $host.ui.rawui.foregroundcolor

$host.ui.rawui.foregroundcolor = «red»

if ($data.address -like «192.168.222*») {$host.ui.rawui.foregroundcolor = «DarkGreen»}

$data

$host.ui.rawui.foregroundcolor = $textcolor

}


странно но вот этот скрипт даёт вывод…
в инете нашел
$time = [int](New-TimeSpan ([datetime]::Today) (get-date)).TotalMilliseconds
$filter = "*[System[TimeCreated[timediff(@SystemTime) < $time] and EventID=4624] and EventData[Data[Name='LogonType']=10]]"
Get-WinEvent -FilterXPath $filter -LogName Security | Select TimeCreated,Message,
@{n=«UserName»;e={([xml]$_.ToXml()).Event.EventData.Data |? {$_.Name -eq «TargetUserName»} | %{$_.'#text'}}},
@{n=«Address»;e={([xml]$_.ToXml()).Event.EventData.Data |? {$_.Name -eq «IpAddress»} | %{$_.'#text'}}}


вот его вывод
Скрытый текст
TimeCreated Message UserName Address
— — — —
21.01.2015 15:58:35 Вход с учетной записью вып… ocean 192.168.222.113
21.01.2015 15:14:04 Вход с учетной записью вып… potate 192.168.222.123
21.01.2015 15:13:07 Вход с учетной записью вып… ocean 192.168.222.113
21.01.2015 14:54:08 Вход с учетной записью вып… potate 192.168.222.13
21.01.2015 13:01:45 Вход с учетной записью вып… ocean 192.168.222.113
21.01.2015 12:44:07 Вход с учетной записью вып… ocean 192.168.222.183
21.01.2015 11:58:25 Вход с учетной записью вып… ola_s 192.168.222.176
21.01.2015 11:32:17 Вход с учетной записью вып… potate 192.168.222.13
21.01.2015 11:31:01 Вход с учетной записью вып… andreeva 192.168.222.13
21.01.2015 11:04:49 Вход с учетной записью вып… andreeva 192.168.222.13
21.01.2015 11:04:07 Вход с учетной записью вып… ola_s 192.168.222.176
21.01.2015 10:57:39 Вход с учетной записью вып… ocean 192.168.222.113


рад что порадовал)

нет не ворде) все проще копи паст.

только вот хоть убей не понимаю «Вместо ($key1 -eq «year») должно быть ($key1 -eq «year») и так по всему коду» написаны одни и теже символы? или меня глючит?
день добрый всё делаю как написано что то не работает не подскажите в чем дело
вот что ввожу
param ($key1,$val1,$val2,$val3,$val4,$val5,$val6)
if ($val1 -eq $null) {$val1=0};
$mydate = Get-date -hour 0 -minute 0 -second 0;
if ($key1 -eq «year») { $mydate = (Get-date -hour 0 -minute 0 -second 0 -day 1 -month 1); $mydate = $mydate.addyears(-$val1); };
if ($key1 -eq «month») { $mydate = (Get-date -hour 0 -minute 0 -second 0 -day 1); $mydate = $mydate.addmonths(-$val1); };
if ($key1 -eq «day») { $mydate = $mydate.adddays(-$val1) };
if ($key1 -eq «date») { $mydate = (Get-date -hour 0 -minute 0 -second 0 -day $val1 -month $val2 -year $val3); };
# здесь реализуем возможность задания интервала
if ($val4 -eq $null) {$Events = Get-EventLog security -message «*Тип входа:?10*» -after ($mydate) | ?{$_.eventid -eq 528 }}
if ($val4 -ne $null) {$Events = Get-EventLog security -message «*Тип входа:?10*» -after ($mydate) -before (get-date -hour 0 -minute 0 -second 0 -day $val4 -month $val5 -year $val6) | ?{$_.eventid -eq 528 }}
$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 «^.+:.»})
$textcolor = $host.ui.rawui.foregroundcolor
$host.ui.rawui.foregroundcolor = «red»
if ($data.address -like «192.168.1*») {$host.ui.rawui.foregroundcolor = «DarkGreen»}
if ($data.address -like «10.*») {$host.ui.rawui.foregroundcolor = «yellow»}
$data
$host.ui.rawui.foregroundcolor = $textcolor
}
вот что выдает:
C:\Users\Администратор\ttest.ps1:4 знак:14
+ if ($key1 -eq В) { $mydate = (Get-date -hour 0 -minute 0 -second 0 -day 1 …
+ ~
Необходимо предоставить выражение для значения справа от оператора «-eq».
C:\Users\Администратор\ttest.ps1:4 знак:15
+ if ($key1 -eq В) { $mydate = (Get-date -hour 0 -minute 0 -second 0 -day 1 …
+ ~~~~~~~~
Непредвиденная лексема «В» в выражении или операторе.
C:\Users\Администратор\ttest.ps1:4 знак:15
+ if ($key1 -eq В) { $mydate = (Get-date -hour 0 -minute 0 -second 0 -day 1 …
+ ~~~~~~~~
Отсутствует закрывающий знак «)» после выражения в операторе «if».
C:\Users\Администратор\ttest.ps1:4 знак:23
+ if ($key1 -eq В) { $mydate = (Get-date -hour 0 -minute 0 -second 0 -day 1 …
+ ~
Непредвиденная лексема «)» в выражении или операторе.
C:\Users\Администратор\ttest.ps1:5 знак:14
+ if ($key1 -eq В) { $mydate = (Get-date -hour 0 -minute 0 -second 0 -day …
+ ~
Необходимо предоставить выражение для значения справа от оператора «-eq».
C:\Users\Администратор\ttest.ps1:5 знак:15
+ if ($key1 -eq В) { $mydate = (Get-date -hour 0 -minute 0 -second 0 -day …
+ ~~~~~~~~~
Непредвиденная лексема «В» в выражении или операторе.
C:\Users\Администратор\ttest.ps1:5 знак:15
+ if ($key1 -eq В) { $mydate = (Get-date -hour 0 -minute 0 -second 0 -day …
+ ~~~~~~~~~
Отсутствует закрывающий знак «)» после выражения в операторе «if».
C:\Users\Администратор\ttest.ps1:5 знак:24
+ if ($key1 -eq В) { $mydate = (Get-date -hour 0 -minute 0 -second 0 -day …
+ ~
Непредвиденная лексема «)» в выражении или операторе.
C:\Users\Администратор\ttest.ps1:6 знак:14
+ if ($key1 -eq В) { $mydate = $mydate.adddays(-$val1) };
+ ~
Необходимо предоставить выражение для значения справа от оператора «-eq».
C:\Users\Администратор\ttest.ps1:6 знак:15
+ if ($key1 -eq В) { $mydate = $mydate.adddays(-$val1) };
+ ~~~~~~~
Непредвиденная лексема «В» в выражении или операторе.
Выданы сообщения не обо всех ошибках синтаксического анализа. Исправьте перечисленные в сообщениях ошибки и повторите
попытку.
+ CategoryInfo: ParserError: (:) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId: ExpectedValueExpression

Информация

В рейтинге
Не участвует
Откуда
Россия
Дата рождения
Зарегистрирован
Активность