хочу тебе лично сказать огромное спасибо за готовность помочь,(человеку который в этом мало что понимает «просто задачу поставили именно такую») редко встречаю такое отношение. спасибо
немного изучил вопрос да там много чего изменилось… теперь что то без скобок что то без знаков вопросов
только вот хоть убей не понимаю «Вместо ($key1 -eq «year») должно быть ($key1 -eq «year») и так по всему коду» написаны одни и теже символы? или меня глючит?
$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
}
всем спасибо!
хочу тебе лично сказать огромное спасибо за готовность помочь,(человеку который в этом мало что понимает «просто задачу поставили именно такую») редко встречаю такое отношение. спасибо
немного изучил вопрос да там много чего изменилось… теперь что то без скобок что то без знаков вопросов
вообщем как получится сделать сразу напишу сюда
система server 2012 r2 64x
пробовал на 2008 r2 запустить там вот что выдаёт
нельзя вызывать выражение со значением NULL и ссылается на 26 строку
$message = $_.message.split("`n") | %{$_.trimstart()} | %{$_.trimend()}
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
}
странно но вот этот скрипт даёт вывод…
$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'}}}
вот его вывод
— — — —
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