Serveur d'impression

Serveur d'impression – Activer le script d'audit et de collecte de journaux – ID d'événement: 307 – Bien choisir son serveur d impression

Le 4 juillet 2019 - 1 minute de lecture

Un ami m'a demandé d'installer le serveur d'impression dans son environnement (Windows Server 2008 R2 SP1), d'activer l'audit des travaux d'impression et de créer un rapport toutes les semaines.

  • Pour installer le serveur d'impression il y a une très belle vidéo: sur youtube
  • Une fois les imprimantes installées et déployées, nous devrions activer l'audit de l'événement PrinterService. journaux. Sur le serveur d'impression Ouvrir Gestionnaire de serveur -> Diagnostics -> Journaux des événements -> Journaux d'applications et de services -> Microsoft -> les fenêtres -> Service d'impression

server_manager "src =" https://ficilitydotnet.files.wordpress.com/2013/02/server_manager.png?w=869 "srcset =" https://ficilitydotnet.files.wordpress.com/2013/02/server_manager. png 302w, https://ficilitydotnet.files.wordpress.com/2013/02/server_manager.png?w=124 124w, https://ficilitydotnet.files.wordpress.com/2013/02/server_manager.png?w= 248 248w "tailles =" (largeur maximale: 302 pixels) 100vw, 302 pixels "/></p>
<ul>
<li>Développez l'événement PrintService. journaux -> clic droit <strong>Opérationnel</strong><strong/></li>
<li>Assure-toi <strong>Désactiver le journal</strong> est présent (sinon cliquez <strong>Activer le journal</strong>)</li>
</ul>
<p><img data-attachment-id=

  • Imprimer des pages de test
  • Exécutez le script suivant et il passera par événement. journaux, collecter des événements. ID 307 pour les 168 dernières heures et rassemblez votre fichier CSV avec les informations les plus importantes sur les documents imprimés (quoi, où, quand et par qui a été imprimé)
$ dat = get-date
$ name = "$ ($ dat.day) _ $ ($ dat.month) _ $ ($ dat.year)"
start-transcript c:  scripts  printaudit_logs  log_ $ nom.log
#print audit script
$ pserv = "PrintServerName"
$ AuFileRaw = "c:  scripts  printaudit_logs  Audit.csv"
$ AuFileLRD = "c:  scripts  printaudit_logs  last_run.csv"
################################### Mode test - annulation du commentaire
$ dat | Fichier de sortie $ AuFileLRD
################################################# ################################################# #########################################
#read_event_log quotidiennement à partir du courant
$ a = Get-WinEvent -ProviderName "Microsoft-Windows-PrintService" - Nomordinateur $ pserv | où (($ _. id -eq 307) etand ($ _. timecreated -ge $ dat.addhours (-168)))} | sélectionnez Message, TimeCreated

#read event from file
# $ a = Get-WinEvent -Path 'C:  Scripts  PrintAudit_logs  system log.evtx' | où (($ _. id -eq 307))} | | sélectionnez Message, TimeCreated

$ lr = "DocName; utilisateur; IP; Imprimante; Port IP; taille; pages; Date"
$ lr | Out-File $ AuFileLRD -Append
foreach ($ rec in $ a)  Out-File $ AuFileRaw -Append
$ out 

#sauvegarder dans un fichier brut
# rapports générés
#envoi de mail
Stop-Transcript

Mise à jour: j'ai créé une nouvelle version du script rassemblant les rapports d'impression pour la période sélectionnée. C'est également plus rapide, car j'ai ajouté des conditions supplémentaires pour ne pas inclure de lignes vides dans les rapports. Voici la nouvelle version. Les lignes bleues sont sujettes à modification pour modifier la période, l'emplacement des journaux et le nom du serveur d'impression:

#Version 1.1
$ dat = get-date
$ name = "$ ($ dat.day) _ $ ($ dat.month) _ $ ($ dat.year)"
start-transcript c:  scripts  printaudit_logs  log_ $ nom.log
#print audit script
$ pserv = "OPHQMS01"
$ AuFileRaw = "c:  scripts  printaudit_logs  Audit.csv"
$ AuFileLRD = "c:  scripts  printaudit_logs  last_run.csv"
$ AuFileRep = "c:  scripts  printaudit_logs  Audit_ $ name.html"
$ smtpserver = "smtp.domain.local"
$ adminrecip = "[email protected]"
$ month = $ dat.addmonths (-1) | Sélectionnez un mois
################################### Mode test - annulation du commentaire
# $ dat | Fichier de sortie $ AuFileLRD
################################################# ################################################# #########################################
#read_event_log quotidiennement à partir du courant
$ b = @ ()
$ a = Get-WinEvent -ProviderName "Microsoft-Windows-PrintService" - Nomordinateur $ pserv | sélectionnez id, Message, TimeCreated
# $ a = Get-WinEvent -Path 'C:  scripts12013-082013.evtx' | sélectionnez id, Message, TimeCreated
foreach ($ line in $ a) 
$ b + = $ line  | sélectionnez Message, TimeCreated
}

#read event from file
$ lastm = "_ $ ($ dat.addmonths (-1) .month) _ $ ($ dat.year)"
créer une structure de dossier
Remove-Item -Recurse -Force "c:  scripts  printaudit_logs  stats $ ($ lastm)"
new-item -ItemType Directory -path "c:  scripts  printaudit_logs  stats $ ($ lastm)" -erroraction SilentlyContinue
new-item -ItemType Directory -path "c:  scripts  printaudit_logs  stats $ ($ lastm)  uzivatelske" -erroraction en mode silencieuxContinuer
new-item -ItemType Directory -path "c:  scripts  printaudit_logs  stats $ ($ lastm)  tiskarny" -erroraction ContinuSuite

$ lr = "Dokument; Uživatel; IP; Tiskárna; IPPort; Velikost; Stran; Datum"
$ lr | Fichier de sortie $ AuFileLRD
$ lr | Out-File $ AuFileRaw
foreach ($ rec en $ b) 
if ($ rec.message -notlike $ null) 
$ r = $ rec.message -replace "appartenant à", ";"
$ r = $ r -remplacement "a été imprimé sur", ";"
$ r = $ r -remplace "on", ";"
$ r = $ r - remplace "par le port", ";"
$ r = $ r -replace "Taille en octets:", ";"
$ r = $ r -remplace ". Pages imprimées:", ";"
$ r = $ r -remplace ". Aucune action de l'utilisateur n'est requise.", ""
$ out = "$ ($ r); $ ($ rec.timecreated)"
#sauvegarder dans un fichier brut
$ out 


#sauvegarder dans un fichier brut

# rapports générés
$ Rep = Import-Csv $ AuFileLRD -Delimiter ";"
$ psum = @ ()
$ usum = @ ()
$ imprimantes = $ rep | groupe tiskárna | sélectionnez le nom
$ utilisateurs = $ rep | groupe uživatel | sélectionnez le nom

# statistiques d'utilisateur
foreach ($ us in $ users)  groupe uživatel, tiskárna, stran 
# statistiques de l'imprimante
foreach ($ pr dans $ imprimantes) 
$ prout = "c:  scripts  printaudit_logs  stats $ ($ lastm)  tiskarny  $ ($ pr.name) $ ($ lastm) .csv"
$ x = @ (); $ x + = $ Rep 
$ psum = $ rep | groupe tiskárna | trier le nombre -Descending | sélectionner le nom, compter
$ usum = $ rep | le groupe uživatel, tiskárna | trier le nombre -Descending | sélectionner le nom, compter
#envoi de mail
$ body = "Zdravím,

Statistiky za měsíc $ ($ lastm) naleznete v \ ophqms01 printaudit_logs.

S pozdravem
Admin " send-mailmessage -De [email protected] -Pour $ adminrecip -Subject "Imprimer audit" -Body $ body -BodyAsHtml -Encoding ([System.Text.Encoding]:: unicode) -smtpserver $ smtpserver Stop-Transcript

Commentaires

Laisser un commentaire

Votre commentaire sera révisé par les administrateurs si besoin.