Forum
################################################################
Özgür bey sanırım bu konular ile pek ilgilenen olmamış aramızda, siz ilerleyebildiniz mi acaba ?
Danışman - ITSTACK Bilgi Sistemleri
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız.
Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz.
Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************
Yok istedigim seyi basaramamistim . print report icin evtx leri kullanamadim malesef.
rapor lazim olunca gerekli event leri export edip exel de sorgudan geciriyorum - ugrastiriyor ama neyse ....
Merhaba,
Aşağıdaki gibi her satırı açıklamaya çalıştım 🙂 Eğer anlaşılmayan bir yer var ise hala yardımcı olabilirim.
################################################################
# #
# Scan Windows Print Server Logs for activity #
# from previous month #
# Created by B. Bickett #
# http://mywinsysadm.wordpress.com #
# Date 8/23/12 #
# #
################################################################
# Bugunun tarihini getirir
$dte = Get-Date
# Bu ayi getirir
$m = $dte.month
# Ay formatini degistirir
$cmonth = Get-Date -UFormat %m
# Bugunu getirir
$d = $dte.day
# Bugunun formatini degistirir
$cday = Get-Date -UFormat %d
# Bu yili getirir
$cyear = $dte.year
# Dosya adini olusturmus CSV icin
$filename = "ColorPrinterLog_" + $cyear + "_" +$cmonth + ".csv"
# Gecen ayin tarihini getirmis
$startdatefull = ($dte).AddDays(-30)
# Gecen ayin formatini degistirmis
$startdate = ($startdatefull).ToShortDateString()
# Bugunun formati farkli
$enddate = ($dte).ToShortDateString()
# Isin adi 🙂
"Job Name: Monthly Color Printer Log"
# Baslama zamani
"Start Date: " + $startdate
# Bitis zamani
"End Date: " + $enddate
# C:\$filename içersini bosaltiyor
Write-Host " " | Out-File "C:\$filename"
Write-Host "Scanning Archived Printer Event Logs..."
Write-Host
# C:\Windows\System32\winevt\Logs icinde ismi Archive-Microsoft-Windows-PrintService%4Operational-$cyear-$cmonth*.evtx seklinde olan tum evtxleri almis ve bunlari foreach'e sokmus
Get-ChildItem -include Archive-Microsoft-Windows-PrintService%4Operational-$cyear-$cmonth*.evtx -Path C:\Windows\System32\winevt\Logs -recurse |
ForEach-Object {
"Parsing $($_.fullname)`r`n"
Try
# Tum eventleri getiriyor ve bunlari Path, ID, Starttime ve Endtime seklinde hashtable yapiyor, daha iyi gorunum icin
{ $events = get-winevent -FilterHashTable @{Path=$_.fullname; ID=307; StartTime=$startdate; EndTime=$enddate ;} |
# Message olan kisimlarin icerisinde printer1, printer2 vs gibi kelimeler gecen eventleri aliyor sadece
where {($_.Message -like "*printer1*") -or ($_.Message -like "*printer2*") -or ($_.Message -like "*printer3*") -or ($_.Message -like "*printer4*") -or ($_.Message -like "*printer5*") -or ($_.Message -like "*printer6*") } |
# Bu gelen mesajlardan sadece timecreated ve message icerigini aliyor
select timecreated,message |
# Bunlari temp.csv icersine kaydediyor
Export-Csv "C:\Temp.csv" -Encoding ASCII -notype
# CSV icerisini okuduktan sonra C:\$filename icine ekliyor. Bu kisim gereksiz olmus sanki, dogrudan da yazabilirdi. CSV convert yapamamis galiba arkadas.
[System.IO.File]::ReadAllText("C:\Temp.csv") | Out-File -Append "C:\$filename"
}
# Eger hic bir sey yakalayamazsa
Catch [System.Exception] {"No results in current log"}
}
Write-Host
Write-Host "Scanning Complete!"
Write-Host
Eline sağlık Yusuf.
Danışman - ITSTACK Bilgi Sistemleri
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız.
Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz.
Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************