PowerShell: Karel Niine, Kodutoo.ps1
From ICO wiki
<source lang="powershell">
<# .SYNOPSIS
See skript väljastab kõik print sündmused nende toimumise aja ja omaniku.
.DESCRIPTION
Skript võtab eventlogist välja kõik print sündmused ning väljastab need ekraanile või kui on määratud fail,siis faili. CSV kujul, eraldajaks on ";" Parameetriteks on võimalik anda; -fail failinimi.csv -algus 10/10/11 - ennem (before) -lopp 10/10/11 - pärast (after)
.EXAMPLE
kodutoo.ps1 -fail print_log.csv -algus 11/11/11 -lopp 1/1/11
.VERSION
0.1
.NOTES
Autor: Karel Niine
- >
param(
[string]$Algus="algus", [string]$Lopp="lopp", [string]$Fail="fail"
)
- Esimene rida
$esimeneString="Aeg;Kasutaja;Printer;Lehtede_arv;Dokumendi Nimi";
- kui faili parameetrit ei ole antud siis prindime lihtsalt tiitelrea
if($Fail -eq "fail"){
write-host $esimeneString;
}else{
$stream = [System.IO.StreamWriter] $Fail
# kirjutame esimes rea faili $stream.WriteLine($esimeneString);
}
- Kontrollime kas on Algus ja lõpp antud
if($Lopp -ne "lopp" -and $Algus -ne "algus"){
$PrintEvents = Get-EventLog -log System -entrytype Information -after $Lopp -before $Algus | Where-Object{$_.EventID -eq "10"}
}elseif($Lopp -ne "lopp" -and $Algus -eq "algus"){
$PrintEvents = Get-EventLog -log System -entrytype Information -after $Lopp | Where-Object{$_.EventID -eq "10"}
}elseif($Lopp -eq "lopp" -and $Algus -ne "algus"){
$PrintEvents = Get-EventLog -log System -entrytype Information -before $Algus | Where-Object{$_.EventID -eq "10"}
}else{
# korjame systeemist kõik print eventid else if $PrintEvents = Get-EventLog -log System -entrytype Information | Where-Object{$_.EventID -eq "10"}
}
- iga objekti kohta
foreach ($objEvent in $PrintEvents) {
$reaString=$objEvent.TimeWritten.ToString()+";"+$objEvent.ReplacementStrings[2]+";"+$objEvent.ReplacementStrings[3]+";"+$objEvent.ReplacementStrings[6]+";"+$objEvent.ReplacementStrings[1]
# Kontroll kas salvestame või v2ljastame if($Fail -ne "fail"){ $stream.WriteLine($reaString);
}else{ write-host $reaString; }
}
- kui on antud faili parameeter tuleb peale avamist ka kinni panna.
if($Fail -eq "fail"){
}else{ $stream.close();
}