OVH Cloud OVH Cloud

Comment supprimer une cnx imprimante sur un poste W2K

2 réponses
Avatar
Fabrice
Voilà j'essaie en vain de supprimer par script .vbs des connexions imprimantes installées sur les postes de mon LAN.

Les imprimantes sont rattachées à un serveur d'impression et s'installent sur mes postes clients en tapant juste ce chemin d'accès : \\FDLIMP01\NOM_IMPRIMANTE.
Chaque imprimante est sur un port IP.

Bon j'ai essayé la méthode avec l'objet WshNetwork et la méthode RemovePrinterConnection pour commencer.

-- Set objNetwork = WScript.CreateObject("WScript.Network")
-- objNetwork.RemovePrinterConnection \\FDLIMP01\NOM_IMPRIMANTE

Mais cela ne fonctionne pas. Il me retourne un message d'erreur suivant :

-- Erreur : Cette connexion réseau n'existe pas.
-- Code : 800708CA
-- Source : WSHNetwork.RemoveNetworkDrive

On se demande pourquoi il me cause de RemoveNetworkDrive alors que je lui ai mis la méthode RemovePrinterConnection :-// . Le probleme viendrait peut être du fait que ce sont des connexions IP d'après ce que j'ai pu voir sur un (seul) forum (étranger).

Bref ensuite j'ai essayé avec WMI :

-- Set objWMIService = GetObject("winmgmts:" _
-- & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
-- Set colInstalledPrinters = objWMIService.ExecQuery ("Select * from Win32_Printer")
-- For Each objPrinter In colInstalledPrinters
-- WScript.Echo objPrinter.DeviceID
-- objPrinter.Delete_
-- Next

Mais après recherche l'instance Win32_Printer n'accepte apparemment pas la méthode "Delete" , avec Windows 2000 en tout cas :-//.

Bref là je sèche, il me resterait éventuellement la base de registres à attaquer mais j'ai un peu peur sachant que cela concerne potentiellement 200 postes...
Toute idée ou suggestion sera la bienvenue.
Et toute solution sera récompensée de toute mon admiration et ma reconnaissance.
Et Dieu sait qu'elle seront grandes toutes les 2.

En vous remerciant par avance.

2 réponses

Avatar
Jérôme Cornier [MS]
Bonjour,

Je vous propose de lister les connexions imprimantes dans un premier temps
pour vérifier qu'elles existent bien et sous quels noms. Le Windows 2000
Scripting Guide fournit un code tout fait :
http://www.microsoft.com/technet/scriptcenter/guide/sas_prn_avmt.mspx

Concernant l'utilisation de WMI, il y a des restrictions avec Windows 2000 /
NT / 98 :
http://www.microsoft.com/technet/scriptcenter/scripts/printing/client/prclvb04.mspx

--
Cordialement,
_________________________________________________________
Jérôme Cornier
Microsoft Services France

"Fabrice" a écrit dans le message de news:
424d6159$0$11960$
Voilà j'essaie en vain de supprimer par script .vbs des connexions
imprimantes installées sur les postes de mon LAN.

Les imprimantes sont rattachées à un serveur d'impression et s'installent
sur mes postes clients en tapant juste ce chemin d'accès :
FDLIMP01NOM_IMPRIMANTE.
Chaque imprimante est sur un port IP.

Bon j'ai essayé la méthode avec l'objet WshNetwork et la méthode
RemovePrinterConnection pour commencer.

-- Set objNetwork = WScript.CreateObject("WScript.Network")
-- objNetwork.RemovePrinterConnection FDLIMP01NOM_IMPRIMANTE

Mais cela ne fonctionne pas. Il me retourne un message d'erreur suivant :

-- Erreur : Cette connexion réseau n'existe pas.
-- Code : 800708CA
-- Source : WSHNetwork.RemoveNetworkDrive

On se demande pourquoi il me cause de RemoveNetworkDrive alors que je lui
ai mis la méthode RemovePrinterConnection :-// . Le probleme viendrait
peut être du fait que ce sont des connexions IP d'après ce que j'ai pu
voir sur un (seul) forum (étranger).

Bref ensuite j'ai essayé avec WMI :

-- Set objWMIService = GetObject("winmgmts:" _
-- & "{impersonationLevel=impersonate}!" & strComputer &
"rootcimv2")
-- Set colInstalledPrinters = objWMIService.ExecQuery ("Select * from
Win32_Printer")
-- For Each objPrinter In colInstalledPrinters
-- WScript.Echo objPrinter.DeviceID
-- objPrinter.Delete_
-- Next

Mais après recherche l'instance Win32_Printer n'accepte apparemment pas la
méthode "Delete" , avec Windows 2000 en tout cas :-//.

Bref là je sèche, il me resterait éventuellement la base de registres à
attaquer mais j'ai un peu peur sachant que cela concerne potentiellement
200 postes...
Toute idée ou suggestion sera la bienvenue.
Et toute solution sera récompensée de toute mon admiration et ma
reconnaissance.
Et Dieu sait qu'elle seront grandes toutes les 2.

En vous remerciant par avance.







Avatar
Fabrice
Mci pour votre réponse !

Le script tout fait je l'avais effectivement déjà récupéré.
Malheureusement il ne fonctionne pas sur mes configurations.
Aucun message d'erreur et surtout aucune suppression.
D'après un forumeur anglais qui a eu le même problème cela ne marcherait pas avec les cnx sur des imprimantes réseaux déclarées sur Port IP.

Concernant WMI effectivement XP et 2003 sont beaucoup mieux lotis que Windows 2000 côté fonctionnalités. J'ai perdu beaucoup de temps pour découvrir finalement que de nombreuses fonctions ne tournaient pas sur W2K ! Mais commençant juste à découvrir WMI je me disais qu'il existait une fonctionnalité mais je n'ai rien trouvé bizarrement.

Finalement j'ai solutionné mon problème en passant par la commande suivante :

Set oShell = CreateObject("WScript.Shell")
sRun = "rundll32 printui.dll,PrintUIEntry /dn /q /n" & sImprimante
bRetour = oShell.Run(sRun , 0 , True)

Merci pour votre aide en tout cas !
Cordialement.

"Jérôme Cornier [MS]" a écrit dans le message news:
Bonjour,

Je vous propose de lister les connexions imprimantes dans un premier temps
pour vérifier qu'elles existent bien et sous quels noms. Le Windows 2000
Scripting Guide fournit un code tout fait :
http://www.microsoft.com/technet/scriptcenter/guide/sas_prn_avmt.mspx

Concernant l'utilisation de WMI, il y a des restrictions avec Windows 2000 /
NT / 98 :
http://www.microsoft.com/technet/scriptcenter/scripts/printing/client/prclvb04.mspx

--
Cordialement,
_________________________________________________________
Jérôme Cornier
Microsoft Services France

"Fabrice" a écrit dans le message de news:
424d6159$0$11960$
Voilà j'essaie en vain de supprimer par script .vbs des connexions
imprimantes installées sur les postes de mon LAN.

Les imprimantes sont rattachées à un serveur d'impression et s'installent
sur mes postes clients en tapant juste ce chemin d'accès :
FDLIMP01NOM_IMPRIMANTE.
Chaque imprimante est sur un port IP.

Bon j'ai essayé la méthode avec l'objet WshNetwork et la méthode
RemovePrinterConnection pour commencer.

-- Set objNetwork = WScript.CreateObject("WScript.Network")
-- objNetwork.RemovePrinterConnection FDLIMP01NOM_IMPRIMANTE

Mais cela ne fonctionne pas. Il me retourne un message d'erreur suivant :

-- Erreur : Cette connexion réseau n'existe pas.
-- Code : 800708CA
-- Source : WSHNetwork.RemoveNetworkDrive

On se demande pourquoi il me cause de RemoveNetworkDrive alors que je lui
ai mis la méthode RemovePrinterConnection :-// . Le probleme viendrait
peut être du fait que ce sont des connexions IP d'après ce que j'ai pu
voir sur un (seul) forum (étranger).

Bref ensuite j'ai essayé avec WMI :

-- Set objWMIService = GetObject("winmgmts:" _
-- & "{impersonationLevel=impersonate}!" & strComputer &
"rootcimv2")
-- Set colInstalledPrinters = objWMIService.ExecQuery ("Select * from
Win32_Printer")
-- For Each objPrinter In colInstalledPrinters
-- WScript.Echo objPrinter.DeviceID
-- objPrinter.Delete_
-- Next

Mais après recherche l'instance Win32_Printer n'accepte apparemment pas la
méthode "Delete" , avec Windows 2000 en tout cas :-//.

Bref là je sèche, il me resterait éventuellement la base de registres à
attaquer mais j'ai un peu peur sachant que cela concerne potentiellement
200 postes...
Toute idée ou suggestion sera la bienvenue.
Et toute solution sera récompensée de toute mon admiration et ma
reconnaissance.
Et Dieu sait qu'elle seront grandes toutes les 2.

En vous remerciant par avance.