Script VBS suppression imprimantes avec exeptions

Résolu
nicolan Messages postés 3 Date d'inscription mercredi 14 septembre 2011 Statut Membre Dernière intervention 15 septembre 2011 - 14 sept. 2011 à 17:17
nicolan Messages postés 3 Date d'inscription mercredi 14 septembre 2011 Statut Membre 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?

5 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
14 sept. 2011 à 18:47
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
3
nicolan Messages postés 3 Date d'inscription mercredi 14 septembre 2011 Statut Membre Dernière intervention 15 septembre 2011 1
15 sept. 2011 à 12:04
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!
1
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
14 sept. 2011 à 18:30
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
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
14 sept. 2011 à 18:31
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
nicolan Messages postés 3 Date d'inscription mercredi 14 septembre 2011 Statut Membre Dernière intervention 15 septembre 2011 1
14 sept. 2011 à 19:28
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.
0
Rejoignez-nous