vbs désinstaller imprimante réseau

Le
NH
J'aimerais savoir s'il y a une façon de désinstaller toutes les imprimantes
réseau qui sont installées sur un ordinateur par un script vbs.
Présentement, j'ai un script qui désinstalle mais en spécifiant l'imprimante
en question.
Set WshNetwork = CreateObject("WScript.Network")
WshNetwork.RemovePrinterConnection "\serveurimprimante"
J'aimerais ne pas à avoir à spécifier de nom d'imprimante en particulier
mais que seulement les imprimantes réseau soient supprimées et non les
imprimantes locales.
Merci de votre aide.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Méta-MCI \(MVP\)
Le #1054031
Bonsoir !

Est-ce qu'un petit batch comme celui ci-dessous ne suffirait pas ?


@echo off
FOR /F "tokens=*" %%i IN ('wmic printer list instance') DO call :SUB
%%i
goto :EOF

:SUB
rundll32 printui.dll,PrintUIEntry /dl /n "%*"
goto :EOF



Notes :
ça, c'est pour supprimer les imprimantes locales. pour supprimer les
connexions aux imprimantes réseau, il faut remplacer /dl par /dn
Et aussi, cela laissera les pilotes en place. Pour supprimer les
pilotes, c'est /dd

Rappel mnémonique :
/d delete
/dl delete local
/dn delete network
/dd delete driver

Et enfin, sous Vista, on peut utiliser printui.exe à la place de
rundll32 printui.dll,PrintUIEntry



@-salutations

Michel Claveau
Gilles LAURENT [MVP]
Le #1054028
"NH" news:
| J'aimerais savoir s'il y a une façon de désinstaller toutes les
| imprimantes réseau qui sont installées sur un ordinateur par un
| script vbs. Présentement, j'ai un script qui désinstalle mais en
| spécifiant l'imprimante en question.
| Set WshNetwork = CreateObject("WScript.Network")
| WshNetwork.RemovePrinterConnection "\serveurimprimante"
| J'aimerais ne pas à avoir à spécifier de nom d'imprimante en
| particulier mais que seulement les imprimantes réseau soient
| supprimées et non les imprimantes locales.
| Merci de votre aide.

Pour déterminer les imprimantes installées :
Méthode EnumPrinterConnections de l'object WshNetwork :
http://msdn2.microsoft.com/en-us/library/zhds6k80(VS.85).aspx

Note: Cette méthode retourne toutes les imprimantes installées sur le
poste de travail. Il sera donc nécessaire de "filtrer" pour ne
désinstaller que les imprimantes réseau. Pour cela, il suffira de
s'assurer que l'imprimante est sur un port (élément pair de la
collection) TCP/IP et/ou que celle-ci pointe vers un chemin UNC (élément
impair de la collection).

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
PASOBO
Le #1059936
| J'aimerais savoir s'il y a une façon de désinstaller toutes les
| imprimantes réseau qui sont installées sur un ordinateur par un
| script vbs. Présentement, j'ai un script qui désinstalle mais en
| spécifiant l'imprimante en question.
| Set WshNetwork = CreateObject("WScript.Network")
| WshNetwork.RemovePrinterConnection "\serveurimprimante"
| J'aimerais ne pas à avoir à spécifier de nom d'imprimante en
| particulier mais que seulement les imprimantes réseau soient
| supprimées et non les imprimantes locales.
| Merci de votre aide.
Bonjour,


Voici la méthode que j'utilise dans mon script :

Set oNet = CreateObject ("Wscript.Network")
Set oPrt = oNet.EnumPrinterConnections
For i = 0 to oPrt.Count - 1 Step 2
If Left (oPrt.Item(i+1), 1) = "" Then
oNet.RemovePrinterConnection oPrt.Item(i+1)
End If
Next

Ce script énumére toutes les connexionx imprimantes,
Si cette connexion commence par c'est une imprimante réseau,
et je la retire.

J'espère que cela puisse te servir.

Pasobo

NH
Le #1073688
Merci pour toutes vos suggestions.
Celles-ci seront gardées précieusement.
Je vais commencer par la solution de PASOBO.
Merci encore.

"PASOBO"
| J'aimerais savoir s'il y a une façon de désinstaller toutes les
| imprimantes réseau qui sont installées sur un ordinateur par un
| script vbs. Présentement, j'ai un script qui désinstalle mais en
| spécifiant l'imprimante en question.
| Set WshNetwork = CreateObject("WScript.Network")
| WshNetwork.RemovePrinterConnection "\serveurimprimante"
| J'aimerais ne pas à avoir à spécifier de nom d'imprimante en
| particulier mais que seulement les imprimantes réseau soient
| supprimées et non les imprimantes locales.
| Merci de votre aide.
Bonjour,


Voici la méthode que j'utilise dans mon script :

Set oNet = CreateObject ("Wscript.Network")
Set oPrt = oNet.EnumPrinterConnections
For i = 0 to oPrt.Count - 1 Step 2
If Left (oPrt.Item(i+1), 1) = "" Then
oNet.RemovePrinterConnection oPrt.Item(i+1)
End If
Next

Ce script énumére toutes les connexionx imprimantes,
Si cette connexion commence par c'est une imprimante réseau,
et je la retire.

J'espère que cela puisse te servir.

Pasobo




Publicité
Poster une réponse
Anonyme