Script de déconnexion imprimante réseau

Script de déconnexion imprimante réseau - Win NT/2K/XP - Windows & Software

Marsh Posté le 06-04-2004 à 09:48:16    

Bonjour,
 
Je souhaiterais faire un script de déconnexion sur certaines iomprimantes de mon réseau.
Pour cela, j'utilise Wshnetwork se qui donne :  
 

Code :
  1. Set WshNetwork = CreateObject("WScript.Network" )
  2. WshNetwork.RemovePrinterConnection "\\SERVEUR2\DankaO"


 
Cette imprimante est bien presente sur mon post, mais le scripts me fait une erreur du type :
Erreur : "Cette connexion réseau n'existe pas"
Source : WSHNetwork.RemoveNetworkDrive
 
Mon poste client a bien acces au serveur2, y a t'il un autre moyen de la deconnecter, par exemple en utilisant le nom de l'imprimante sur le poste client?
 
Merci de votre aide.
 
Edit : réseaux sous win 2000.


Message édité par GENIUS999 le 06-04-2004 à 09:49:26
Reply

Marsh Posté le 06-04-2004 à 09:48:16   

Reply

Marsh Posté le 06-04-2004 à 13:23:05    

Genius999 a écrit :

Bonjour,
Je souhaiterais faire un script de déconnexion sur certaines iomprimantes de mon réseau.
...


t'a du te planter dans le nom, essaye ce script pour avoir la liste des imprimantes connectées (source technet).

Code :
  1. strComputer = "."
  2. Set objWMIService = GetObject("winmgmts:" _
  3.     & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2" )
  4. Set colInstalledPrinters =  objWMIService.ExecQuery _
  5.     ("Select * from Win32_Printer" )
  6. For Each objPrinter in colInstalledPrinters
  7.     Wscript.Echo "Name: " & objPrinter.Name
  8. Next

Reply

Marsh Posté le 06-04-2004 à 15:45:52    

Non, je ne me suis pas trompé de nom, puisque mon script fonctionnent sur certains postes et plante sur d'autres...
En essayant avec les noms que me remontent ton script, ca reviens au meme... c'est pour ca que je cherchais un autre moyen de deconnection.
 
Merci toutefois pour ton aide.

Reply

Marsh Posté le 06-04-2004 à 15:56:08    

Et si tu remplaces le nom de la machine par son IP ?

Reply

Marsh Posté le 06-04-2004 à 16:15:07    

Gaard28 a écrit :

Et si tu remplaces le nom de la machine par son IP ?
 


 
deja essayé et c'est pas mieu...  :sweat:

Reply

Marsh Posté le 06-04-2004 à 17:14:22    

Citation :

y a t'il un autre moyen de la deconnecter, par exemple en utilisant le nom de l'imprimante sur le poste client?


 
Dixit M$:

  • The RemovePrinterConnection method removes both Windows and MS-DOS based printer connections. If the printer was connected using the method AddPrinterConnection, strName must be the printer's local name.  
  • If the printer was connected using the AddWindowsPrinterConnection method or was added manually (using the Add Printer wizard), then strName must be the printer's UNC name.

...

  • The AddPrinterConnection method adds a network printer to an MS-DOS printer port, such as LPT1. You cannot use this method to add a remote Windows-based printer connection. To add a remote Windows-based printer connection, use the AddWindowsPrinterConnection method.


Donc si j'ai bien compris, tu dois utiliser l'UNC.
 
Essaye de forcer la déconnection en utilisant l'option de forçage (connecté ou non):
WshNetwork.RemovePrinterConnection "\\SERVEUR2\DankaO", True
avec éventuellement, une mise à jour dans le profil user, par un second True
WshNetwork.RemovePrinterConnection "\\SERVEUR2\DankaO", True, True
 
 
Comme le soulignait knives, attention au nom (casse)!
 
Un exemple:
'Suppose une imp HP 4L sur SvrImp2
MyImpPath="\\SvrImp2\HP LaserJet 4L" 'Attention à la casse
 
Set WshNetwork = WScript.CreateObject("WScript.Network" )
Set MyPrinters = WshNetwork.EnumPrinterConnections
 
For i = 0 to MyPrinters.Count - 1 Step 2
        'Pour essais
        Wscript.Echo "Port= " & Myprinters.item(i) & _
                     Chr(10) & "Nom= " & MyPrinters.item(i+1)
        'Fin essais
        If Myprinters.item(i+1)=MyImpPath then
        'MyImpPath est correct(remove en comment pour essais)
  'WshNetwork.RemovePrinterConnection MyPrinters.Item(i+1), True, True
  WScript.Echo "L'imprimante '" & Myprinters.item(i+1) & _
  "' sur le Port '" & Myprinters.Item(i) & "' a été déconnectée!"
 end if
Next
 
...
 

Reply

Marsh Posté le 06-04-2004 à 17:26:39    

Genius999 a écrit :

puisque mon script fonctionnent sur certains postes et plante sur d'autres...

tu avais omis de nous devoiler ce leger detail :o

Reply

Marsh Posté le 07-04-2004 à 08:52:59    

knives a écrit :

tu avais omis de nous devoiler ce leger detail :o


 
Désolé...  :whistle:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed