Skip to content

Commit 8f086c8

Browse files
committed
First commit
0 parents  commit 8f086c8

File tree

2 files changed

+90
-0
lines changed

2 files changed

+90
-0
lines changed

README

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Repository of useful(?) PowerShell scripts

tail.ps1

+89
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
#
2+
# File Name : tail.ps1
3+
# Author : Xavier Mertens <[email protected]>
4+
# Prerequisite : PowerShell v1
5+
# Example : tail.ps1 -log Security,System -verbose -pattern ERROR
6+
#
7+
# History
8+
# 2013/09/17 : Created
9+
#
10+
param(
11+
[string]$log = "Security",
12+
[string]$eventid = "",
13+
[string]$pattern = "",
14+
[switch]$details = $false,
15+
[switch]$verbose = $false,
16+
[switch]$help = $false
17+
)
18+
19+
if ($help -eq $true)
20+
{
21+
Write-Host "Usage: tail.ps1 [-log=<eventlog>,<eventlog>,...]
22+
[-eventid=<id>,<id>,...]
23+
[-pattern=<regex>]
24+
[-details]
25+
[-verbose]
26+
[-help]"
27+
exit
28+
}
29+
30+
$eventlogs = $log.split(" ")
31+
$eventids = $eventid.split(" ")
32+
$idx = 0
33+
$old = new-object object[] 10
34+
$new = new-object object[] 10
35+
36+
if ($verbose) { Write-Host "*** Processing event log(s): $log" }
37+
38+
foreach($eventlog in $eventlogs)
39+
{
40+
$old[$idx] = (get-eventlog -LogName $eventlog -Newest 1).Index
41+
$idx++
42+
}
43+
44+
# $idx = (get-eventlog -LogName System -Newest 1).Index
45+
46+
while ($true)
47+
{
48+
start-sleep -Seconds 1
49+
$idx = 0
50+
foreach($eventlog in $eventlogs)
51+
{
52+
$new[$idx] = (Get-EventLog -LogName $eventlog -newest 1).index
53+
if ($new[$idx] -gt $old[$idx])
54+
{
55+
if ($verbose) { Write-Host "*** Read new event(s) from $eventlog" }
56+
foreach($id in $eventids)
57+
{
58+
if ($id.length -eq 0) {
59+
$data = get-eventlog -logname $eventlog -newest ($new[$idx] - $old[$idx]) | sort index
60+
}
61+
else {
62+
$data = get-eventlog -logname $eventlog -newest ($new[$idx] - $old[$idx]) | ?{$_.eventid -eq $id} | sort index
63+
}
64+
foreach($line in $data) {
65+
if ($pattern.length -eq 0) {
66+
if ($details -eq $false) {
67+
$line
68+
}
69+
else {
70+
$line | format-list
71+
}
72+
}
73+
else {
74+
if ($line.message -match $pattern) {
75+
if ($details -eq $false) {
76+
$line
77+
}
78+
else {
79+
$line | format-list
80+
}
81+
}
82+
}
83+
}
84+
}
85+
}
86+
$old[$idx] = $new[$idx]
87+
$idx++;
88+
}
89+
}

0 commit comments

Comments
 (0)