| |||||
| Dernière réponse | |
|---|---|
| Sujet : 250 imprimantes à creer | |
| saez_aoe | Quelques explications:
-Tout d'abord, je l'ai fait sur un windows 2000 server, donc je n'ai pas testé sur d'autres OS, il se peut que ca plante. - Le langage est Autoit V3, un coup de google et vous trouverez facilement, il est tres facile à aborder. - on peut le faire pour plusieurs client ( parametré dans le fichier ConfigImp.cfg - Le format que l'on utilise est le Format Formulair, à remplacer par le votre ou à supprimer si vous voulez utiliser A4 (mais en principe, il faut un formulaire spécial) - je vous recommende Crimson Editor et refaire les alignements pour y voir plus clair. - Il y a beaucoup de Controle sur le nom d'imprimante, vous pouvez le supprimer mais il est plus sécurisant lorsque l'on a une grande liste à créer d'éviter les erreur - étant donné que j'ai modifié quelques nom poir le publier, il est preferable de le tester sur topus les parametres et controles que j'ai fait |
| Aperçu |
|---|
| Vue Rapide de la discussion |
|---|
| saez_aoe | Quelques explications:
-Tout d'abord, je l'ai fait sur un windows 2000 server, donc je n'ai pas testé sur d'autres OS, il se peut que ca plante. - Le langage est Autoit V3, un coup de google et vous trouverez facilement, il est tres facile à aborder. - on peut le faire pour plusieurs client ( parametré dans le fichier ConfigImp.cfg - Le format que l'on utilise est le Format Formulair, à remplacer par le votre ou à supprimer si vous voulez utiliser A4 (mais en principe, il faut un formulaire spécial) - je vous recommende Crimson Editor et refaire les alignements pour y voir plus clair. - Il y a beaucoup de Controle sur le nom d'imprimante, vous pouvez le supprimer mais il est plus sécurisant lorsque l'on a une grande liste à créer d'éviter les erreur - étant donné que j'ai modifié quelques nom poir le publier, il est preferable de le tester sur topus les parametres et controles que j'ai fait |
| Pabz | Merci pour le retour, je suis sûr que ca pourra être utile a pas mal de monde |
| saez_aoe | Voici le fichier de conf :
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;Ce fichier Doit etre placé dans le meme repertoire que le script d'execution ;Syntaxe : ; ;[Type de Parametre] ; ;#?Parametre1 ;Valeur1 ; ;#?Parametre2 ;valeur2 ; ;[EndType de Parametre] [Cli] #?client1 10.10.10.1 #?client2 10.10.10.1 #?Test Z.Z.Z.Z [EndCli] [FormatCli] #?client1 1A00Z000 #?client2 2A00Z000 [EndFormatCli] |
| saez_aoe | Voici le scipt :
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;Options opt( "SendKeyDelay", 20) ;*********************************Debut******************************* $recommencer=1 while $recommencer == 1 ;permet de faire plusieurs boucles ;Chargement du fichier ConfigImp.cfg $file = FileOpen( @ScriptDir &"\ConfigImp.cfg", 0) ; Verification de l'existance du fichier et verification si l'ouverture s'est bien passée If $file = -1 Then MsgBox(0, "Error", "Le fichier "& @CRLF & @ScriptDir &"\ConfigImp.cfg"& @CRLF &"est introuvable. ou n'a pas pu etre ouvert" ) Exit EndIf ; On va demander le client visée parametre [Mapping] $client="void" ; On lit ligne par ligne tant que EOF n'est pas trouvé $line="0" ;On se place sur [Cli] While not ($line = "[Cli]" ) $line = FileReadLine($file) If @error = -1 Then ExitLoop Wend ;On charge Parametre par parametre While not ($line = "[EndCli]" ) $line = FileReadLine($file) If @error = -1 Then ExitLoop If StringLeft($line, 2) == "#?" Then $answer=MsgBox(1,"Quelle client?",StringMid ( $line, 3 )) If $answer = 1 Then $client = StringMid ( $line, 3 ) ExitLoop EndIf EndIf Wend ;Test si le parametre a été selectionné If $client=="void" Then MsgBox(0, "Error", "Pas de reponse" ) Exit EndIf ; On charge le serveur Cli While not ($line = "#?"&$client) $line = FileReadLine($file) If @error = -1 Then ExitLoop Wend If $line = "#?"&$client Then $AdrIP = FileReadLine($file) EndIf FileClose($file) ;fermeture du fichier de configuration ;Test Pour voir si on ouvre ou pas une nouvelle fenetre imprimante WinActivate("Imprimantes" ) winwaitactive("Imprimantes","",1) sleep(1000) If not Winactive ("Imprimantes" ) Then ;debut de l'ouverture de la fenetre imprimantes run ("control" ) ;attente de la fenetre Panneau de configuration winwaitactive("Panneau de configuration" ) send("imprimantes" ) ;attente de la selection winwaitactive("Panneau de configuration","imprimantes locales ou en réseau" ) send("{ENTER}" ) sleep(100) ;fin de l'ouverture de le fenetre imprimantes EndIf ;attente de la fenetre imprimante winwaitactive("Imprimantes" ) send ("ajout d'imprimante" ) sleep(100) winwaitactive("Imprimantes","1 objet(s) sélectionné(s)" ) send ("{ENTER}" ) sleep(100) ;Attente de la fenetre d'assistant winwaitactive ("Assistant Ajout d'imprimante" ) ;On va demander le nom d'imprimante $decision = 4 ;ce nombre correspond à la touche RETRY While $decision == 4 ;ouverture du fichier de configuration $file = FileOpen(@ScriptDir &"\ConfigImp.cfg", 0) ; Test de l'ouverture du fichier If $file = -1 Then MsgBox(0, "Error", "Le fichier "& @CRLF & @ScriptDir &"\ConfigImp.cfg"& @CRLF &"est introuvable. ou n'a pas pu etre ouvert" ) Exit EndIf ; On lit ligne par ligne $line="0" $Format="void" ;On se positionne sur le Format Cli While not ($line = "[FormatCli]" ) $line = FileReadLine($file) If @error = -1 Then ExitLoop Wend ;On recherche le Format pour le client Selectionnée While not ($line = "[EndFormatCli]" ) $line = FileReadLine($file) If @error = -1 Then ExitLoop If $line == "#?"&$client Then $line = FileReadLine($file) $Format = $line EndIf WEnd ;Fermeture du fichier de config FileClose($file) ;Test du Format If $Format == "void" Then ;Cas ou le format n'est pas renseigné $IMP= inputbox("installation "&$client, "entrez le nom d'imprimate" ) $cause = "Le format n'est pas supporté!" $Temp = "Erreur" else ;Cas ou le format est renseigné $IMP= inputbox("installation "&$client, "entrez le nom d'imprimate"& @CRLF &"Format : "&$Format& @CRLF &"Serveur Cli "&$client&" : "&$AdrIP,$Format) sleep(100) $i = 1 $Temp = "void" ;Test du Format If not(StringLen($IMP) == StringLen($Format)) Then ;Longueur du nom doit etre égale à la longueur du format $Temp = "Erreur" $cause = "La longueur du nom de l'imprimante est different de celui du Format" EndIf While $i<StringLen($Format) and not($Temp == "Erreur" ) If StringMid($IMP, $i, 1) == StringMid ( $Format, $i, 1) Then ;Les caractere doivent etre égaux (sauf cas suivant) ;OK Else If StringMid ( $Format, $i, 1) == 0 Then ;Si le caractere est "0", on peut mettre ce que l'on veut ;OK Else $Temp="Erreur" $cause= "Lettre n°"&$i&" n'entre pas dans le cadre du format "&$Format EndIf EndIf $i = $i+1 Wend EndIf ;Test du resultat If $Temp == "Erreur" Then $decision=MsgBox(18,"Erreur","Format Non cohérent "& @CRLF &"avec le nom de l'imprimante"& @CRLF &"IMP :"&$IMP& @CRLF &"Cause : "& @CRLF &$cause) Else $decision = 5 ;Correspond à Continuer EndIf If $decision == 3 Then ;Correspond à Abandonner Exit EndIf If $decision == 5 Then ;Correspond à Continuer ExitLoop EndIf Wend ;Attente de la fenetre d'assistant winwaitactive ("Assistant Ajout d'imprimante" ) send ("!s" ) sleep(100) send ("!s" ) sleep(100) send ("!c" ) sleep(100) send ("s" ) sleep(100) send ("{ENTER}" ) sleep(100) ;attente de la fenetre d'ajout de port winwaitactive("Assistant Ajout de port imprimante TCP/IP standard" ) send ("!s" ) sleep(100) send ("!d" ) sleep(1000) Send ($AdrIP) sleep(100) send ("{TAB}" ) sleep(100) send ($IMP) sleep(100) send ("!s" ) sleep(100) ;attente de la fenetre d'ajout de port winwaitactive("Assistant Ajout de port imprimante TCP/IP standard","Type de périphérique" ) send ("!t" ) sleep(100) send ("Generic Network Card" ) sleep(100) send ("!e" ) sleep(100) send ("!r" ) sleep(100) send ("!l" ) sleep(100) send ("!f" ) sleep(100) Send ($IMP) sleep(100) send ("!t" ) sleep(100) send ("{ENTER}" ) sleep(100) send ("!s" ) sleep(100) send ("{ENTER}" ) sleep(100) ;attente de la fenetre suivante winwaitactive("Assistant Ajout d'imprimante","Sélectionnez le fabricant et le modèle de votre imprimante" ) send ("!t" ) sleep(100) send ("h" ) sleep(2000) send ("generic" ) sleep(100) send ("!i" ) sleep(100) send ("generic / text only" ) sleep(100) send ("!s" ) sleep(100) ;attente de la fenetre suivante winwaitactive("Assistant Ajout d'imprimante","Voulez-vous conserver le pilote existant" ) send ("!c" ) sleep(100) send ("!s" ) sleep(100) ;attente de la fenetre suivante winwaitactive("Assistant Ajout d'imprimante","Voulez-vous que vos programmes Windows utilisent " ) send ("!m" ) sleep(100) send ($IMP) sleep(100) send ("!N" ) sleep(100) send ("!s" ) sleep(100) ;attente de la fenetre suivante winwaitactive("Assistant Ajout d'imprimante","Indiquez si vous voulez que cette imprimante" ) send ("!N" ) sleep(100) send ("!s" ) sleep(100) ;attente de la fenetre suivante winwaitactive("Assistant Ajout d'imprimante","Voulez-vous imprimer une page de test ?" ) send ("!N" ) sleep(100) send ("!s" ) sleep(100) send("{ENTER}" ) ;attente de la selection WinActivate("Imprimantes" ) winwaitactive("Imprimantes" ) sleep(1000) Send ($IMP) sleep(100) Send ("!f" ) sleep(100) Send ("p" ) sleep(100) ;attente de la fenetre imprimante winwaitactive($IMP&" Propriétés" ) Send ("+{TAB}" ) sleep(100) Send ("{RIGHT}" ) sleep(100) Send ("{RIGHT}" ) sleep(100) Send ("{RIGHT}" ) sleep(100) ;attente de l'onglet Avancé winwaitactive($IMP&" Propriétés","Impression par défaut..." ) Send ("!i" ) sleep(100) ;attente de la fenetre Impression par defaut winwaitactive($IMP&" Impression par défaut" ) Send ("!v" ) sleep(100) ;attente de la fenetre Options avancées Generic / Text Only winwaitactive("Options avancées Generic / Text Only" ) Send ("{RIGHT}" ) sleep(100) Send ("Formulaire" ) sleep(100) ;attente de la selection de Formulaire winwaitactive("Options avancées Generic / Text Only","Formulaire" ) send("{ENTER}" ) sleep(100) ;attente de la fenetre Impression par defaut winwaitactive($IMP&" Impression par défaut" ) Send ("{ENTER}" ) sleep(100) ;attente de l'onglet Avancé winwaitactive($IMP&" Propriétés","Impression par défaut..." ) Send ("{RIGHT}" ) sleep(100) Send ("{RIGHT}" ) sleep(100) ;attente de l'onglet Parametre du peripherique winwaitactive($IMP&" Propriétés","TreeView" ) Send ("{TAB}" ) sleep(100) Send ("{RIGHT}" ) sleep(100) Send ("Formulaire" ) sleep(100) Send ("{LEFT}" ) sleep(100) Send ("{DOWN}" ) sleep(100) Send ("{RIGHT}" ) sleep(100) Send ("Formulaire" ) sleep(100) Send ("{LEFT}" ) sleep(100) Send ("{DOWN}" ) sleep(100) Send ("{RIGHT}" ) sleep(100) Send ("Formulaire" ) sleep(100) ;attente de la fenetre Impression par defaut winwaitactive($IMP&" Propriétés","Formulaire" ) Send ("{ENTER}" ) ;On demande si on veut recommencer $reponse = MsgBox(36,"Imprimante Installée","Voulez vous recommencer?" ) If $reponse == 7 Then Exit EndIf WEnd ;*********************************Fin******************************* |
| Wolfman | Ton script m'intéresse bien...si tu veux bien m'en faire profiter, envoie-moi un message privé, je te communiquerai mon e-mail. Merci ;) |
| saez_aoe | Bon en fait je me suis débrouillé avec un srcipt AutoIt
Il me permet de passer des parametre dans un fichier que j'ai créé et automatise l'instalation par des SendKey (400 ligne lol) Je viens de finir les tests, il est quasiment impossible de se tromper (a part dans le fichier de conf) mais bon ... Si quelqu'un le veut, il n'a qu'a le demander sur le Forum parceque si ca interresse pas, je vais pas m'amuser à modifier les parametre (secret professionnel) dans le script. |
| saez_aoe | OK merci je vais tester |
| nmalta10 | Il y a bien longtemps, j'avais utilisé Microsoft ScriptIt. C'est un enregistreur de macro sous windows. Il génère par la suite un fichier texte des différents actions qu'il a enregistrées. Il reste à modifier ce fichier (en générale avec une petite moulinette maison ou par Copier/Coller) pour tes 300 imprimantes. Le taux de réussite : 95% sans echec. |
| Wolfman | Je ne saurais pas répondre, mais la réponse m'intéresse...on a plus de 300 imprimantes réseau à déployer de la même façon. |
| saez_aoe | bonjour,
Comment faire quand on a 300 imprimantes a creer : voici leurs caracteristiques :
|




