Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1064 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  ! UP ! VBScript Changer une imprimante par défaut grâce à son IP

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

! UP ! VBScript Changer une imprimante par défaut grâce à son IP

n°2277311
drayaina
Posté le 09-03-2016 à 16:11:28  profilanswer
 

Salutations j'aimerai avoir votre assistance!!
 
Actuellement j'essai de faire un script vbs avec ce que je trouve à droite et à gauche pour pouvoir comme cité dans le titre, de changer une imprimante par défaut grâce à son adresse IP.
La société dans laquelle je suis en stage souhaite que je mettes en place un serveur d'impression et que les imprimantes déjà par défaut sur les postes
restent après la mise en place du serveur d'impression.
Mon problème étant que mon serveur d'impression est opérationnel avec toutes les imprimantes réseaux mais je voudrais automatiser le déploiement grâce à un script qui aurait pourrait changer  
l'imprimante par défaut par la même mais qui passe par le serveur d'impression.
 
J'ai eu une idée de début de script mais plusieurs problèmes survient  :ouch:  

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. 'Définir une imprimante comme imprimante par défaut :
  7. Dim net
  8. Set net = CreateObject("WScript.Network" )
  9. For Each objPrinters in colInstalledPrinters
  10. Next
  11. if objPrinter.PortName = "X.X.X.1" AND objPrinter.Default = true then
  12. net.SetDefaultPrinter "\\SERVEURIMPRESSION\NOMIMPRIMANTE"
  13. Elseif objPrinter.PortName = "X.X.X.2" AND objPrinter.Default = true then
  14. net.SetDefaultPrinter "\\SERVEURIMPRESSION\NOMIMPRIMANTE2"
  15. ....
  16. Else objPrinter.PortName = "X.X.X.X" AND objPrinter.Default = true then
  17. net.SetDefaultPrinter "\\SERVEURIMPRESSION\NOMIMPRIMANTEX"
  18. End If


 
 
Merci pour vos solutions !!


Message édité par drayaina le 25-03-2016 à 11:03:44
mood
Publicité
Posté le 09-03-2016 à 16:11:28  profilanswer
 

n°2277380
Chelmi18
Posté le 10-03-2016 à 08:41:43  profilanswer
 

Salut,
 
Et quels sont les problèmes rencontrés ?
 
Parce que sans problème expliqué, point de solution à attendre ! :pt1cable:

n°2277384
drayaina
Posté le 10-03-2016 à 09:05:47  profilanswer
 

Salut :)  
Le problème que je rencontre actuellement c'est une erreur à la ligne 16 (if objPrinter.PortName = "X.X.X.1" AND objPrinter.Default = true then) qui me dit :
erreur : Orbjet requis :'objPrinter'
Code: 800A01A8
J'ai modifier la ligne 12 en retirant le s de Printer mais ça ne change pas grand chose :/

n°2277401
Chelmi18
Posté le 10-03-2016 à 13:16:20  profilanswer
 

Ton Next est mal placé !
 
C'est l'instruction de fin du For Each et il est juste après, donc les lignes à partir de if objPrinter sont hors du For ... Next.
 
Déplace ton instruction Next juste après le End if et ca devrait mieux marcher.
 
Par la même occasion, pense à mettre ton code entre balises cpp/cpp ce sera plus lisible.

n°2277412
drayaina
Posté le 10-03-2016 à 14:19:04  profilanswer
 

Yeeey ça marche merci !! Mais maintenant il me dit à la ligne 26 "Fin d'instruction attendue" si tu peux encore m'aider sur ce coup... :3


Message édité par drayaina le 10-03-2016 à 14:30:14
n°2277425
drayaina
Posté le 10-03-2016 à 15:17:06  profilanswer
 

Petite modification apporté au script mais un problème reste encore pour m'embêter :fou:  Il m'indique qu'il y a un 'Next' qui est attendu :/
 

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. 'Définir une imprimante comme imprimante par défaut :
  7. Dim net
  8. Set net = CreateObject("WScript.Network" )
  9. For Each objPrinters in colInstalledPrinters
  10. if objPrinters.PortName = "X.X.X.1" AND objPrinters.Default = true then
  11.  net.SetDefaultPrinter "\\SERVEURIMPRESSION\NOMIMPRIMANTE1" 
  12.  Elseif objPrinters.PortName = "X.X.X.2" AND objPrinters.Default = true then
  13.   net.SetDefaultPrinter "\\SERVEURIMPRESSION\NOMIMPRIMANTE2"
  14.  End If
  15.  Else
  16.  If objPrinters.PortName = "X.X.X.X" AND objPrinters.Default = true then
  17.   net.SetDefaultPrinter "\\SERVEURIMPRESSION\NOMIMPRIMANTEX"
  18.  End If
  19. End If
  20. Next


Message édité par drayaina le 10-03-2016 à 15:18:11
n°2277429
slr56
Tout problème a sa solution.
Posté le 10-03-2016 à 15:39:14  profilanswer
 

Bonjour,
 
Le "Else" à ligne 20 ne sert à rien, tout comme le "End If" ligne 24.


---------------
Configurations type du moment : https://forum.hardware.fr/hfr/Hardw [...] 1331_1.htm  https://www.jouannetphotographe.com
n°2277430
drayaina
Posté le 10-03-2016 à 15:43:22  profilanswer
 

Oui en fait je viens de voir que j'ai mis des End If après chaque Elseif et du coup cela me gênais pour la suite, après j'ai laissé le Else à la fin mais ça fonctionne quand même donc je vais le laisser :p Merci !

n°2277462
Chelmi18
Posté le 11-03-2016 à 08:18:47  profilanswer
 

:hello:

n°2278365
drayaina
Posté le 25-03-2016 à 11:01:24  profilanswer
 

:bounce:  
Jourbon ! Petit up pour un petit problème perçu aujourd'hui...
Je m'explique ... Le script pour changer l'imprimante par défaut fonctionne à merveille sauf que lorsque je redémarre le poste, l'imprimante par défaut revient à l'imprimante initiale... :kaola:  
J'ai un second script qui permettrait de supprimer les imprimantes hors serveur d'impression mais en faisant mon jeu d'essai je me suis rendu compte que pour les postes sur lesquelles il y a deux utilisateurs les imprimantes par défaut changées ne restent pas appliquée.... :pfff:  
 
Dans mon jeu d'essai, deux utilisateurs utilisant le même postes avec deux sessions différentes ainsi que des imprimantes par défaut différentes doit être appliqué.
 
Le problème étant que lorsque je me connecte sur la première session, le script change bien l'imprimante par défaut... et lorsque je change de session le script s'applique aussi... Donc là tout va pour le mieux... C'est après que ça se corse :/ lorsque je retourne sur la première session l'imprimante par défaut s'est "réinitialisé" en celle que j'avais avant que le script ne s'applique.... et c'est pareil pour l'autre session... Bon après le script s'applique derrière mais bon c'est pas top pour mon second script qui doit supprimer toutes les imprimantes hors serveur d'impression qui sont présente sur le poste car après la seconde session n'aura plus l'imprimante par défaut initiale pour la basculer sur le serveur d'impression et elle va affecter la première imprimante venue .... :heink:  
 
J'aimerais que l' imprimante définit en imprimante par défaut reste active POUR TOUJOURS MWAHAHAH :pt1cable:  ... Hum hum ... Enfin qu'elle reste active malgré le changement d'utilisateurs.
 
Merci pour vos lumières !


Message édité par drayaina le 25-03-2016 à 11:02:39

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  ! UP ! VBScript Changer une imprimante par défaut grâce à son IP

 

Sujets relatifs
Comparaison d'adresse IPdétection d'IP en php
Changer la valeur d'un champs par choix multipleVBScript : Conversion Encodage ISO vers UTF-8
Changer le champs d'un enregistrement d'une table[resulu]Changer de répertoire courant sans shell sur Gnu/Linux.
[RESOLU] l'exploration d'une base Openldap en vbscriptChanger couleur bouton selon variable
[Résolu] Trie adresse IPchanger le nom table dans ma page
Plus de sujets relatifs à : ! UP ! VBScript Changer une imprimante par défaut grâce à son IP


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR