Script VBS suppression imprimantes avec exeptions [Résolu]

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

5 réponses

Répondre au sujet
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 14 sept. 2011 à 18:47
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de ucfoutu
nicolan 3 Messages postés mercredi 14 septembre 2011Date d'inscription 15 septembre 2011 Dernière intervention - 15 sept. 2011 à 12:04
+1
Utile
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
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 14 sept. 2011 à 18:30
0
Utile
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
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 14 sept. 2011 à 18:31
0
Utile
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
nicolan 3 Messages postés mercredi 14 septembre 2011Date d'inscription 15 septembre 2011 Dernière intervention - 14 sept. 2011 à 19:28
0
Utile
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.