250 imprimantes à creer - Windows & Software
Marsh Posté le 30-05-2005 à 13:18:21
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.
Marsh Posté le 31-05-2005 à 17:27:03
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.
Marsh Posté le 03-06-2005 à 14:25:51
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.
Marsh Posté le 04-06-2005 à 09:24:10
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
Marsh Posté le 06-06-2005 à 08:59:27
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*******************************
Marsh Posté le 06-06-2005 à 09:00:28
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]
Marsh Posté le 06-06-2005 à 15:00:20
Merci pour le retour, je suis sûr que ca pourra être utile a pas mal de monde
Marsh Posté le 07-06-2005 à 09:52:39
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
Marsh Posté le 30-05-2005 à 13:01:57
bonjour,
Comment faire quand on a 300 imprimantes a creer :
voici leurs caracteristiques :
- NOM_IMP
- Port :
- Local : Standard TCP/IP
- @ IP Fixe (la meme pour toutes les imprimantes)
- Nom du Port : NOM_IMP
- Protocole : LPR
- Nom de la file d'attente : NOM_IMP
- Comptage des Octes LPR Activé
- Pilote : Generic
- Impression par défaut : Taille du papier : X
- Parametres du peripherique :
- Alim. continue - sans s: X
- Feuille à feuille: X
- Alim. continue - avec s: X
J'ai etudié un peu prnadmin mais je ne peux pas passer assez de parametres
Qu'auriez vous comme solution? Je fais appel a vous car j'en peu plus de creer ces imprimantes...
Merci beaucoup