Script VBS suppression imprimantes avec exeptions [Résolu]

Messages postés
3
Date d'inscription
mercredi 14 septembre 2011
Dernière intervention
15 septembre 2011
- - Dernière réponse : nicolan
Messages postés
3
Date d'inscription
mercredi 14 septembre 2011
Dernière intervention
15 septembre 2011
- 15 sept. 2011 à 12:04
Bonjour,

Nous venons de renouveler le parc des copieurs dans les établissements de la région.Je dois maintenant supprimer tous les anciens copieurs et imprimantes (ils sont nombreux) présents sur les postes des utilisateurs.Seulement je souhaiterai ne pas supprimer les imprimantes virtuelles installées sur certains postes, à savoir celles de Cute PDF et PDF CREATOR. Je me suis servi de ce script afin de supprimer toutes les imprimantes :

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\" & strComputer & "\root\cimv2")

Set colInstalledPrinters = objWMIService.ExecQuery _
("Select * from Win32_Printer")

For Each objPrinter in colInstalledPrinters
objPrinter.Delete_
Next

Comment dois-je le modifier afin que celui-ci ne supprime pas les imprimantes virtuelles citées précédemment?
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
3
Merci
pas VBS sous la main sur ma machine;
Si pas objPrinter.DeviceID, alors objPrinter.Name

____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 104 internautes ce mois-ci

Commenter la réponse de ucfoutu
Messages postés
3
Date d'inscription
mercredi 14 septembre 2011
Dernière intervention
15 septembre 2011
1
Merci
Merci pour cette astuce, du coup voici mon script si cela peut servir à d'autres :

'Suppression de toutes les imprimantes locales et réseau sauf imprimantes virtuelles'

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\" & strComputer & "\root\cimv2")

Set colInstalledPrinters = objWMIService.ExecQuery _
("Select * from Win32_Printer")

For Each objPrinter in colInstalledPrinters
If objPrinter.Name <> "PDFCreator" and objPrinter.Name <> "CutePDF Writer" Then
objPrinter.Delete_
End IF
Next


Il ne me reste plus qu'a régler un problème de droit relatif à l'éxecution de ce script, en effet il faut être utilisateur avec pouvoir afin que celui-ci s'applique correctement sinon j'obtiens une erreur à la ligne comportant "objPrinter.Delete_"

Merci encore pour cette aide rapide!
Commenter la réponse de nicolan
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
0
Merci
Bonjour,

 if objPrinter.DeviceID = PrnName then <> "...." and objPrinter.DeviceID <> "...."then


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Commenter la réponse de ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
0
Merci
pardon ===>>

 if objPrinter.DeviceID <> "...." and objPrinter.DeviceID <> "...."then

____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Commenter la réponse de ucfoutu
Messages postés
3
Date d'inscription
mercredi 14 septembre 2011
Dernière intervention
15 septembre 2011
0
Merci
Merci pour cette réponse rapide.Si je comprend bien, je dois mettre "if objPrinter.DeviceID <> "...." and objPrinter.DeviceID <> "...."then " après " For Each objPrinter in colInstalledPrinters " et remplacer les "..." par le nom de chaque imprimante virtuelle.
Je vais essayer cela dès demain matin et je ferai un retour pour confirmer le bon déroulement.
Commenter la réponse de nicolan

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.