Dans l’article d’aujourd’hui nous allons voir comment déléguer à un service desk le droit de purger les files d’impressions ainsi que le redémarrage et la purge du spooleur d’impression à distance.
1 – Création d’un groupe
Tout d’abords nous allons créer un groupe AD ou local sur le serveur dans le quel nous allons ajouter les utilisateurs du service desk. J’ai fais le choix de la création d’un groupe local sur le serveur que j’ai nommé : Print_server_Servicedesk_Rights
2 – Autoriser le groupe à gérer les documents d’une imprimante
Ensuite nous allons donner les droits à ce groupe de gérer les documents, sur une imprimante que nous allons appeler sourceprinter :
3 – Copie des droits de cette imprimantes sur les autres imprimantes du serveur
Nous allons ensuite copier les droits de cette imprimante sur toutes les imprimantes de notre serveur.
pour cela nous allons démarrer sur le serveur un invite de commande Powershell en tant qu’administrateur du serveur afin d’exécuter le script suivant :
#copie des droits d'une imprimante dans une variable $security = get-printer "Sourceprinter" -full #liste toutes les imprimantes du serveur et copie les droits dessus get-printer * -computer printservername | Foreach-Object {set-printer $_.name -computer printservername -PermissionSDDL $security.PermissionSDDL}
4 – Ajout des droits de redémarrage du spooler d’impression
Dans certains cas il arrive que l’on ne peut pas purger la file d’impression de cette manière. Il faut donc pouvoir redémarrer le spooler d’impression.
Nous allons donc ajouter a ce même groupe le droit de démarrer/arrêter/redémarrer le spooler d’impression sur le serveur
Pour cela nous allons utiliser l’outil microsoft SubInACL téléchargeable ici
Grace à cet outil nous pouvons tout d’abords vérifier les droits sur notre service de spooler d’impression avec la commande suivante :
subinacl.exe /verbose=1 /service spooler /display
Commande qui doit vous retourner l’état suivant :
On peut alors ajouter les droits du groupe sur le service avec la commande suivante :
subinacl.exe /verbose=1 /service spooler /grant="Print_server_Servicedesk_Rights"=LQSTOP
si cela fonctionne correctement la commande doit vous retourner cela :
Voici une liste des argument pour les droits à un service.
Service:
F : Full Control
R : Generic Read
W : Generic Write
X : Generic eXecute
L : Read controL
Q : Query Service Configuration
S : Query Service Status
E : Enumerate Dependent Services
C : Service Change Configuration
T : Start Service
O : Stop Service
P : Pause/Continue Service
I : Interrogate Service
U : Service User-Defined Control Commands
Attention si le serveur est en version 2016 1709 ou ultérieure une nouvelle stratégie empêche les non administrateurs locaux de redémarrer des services à distance.
Pour autoriser le redémarrage du service a distance il faut en plus ajouter dans la clé de registre suivante : HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurePipeServers\SCM
La valeur de type REG_MULTI_SZ avec comme nomRemoteAccessCheckExemptionList et comme valeur spooler
Une fois la clé créée il faut redémarrer le serveur pour que le paramètre soit pris en compte.
Vous trouverez plus de détails sur cet article : Site microsoft
Voici également un site qui décrit différentes méthodes pour gérer les droits sur les services.
5 – Autoriser le groupe a purger les documents du spooler à distance
En partageant le dossier c:\windows\System32\spool\Printers de votre serveur aux utilisateurs du groupe en lecture écriture sous le nom Printers$ vous pouvez exécuter le script suivant depuis un pc distant afin d’arrêter le service spooler du serveur, purger les documents en attente et relancer le service.
6 – Script pour automatiser la purge des files d’impression à distance
@echo off echo Stopping print spooler. echo. sc \\printservername stop spooler echo deleting temp files. echo. del \\printservername\Printers$\*.* /q echo Starting print spooler. echo. sc \\printservername start spooler
7 – Redémarrage du spooler à distance via MMC
Si vous souhaitez utiliser une console MMC pour le redémarrage du spooler cela n’est pas possible car vous obtenez le message accès refusé lors de l’affichage de la liste des services.
Pour cela nous allons ajouter les droits au groupe de lister les services.
a) tout d’abord il faut récupérer le SID du groupe en question. Pour cela nous allons utiliser un outils de sysinternal PSGETSID téléchargeable ici
pour récupérer le SID du groupe nous allons exécuter la commande suivante :
psgetsid.exe Print_server_servicedesk_rights
SID for Servername\Print_server_Servicedesk_rights:
S-1-5-21-4030924385-2145503747-4333381931-1001
b) nous allons ensuite récupérer les droits appliqués sur le service manager avec la commande suivante :
sc sdshow scmanager
qui va nous retourner la valeur suivante si aucune modification n’a été faite :
D:(A;;CC;;;AU)(A;;CCLCRPRC;;;IU)(A;;CCLCRPRC;;;SU)(A;;CCLCRPWPRC;;;SY)(A;;KA;;;BA)(A;;CC;;;AC)S:(AU;FA;KA;;;WD)(AU;OIIOFA;GA;;;WD)
c) Nous allons maintenant copier la chaine (A;;CCLCRPRC;;;IU) et remplacer IU par le SID de notre groupe. pour nous donner
(A;;CCLCRPRC;;;S-1-5-21-4030924385-2145503747-4333381931-1001).
d) nous intégreons ensuite cette chaine dans la chaine SDDL initiale avant le S: pour obtenir :
D:(A;;CC;;;AU)(A;;CCLCRPRC;;;IU)(A;;CCLCRPRC;;;SU)(A;;CCLCRPWPRC;;;SY)(A;;KA;;;BA)(A;;CC;;;AC)(A;;CCLCRPRC;;;S-1-5-21-4030924385-2145503747-4333381931-1001)S:(AU;FA;KA;;;WD)(AU;OIIOFA;GA;;;WD)
e) il suffit ensuite d’enregistrer les droits sur le serveur avec la commande suivante :
sc sdset scmanager "D:(A;;CC;;;AU)(A;;CCLCRPRC;;;IU)(A;;CCLCRPRC;;;SU)(A;;CCLCRPWPRC;;;SY)(A;;KA;;;BA)(A;;CC;;;AC)<strong>(A;;CCLCRPRC;;;S-1-5-21-4030924385-2145503747-4333381931-1001)</strong>S:(AU;FA;KA;;;WD)(AU;OIIOFA;GA;;;WD)"
En cas de succès vous aurez le message :
[SC] SetServiceObjectSecurity SUCCESS
En cas d’erreur sur cette dernière étape, les valeurs sont enregistrés dans le registre dans la clé : HKLM\SYSTEM\CurrentControlSet\Control\ServiceGroupOrder\Security
Votre personnel d’assistance peut maintenant purger les documents, arrêter le spooler lister les services, démarrer le spooler, et supprimer les fichiers dans le spooler
Poster un Commentaire
Vous devez vous connecter pour publier un commentaire.