Pb de script vbs pour connexion imprimante en local

Pb de script vbs pour connexion imprimante en local - Windows & Software

Marsh Posté le 05-06-2006 à 18:02:43    

Bonjour à tous!
 
J'espère qu'une personne charitable peut m'éclairer dans mon dilème..... :??:  
 
Voilà,
 
J'ais crée un script en vbs pour la connection de différents lecteurs et imprimantes réseaux selon l'apartenance à un groupe. Pour ce cas pas de problème, mais là où je bloque c'est que certains postes on leur propre imprimante local et je doit les mettre en défaut.
Donc ce que je faits je met en partage une des imprimantes et dans le scripte j'explique que si le non poste est X par emple je le connecte sur l'imprimante \\X\nom-imprimante, et là IMPOSSIBLE
Alors que si je fait la demande de connexion du poste Y sur l'imprimante \\X\nom-imprimante ca marche!
 
Voici le bout de code:
 

Code :
  1.   Select Case UserGroup.name
  2. Case "population"
  3. 'IMPRIMANTE RESEAU
  4.   WshNetwork.AddWindowsPrinterConnection "\\SERVEUR\IMP-ACCUEIL-N&B"
  5.   WshNetwork.AddWindowsPrinterConnection "\\SERVEUR\IMP-ETATCIVIL-N&B"
  6.   WshNetwork.SetDefaultPrinter "\\SERVEUR\IMP-ACCUEIL-N&B"
  7. Dim oNetwork, sprintpath, nomposte
  8. 'recup nom du poste
  9. Set oNetwork = CreateObject("WScript.Network" )
  10. nomposte = oNetwork.ComputerName
  11. 'CONNEXION IMPRIMANTE LOCAL LES IMPRIMANTES MIS EN PARTAGE
  12.   Select case nomposte
  13.   case "POPU02"
  14.   sprintpath = "\\POPU02\impopu"
  15.   WshNetwork.AddWindowsPrinterConnection sprintpath
  16.   WshNetwork.SetDefaultPrinter "\\POPU02\impopu"
  17.   case "POPU06"
  18.   'sprintpath = "\\POPU06\impopu-election"
  19.   'WshNetwork.AddWindowsPrinterConnection sprintpath
  20.   WshNetwork.SetDefaultPrinter "\\impopu-election"
  21.   End Select


 
Je suis débutante, alors merci de votre aide! C'est super urgent!!! :jap:


Message édité par scouzi le 05-06-2006 à 21:13:43
Reply

Marsh Posté le 05-06-2006 à 18:02:43   

Reply

Marsh Posté le 05-06-2006 à 19:21:27    

Personne ne peut m'aider :-(

Reply

Marsh Posté le 05-06-2006 à 22:13:22    

Je t'ai modifié ton script pour avoir des instructions de debogage, j'ai aussi corrigé les petites erreurs que je voyais ou code pas très propre.
 


   bDebug = True
   Select Case LCase(UserGroup.Name)
      Case "population"  
         If bDebug Then
            MsgBox "Case Population"
         End If
         Dim oNetwork, sPrintPath, sNomPoste
 
         ' IMPRIMANTE RESEAU
         WshNetwork.AddWindowsPrinterConnection "\\SERVEUR\IMP-ACCUEIL-N&B"
         WshNetwork.AddWindowsPrinterConnection "\\SERVEUR\IMP-ETATCIVIL-N&B"
         WshNetwork.SetDefaultPrinter "\\SERVEUR\IMP-ACCUEIL-N&B"
         If bDebug Then
            MsgBox "Case Population : Imprimante Reseau"
         End If
 
         ' RECUPERATION NOM DU POSTE
         Set oNetwork = CreateObject("WScript.Network" )  
         sNomPoste = oNetwork.ComputerName
         If bDebug Then
            MsgBox "Case Population : Nom du poste : " & sNomPoste
         End If
 
         ' CONNEXION IMPRIMANTE LOCALE DES IMPRIMANTES MIS EN PARTAGE
         Select Case sNomPoste
            Case "POPU02"
               sPrintPath = "\\POPU02\impopu"
               If bDebug Then
                  MsgBox "Case Population : Case POPU02 : " & sPrintPath
               End If
            Case "POPU06"
               sPrintPath = "\\POPU06\impopu-election"
               If bDebug Then
                  MsgBox "Case Population : Case POPU06 : " & sPrintPath
               End If
         End Select
         
         If sPrintPath <> "" Then
            WshNetwork.AddWindowsPrinterConnection sPrintPath
            WshNetwork.SetDefaultPrinter sPrintPath
            If bDebug Then
               MsgBox "Case Population : sPrintPath : " & sPrintPath
            End If
         End If
End Select


 
Par contre ton code est illogique dans le sens où tu essaies de connecter via un partage réseau une imprimante qui est déjà disponible localement. La logique aurait été que tu la connectes uniquement si tu es sur une machine autre que la machine locale.


Message édité par Requin le 05-06-2006 à 22:16:20
Reply

Marsh Posté le 06-06-2006 à 14:06:33    

Je te remerci, j'ai pas encore testé...
 
Pour ta question, je t'explique: nous avons des imprimantes réseaux, où je dois les connecters selon l'appartenance d'un groupe donnée et mettre par défaut l'une des imprimantes en réseau à l'ouverture de la session de l'utilisateur, seulement un service, par leur demande, préfère mettre leur imprimante local par défaut.... :fou:  
Bref, comme je suis débutante en vbs et je ne sais comment faire, j'ai donc mis en partage leur imprimante local et dès que le non poste est est reconnu je lui demande de mettre par défaut l'imprimante local...
 
Je crois qu'on peut identifier l'imprimante local par son port LPT1 mais je ne sais pas...de plus un des postes a une imprimante par port usb...
 
bref voilà, pouvez vous m'en dire plus? Peut etre qu'il y une autre manière plus rapide sans prise de tête


Message édité par scouzi le 06-06-2006 à 14:08:54
Reply

Marsh Posté le 06-06-2006 à 16:19:39    

Regarde ici pour comment faire avec des imprimantes locales :
http://www.bellamyjc.org/fr/vbsdow [...] ultprinter
 
Il faut en effet passer le nom du port.

Reply

Marsh Posté le 06-06-2006 à 17:09:52    

Hello,
 
Si l'imprimante est locale, tu n'as pas besoin de la connecter, elle est surement déjà installée... Donc tu n'as pas besoin de préciser le port.
 
Il te suffit juste de la mettre par défaut, et là, puisqu'elle est locale, il te faut juste préciser son nom... Quel soie usb ou parallèle n'importe peu.

Reply

Marsh Posté le 06-06-2006 à 17:12:02    

j'ai testé le debogage que tu as proposé et, il vrai que c'est bien utile :-)
Conclusion: il reconnais toutes les variables donc c'est ok mais.....apparament il ne veut exécuter la connexion et la mise par défault....c'est incroyable car si tu ajoute une nouvelle imprimante sur par exemple POPU06, manuellement, imp réseau et tu choisis forcement l'imprimante du poste en question et tu l'as met en défaut, là sa fonctionne
Bon, je vais regarder le lien et encore MERCI Requin

Reply

Marsh Posté le 06-06-2006 à 17:15:35    

Donc si j'ai bien compris je dois simplement mettre
 

Code :
  1. WshNetwork.SetDefaultPrinter impopu-election

Message cité 1 fois
Message édité par scouzi le 06-06-2006 à 17:16:41
Reply

Marsh Posté le 06-06-2006 à 17:18:11    

Ce qui donne :
   

Citation :

bDebug = True
   Select Case LCase(UserGroup.Name)
      Case "population"
         If bDebug Then
            MsgBox "Case Population"
         End If
         Dim oNetwork, sPrintPath, sNomPoste
 
         ' IMPRIMANTE RESEAU
         WshNetwork.AddWindowsPrinterConnection "\\SERVEUR\IMP-ACCUEIL-N&B"
         WshNetwork.AddWindowsPrinterConnection "\\SERVEUR\IMP-ETATCIVIL-N&B"
         WshNetwork.SetDefaultPrinter "\\SERVEUR\IMP-ACCUEIL-N&B"
         If bDebug Then
            MsgBox "Case Population : Imprimante Reseau"
         End If
 
         ' RECUPERATION NOM DU POSTE
         Set oNetwork = CreateObject("WScript.Network" )  
         sNomPoste = oNetwork.ComputerName
         If bDebug Then
            MsgBox "Case Population : Nom du poste : " & sNomPoste
         End If
 
         ' CONNEXION IMPRIMANTE LOCALE DES IMPRIMANTES MIS EN PARTAGE
         Select Case sNomPoste
            Case "POPU02"
               WshNetwork.SetDefaultPrinter "impopu"

               If bDebug Then
                  MsgBox "Case Population : Case POPU02 : impopu par défaut"
               End If
            Case "POPU06"
               WshNetwork.SetDefaultPrinter "impopu-election"

               If bDebug Then
                  MsgBox "Case Population : Case POPU06 : impopu-election par défaut"
               End If
            CASE ELSE
               WshNetwork.AddWindowsPrinterConnection sPrintPath
               WshNetwork.SetDefaultPrinter sPrintPath

               If bDebug Then
                  MsgBox "Case Population : Case Else : sPrintPath : " & sPrintPath
               End If
         End Select
End Select


Message édité par helvetik le 06-06-2006 à 17:20:45
Reply

Marsh Posté le 06-06-2006 à 17:19:15    

scouzi a écrit :

Donc si j'ai bien compris je dois simplement mettre
 

Code :
  1. WshNetwork.SetDefaultPrinter impopu-election



 
Exact...

Reply

Marsh Posté le 06-06-2006 à 17:19:15   

Reply

Marsh Posté le 06-06-2006 à 17:30:46    

ok je test

Reply

Marsh Posté le 06-06-2006 à 17:59:38    

L'obstacle est résolut YAOU!!!!
Un GRAND Merci.
Conclusion: y a pas de raison de mettre l'imprimante local en partage, mettre tout simplement son nom!
Thanks!
Je vous embrasse

Reply

Marsh Posté le 06-06-2006 à 21:43:07    

:hello:

Reply

Sujets relatifs:

Leave a Replay

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