Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

vbs désinstaller imprimante réseau

4 réponses
Avatar
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 "\\serveur\imprimante"
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.

4 réponses

Avatar
Méta-MCI \(MVP\)
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
Avatar
Gilles LAURENT [MVP]
"NH" a écrit dans le message de
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
Avatar
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

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

"PASOBO" a écrit dans le message de groupe de discussion :

| 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