PowerShell: Karel Niine, Kodutoo.ps1: Difference between revisions

From ICO wiki
Jump to navigationJump to search
No edit summary
No edit summary
Line 2: Line 2:


<#
<#
.SYNOPSIS   
See skript väljastab kõik print sündmused nende toimumise aja ja omaniku.
<#
.SYNOPSIS     
.SYNOPSIS     
See skript väljastab kõik print sündmused nende toimumise aja ja omaniku.
See skript väljastab kõik print sündmused nende toimumise aja ja omaniku.
.DESCRIPTION   
.DESCRIPTION   


Skript võtab eventlogist välja kõik print sündmused ning väljastab need ekraanile või kui
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 määratud fail,siis faili. CSV kujul, eraldajaks ;
algus - ennem (before)
algus - ennem (before)
pärast - lõpp (after)
pärast - lõpp (after)


.EXAMPLE
.EXAMPLE
kodutoo -fail print_log.csv -algus 11/11/11 -lopp 1/1/11
kodutoo -fail print_log.csv -algus 11/11/11 -lopp 1/1/11
#>
#>



Revision as of 23:11, 26 January 2012

<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 ; algus - ennem (before) pärast - lõpp (after)

.EXAMPLE kodutoo -fail print_log.csv -algus 11/11/11 -lopp 1/1/11

  1. >


param(

 [string]$Algus="algus",
 [string]$Lopp="lopp",
 [string]$Fail="fail"

)


  1. Esimene rida

$esimeneString="Aeg;Kasutaja;Printer;Lehtede_arv;Dokumendi Nimi";


  1. kui faili parameetrit ei ole antud siis prindime lihtsalt tiitelrea

if($Fail -eq "fail"){

   write-host $esimeneString;


}else{

   $stream = [System.IO.StreamWriter] $Fail


   # KIRJUTAME TIITEL REA faili
   $stream.WriteLine($esimeneString);   

}


  1. Kontrollime kas on Algus ja lõpp antud
  1. www.powershellpro.com/powershell-tutorial-introduction/powershell-tutorial-conditional-logic/

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"}

}


  1. 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;    
     }

}


  1. kui on antud faili parameeter tuleb peale avamist ka kinni panna.

if($Fail -eq "fail"){


}else{

   $stream.close();

} .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 ;


.EXAMPLE

kodutoo -fail print_log.csv -algus 11/11/11 -lopp 1/1/11

  1. >


param(

 [string]$Algus="algus",
 [string]$Lopp="lopp",
 [string]$Fail="fail"

)


  1. Esimene rida

$esimeneString="Aeg;Kasutaja;Printer;Lehtede_arv;Dokumendi Nimi";


  1. kui faili parameetrit ei ole antud siis prindime lihtsalt tiitelrea

if($Fail -eq "fail"){

   write-host $esimeneString;


}else{

   $stream = [System.IO.StreamWriter] $Fail


   # KIRJUTAME TIITEL REA faili
   $stream.WriteLine($esimeneString);   

}


  1. Kontrollime kas on Algus ja lõpp antud
  1. www.powershellpro.com/powershell-tutorial-introduction/powershell-tutorial-conditional-logic/

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"}

}


  1. 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;    
     }

}


  1. kui on antud faili parameeter tuleb peale avamist ka kinni panna.

if($Fail -eq "fail"){


}else{

   $stream.close();

}