Les imprimantes publiées par AD disparaissent – PERFGURU – Serveur d’impression
Les imprimantes publiées de AD disparaissent
Cela se produit normalement lorsque la stratégie de suppression d'impression est configurée.
le Imprimante L'élageur est un composant de Windows Service de spouleur qui supprime les objets PrintQueue orphelins de Active Directory. le Imprimante Pruner s'exécute dans le contexte du spouleur et uniquement sur les contrôleurs de domaine. Le but de la Imprimante L'élageur consiste à éliminer les objets PrintQueue de Active Directory dont l'attribut UNCName pointe vers un élément inexistant ou incorrect. imprimante.
Dépannage des imprimantes publiées manquantes:
==========================================
1. Lancez GPEdit.msc sur le serveur d'impression.
2. Naviguez jusqu'à Configuration ordinateur / Modèles d'administration / Imprimantes.
3. Configurez la stratégie Autoriser l'élagage des imprimantes publiées sur Désactivé.
4. Actualisez la stratégie de groupe.
Par défaut, le contrôleur de domaine vérifie 3 fois avec 8 heures d’intervalle pour déterminer si le
L’imprimante est toujours valide avant de la supprimer.
“Print Pruner est un thread qui s'exécute dans le contexte du spouleur sur tous les contrôleurs de domaine. Il
utilise les appels ADSI (ADsGetObject, IID_IDirectorySearch-> ExecuteSearch) pour obtenir le
liste de tous les serveurs printQueue dans le AD.
Pour vérifier si le serveur est dans même site, il utilise l'appel Winsock (gethostbyname)
et d'autres API de réseau (DsAddressToSiteNames, DsGetDcSiteCoverage).
Pour vérifier si la file d'attente disponibilité du serveur d'impression utilise des API de système d'exploitation
(NetServerGetInfo, OpenPrinter, GetPrinter).
Ainsi, tout le travail effectué par un élagueur est effectué à l'aide des fonctions ADSI, WinSock et OS. ”
Contournement pour récupérer les imprimantes disparues:
=========================================
Cliquez sur Démarrer, Exécuter, Services.msc
Arrêtez et redémarrez le service "Spouleur d'impression"
Remarque: lorsque le service de spouleur est redémarré sur un serveur d’impression, il republie automatiquement la imprimantes.
Remarque: Sur un service de cluster, arrêtez simplement le service Spouleur d'impression, car le service de cluster démarrera automatiquement le service lorsqu'il tentera de mettre la ressource Print en ligne.
Voici un script pour republier toutes les imprimantes dans Active Directory
Veuillez enregistrer ceci en tant que * .vbs et l'exécuter en tant que fichier de script.
'
' Cette VBS permet la publication d’imprimantes
'
' Créé par Austin Mack. Dernière modification le 8/19/2005
'
'Remarque: La commande générée pour chaque imprimante affichera une erreur pour chaque imprimante, si
' il est impossible d'activer la publication pour l'imprimante, par exemple, le manque d'autorisations.
'
Le lien suivant contient une liste d'attributs d'imprimante.
'http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/win32_printer.asp
'Les attributs d'un périphérique d'impression Windows sont représentés par une combinaison d'indicateurs.
' Attribut partagé = 8 (ie disponible en tant que ressource réseau partagée)
'
'Informations de syntaxe PRINTUI.DLL supplémentaires disponibles en exécutant la commande suivante
' rundll32 printui.dll, PrintUIEntry /?
Option explicite
en cas d'erreur reprendre suivant
Clé dim 'La clé du dictionnaire pour chaque article
Dim objLocator, objService, objEnumerator
Dim objWSH, strComputerName
Dim WSHShell
Définir WSHShell = WScript.CreateObject ("WScript.Shell")
Définir objWSH = CreateObject ("WScript.Network")
strComputerName = objWSH.ComputerName
set objLocator = CreateObject ("WbemScripting.SWbemLocator")
set objService = objLocator.ConnectServer (strComputerName, "root / cimv2")
set objEnumerator = objService.ExecQuery ("SELECT * FROM win32_Printer")
Wscript.echo "Un message sera affiché après la publication des imprimantes sur TOUTES les imprimantes locales partagées. Toutefois, la mise à jour de l'interface graphique peut prendre un peu plus longtemps "& vbcrlf &" Cliquez sur OK pour continuer "
Pour chaque clé de objEnumerator 'faire défiler chaque imprimante du système
si ((key.attributes et 8) = 8) alors 'N'exécuter que l'imprimante est partagée
if (left (key.name, 2) <> "\") alors 'Exécuter uniquement si l’imprimante n’est pas une imprimante réseau UNC (c-à-d. Devrait être locale)
'wscript.echo key.name 'Affichez chaque imprimante sur le point d'activer la publication sur papier DS.
WSHShell.Run ("rundll32 printui.dll, PrintUIEntry / Xs / n" "" & key.name & "" "attributs + publiés")
fin si
fin si
Prochain
Wscript.echo "La publication d'imprimante a été activée pour les imprimantes locales partagées sur ce système"
Commentaires
Laisser un commentaire