Auditer et verrouiller les imprimantes partagées avec PowerShell
Lister les files d'impression d'un serveur Windows, repérer celles qui sont en erreur et restreindre qui peut administrer une imprimante, sans ouvrir une seule console graphique.
Un serveur d’impression, c’est le service que tout le monde oublie jusqu’au lundi matin où « rien ne sort ». Deux commandes suffisent pour savoir où on en est et pour éviter qu’un utilisateur trop curieux ne modifie le port d’une imprimante de production.
Lister les imprimantes et leur état
Section intitulée « Lister les imprimantes et leur état »Le module PrintManagement est présent par défaut sur Windows Server. Depuis une session PowerShell élevée sur le
serveur d’impression :
Get-Printer | Format-Table Name, ShareName, PrinterStatus, DriverName -AutoSizePrinterStatus vaut Normal quand tout va bien. Les valeurs à surveiller sont Error, Offline, PaperOut et
TonerLow. Pour ne garder que les files en souffrance :
Get-Printer | Where-Object PrinterStatus -ne 'Normal' | Select-Object Name, PrinterStatus, PortNameVoir les travaux bloqués
Section intitulée « Voir les travaux bloqués »Une imprimante Normal avec vingt travaux en attente est en réalité en panne. On regarde la file :
Get-PrintJob -PrinterName 'ATELIER-ETIQUETTES' | Select-Object Id, UserName, JobStatus, SubmittedTimePour purger un travail qui bloque tout le monde :
Remove-PrintJob -PrinterName 'ATELIER-ETIQUETTES' -ID 42Restreindre qui peut administrer une imprimante
Section intitulée « Restreindre qui peut administrer une imprimante »Par défaut, le groupe Tout le monde peut imprimer et, sur certaines installations héritées, gérer les documents.
Les permissions d’une imprimante s’expriment en SDDL (Security Descriptor Definition Language), le même langage que
pour les services Windows. Ce descripteur ne laisse imprimer et administrer que SYSTEM et Administrateurs :
Set-Printer -Name 'ATELIER-ETIQUETTES' ` -PermissionSDDL 'O:BAG:SYD:(A;;LCSWGRPWPDTLOCRSDRC;;;SY)(A;;LCSWGRPWPDTLOCRSDRC;;;BA)'Lecture rapide du descripteur :
| Segment | Signification |
|---|---|
O:BA |
propriétaire : Administrateurs intégrés |
G:SY |
groupe principal : SYSTEM |
(A;;…;;;SY) |
ACE d’autorisation pour SYSTEM |
(A;;…;;;BA) |
ACE d’autorisation pour Administrateurs |
LCSWGRPWPDTLOCRSDRC |
droits combinés : imprimer, gérer l’imprimante, gérer les documents |
Pour récupérer le SDDL actuel avant de le modifier, et le garder dans un coin :
(Get-Printer -Name 'ATELIER-ETIQUETTES' -Full).PermissionSDDL | Set-Content .\atelier-etiquettes.sddlAller plus loin
Section intitulée « Aller plus loin »- Faire tourner l’inventaire chaque matin dans une tâche planifiée et envoyer le résultat par mail : voir Automatisation / scripting.
- Sur les sites distants, une imprimante d’étiquettes qui « perd son ruban » est souvent un problème de pilote plutôt
que de réseau ; le journal
Microsoft-Windows-PrintService/Operationalle dit avant l’opérateur.