[R] Envoi et éxécution d'une "partie" d'un script

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
Couruss
Niveau 1
Niveau 1
Messages : 13
Enregistré le : mar. 29 août 2017 16:49
Status : Hors ligne

[R] Envoi et éxécution d'une "partie" d'un script

#1

Message par Couruss »

Bonjour,

Je suis actuellement en stage et je doit créer un outil afin de redémarrer les postes du parc informatique (pour passer certaines mises a jours notamment).
J'ai découvert AutoIT et ce forum grâce a ce stage (d’ailleurs merci a ceux qui postent souvent car vous m'avez déjà bien aider :D .)

J'ai maintenant quelques problèmes, j'aimerai pouvoir envoyer sur les postes client la partie du programme qui y correspond et j'aimerai savoir si je peut y joindre mon fichier de configuration (puisque je vais compiler cette partie du programme indépendamment pour l'envoyer et l'éxéctuer avec psexec). Ou si je ne peut pas l'envoyer via psexec est ce que cela est possible via TCP/IP (je prévois déjà de l'utiliser afin de faire remonter les messages des utilisateurs et pourvoir "loger" le résultat de mon programme donc vous aurez peut être bientôt un autre topic de ma part selon le résultat de mes recherches).

Merci d'avance,

Les sources :
Reboot.rar
(2.88 Mio) Téléchargé 138 fois
DLL.rar
(1.31 Mio) Téléchargé 131 fois
Modifié en dernier par Couruss le jeu. 31 août 2017 14:04, modifié 1 fois.
Avatar du membre
Numeric
Niveau 5
Niveau 5
Messages : 126
Enregistré le : mer. 23 mars 2016 08:17
Status : Hors ligne

Re: [..] Envoi et éxécution d'une "partie" d'un script

#2

Message par Numeric »

TCP/IP peut te permettre de le faire....Seulement tu dois coder des clients bien intelligents.
1) tu as le serveur auquel sont réliés tous tes clients...en reseau local ...
2)un signal (ex si dans le socket entrant il ya "@get prog.exe" il faut telecharger prog.exe) poura donner un feu vert a un client de telecharger depuis ta machine un fichier exe...puis l'executer une fois le telechargement effectué...
3) bref tu devras créer un petit dictionnaire de code entre serveur et clients....
4) tu peux absolument faire tout ce que tu veux avec les machines clientes a condition d'enrichir leur vocabulaire.(AutoIt)

je n'ai pas eu le temps d'examiner tes fichiers joints...j'avais un projet similaire dans lequel j'avais même prevu une methode pour ameliorer mon code (vocabulaire client-serveur) grace aux fichiers ini. Les nouvelles commandes etaient telecharger par les clients....j'espère être dans le sujet....
De 0 et 1 vers les étoiles , tout part du Binaire, Numeric
Avatar du membre
Couruss
Niveau 1
Niveau 1
Messages : 13
Enregistré le : mar. 29 août 2017 16:49
Status : Hors ligne

Re: [..] Envoi et éxécution d'une "partie" d'un script

#3

Message par Couruss »

Bonjour,

L'idée est bien cependant elle nécessite que le poste client ai déjà le programme (ou sinon je n'ai pas compris).
Or ce que je veut c'est envoyer mon programme depuis le poste d'administration.

En gros on as sa :
-1 l'administrateur configure et donne l'ordre de demmarer le reboot.
-2 la partie admin envoie la partie client (et si possible le fichier de configuration)
-3 la partie client s'execute sur les postes ou elle a ete envoyée

Le problème que j'ai c'est que si je ne peut pas envoyer le fichier de configuration en même temps que l'exe je vais devoir faire une sorte de ping pong, en gros le poste admin vas devoir envoyer le fichier à tout les postes client qui seront donc des serveurs TCP puisqu'il n'auront pas l'ip de la machine d'administration. Puis une fois la configuration envoyée la connection change de sens, la machine admin devient serveur pour recolter les informations des postes (j'entend par informations les messages que ce soit un "RAS" ou l'annulation du reboot).

Je ne sais pas si je m'exprime clairement, je vais de mon coté reprendre toute mes notes et mettre mes idees au clair avant de retoucher au code.
Avatar du membre
Numeric
Niveau 5
Niveau 5
Messages : 126
Enregistré le : mer. 23 mars 2016 08:17
Status : Hors ligne

Re: [..] Envoi et éxécution d'une "partie" d'un script

#4

Message par Numeric »

Couruss a écrit : mer. 30 août 2017 10:05 cependant elle nécessite que le poste client ai déjà le programme...
Pas forcement...Le poste client peut le telecharger sur ta machine qui est le poste d'administration.

Une petite remarque:
1)il ne s'agit pas de mettre en reseau deux programmes sur "une meme" machine...Tu ferais une double tâche.Mais plutot de faire communiquer grace à tes programmes, des machines qui sont connectées sur un reseau local.
Tu n'auras donc qu'a coder deux programmes seulement.. 1 serveur qui sera uniquement sur ta machine et 1 client que tu vas copier et installer sur toutes tes machines clientes. et oui un client bien dresser qui comprend quand a partir d'un simple texte tu lui demande de faire quelque chose comme telecharger installer et executer un fichier ou redemarer sa machine hote.

2) en ce qui concerne les fichiers de configuration, le client concerné pouras t'envoyer un accusé de recepton une fois qu'il auras fini d'installer le programme.Et tu n'auras qu'a lui donner l'ordre de venir chercher ces derniers.. (tout coe tu peux tout automatiser....)

3)Tu peux identifier en nommant chaque machine cliente grace à son socket et même envoyer un ordre a une seule machine.( pas besoin de broadcast )
donc tu n'auras pas à envoyer un fichier à une machine qui n'est pas concernée par ce dernier.

4)ne te focalise pas sur le sens de la connection...Mais plutot sur la gestion des requêtes...
De 0 et 1 vers les étoiles , tout part du Binaire, Numeric
Avatar du membre
Couruss
Niveau 1
Niveau 1
Messages : 13
Enregistré le : mar. 29 août 2017 16:49
Status : Hors ligne

Re: [..] Envoi et éxécution d'une "partie" d'un script

#5

Message par Couruss »

On est d'accord sur le premier point j'ai ma machine d'administration et mes postes clients. Mais je ne veut pas avoir un programme qui tourne en continu sur mes postes clients du coup j'ai du mal a visualiser ta solution. De ce que j'ai compris je deploye la parite correspondante sur les postes user en amont et les fait attendre une instruction qui peut arriver a n'importe quel moment ?
Avatar du membre
Numeric
Niveau 5
Niveau 5
Messages : 126
Enregistré le : mer. 23 mars 2016 08:17
Status : Hors ligne

Re: [..] Envoi et éxécution d'une "partie" d'un script

#6

Message par Numeric »

Effectivement! a moins que chaque machine cliente ne partage un dossier avec toi en reseau. Tu pouras y deposer les programmes voulus puis les executer sur la machine correspondante.
De 0 et 1 vers les étoiles , tout part du Binaire, Numeric
Avatar du membre
Couruss
Niveau 1
Niveau 1
Messages : 13
Enregistré le : mar. 29 août 2017 16:49
Status : Hors ligne

Re: [..] Envoi et éxécution d'une "partie" d'un script

#7

Message par Couruss »

Normalment j'ai des partages réseau sur toutes les machines, mais j'ai pas vraiment envie d'allez y déposer mon programme à la main, surtout que j'ai dans l'idée de le faire se supprimer à la fin de l'éxécution pour éviter de faire des doublons à chaque fois que je veut le lancer et pour ne pas prendre de place sur les postes clients (les postes sont assez anciens et ont pas forcément beaucoup de ram et de place sur les disques).

En gros je veut que l'administrateur n'ai qu'à configurer sur l'interface que je met à sa disposition puis qu'il n'ai plus à toucher à rien et qu'il puisse faire autre chose.

Mais si je comprend bien dans ta solution, tu entend que la partie client du programme est déjà sur les postes clients ? Puis tu leur envoie des instructions (ce qui pourrai etre une solution pour l'envoi de configuration puisque la partie admin donnerai ses ordres et donc lirai la configuration sans avoir à l'envoyer)
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Envoi et éxécution d'une "partie" d'un script

#8

Message par Tlem »

Puisque vous êtes sensé "contrôler" les machines clientes depuis un poste d'administration et que vous ne souhaitez pas utiliser un logiciel spécifique sur les clients, la solution est probablement PsExec. ^^

Sur la machine d'administration, un script AutoIt voir même un batch, une liste d'adresse IP de machines, un partage avec droits limités et hop on lance les mises à jour depuis ce poste. ;)
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
Couruss
Niveau 1
Niveau 1
Messages : 13
Enregistré le : mar. 29 août 2017 16:49
Status : Hors ligne

Re: [..] Envoi et éxécution d'une "partie" d'un script

#9

Message par Couruss »

J’était justement entrain de me renseigner dessus (d'ailleurs j'en parle dans mon premier message sur ce topic), c'est d'ailleurs la base de mon problème puis-je envoyer ma configuration en même temps que mon exe via psexec ?
Si non j'envisage la solution de Numeric pour dialoguer avec mes postes client suite a l'envoi de l'exe.

Edit: Question subsidiaire est ce que psexec laisse l'exe en place sur la machine client après exécution (je vais faire des tests de toute façon mais si j'ai cette info un peu plus tôt je vais gagner un peu de temps dans mon développement)
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Envoi et éxécution d'une "partie" d'un script

#10

Message par Tlem »

Tout est dans le lien que je vous ai donné.

Concernant "l'envoi de la configuration", cela est inutile car dans l'esprit le script qui tourne sur la machine admin dois générer dans le partage tout ce qu'il faut pour effectuer la/les mises à jour par machine cliente.
Une fois l'ensemble des éléments disponibles à travers le réseau, PsExec vous permet de lancer sur la machine cliente le processus de mise à jour. Une fois terminé, on redémarre le client et on vide le dossier.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
Couruss
Niveau 1
Niveau 1
Messages : 13
Enregistré le : mar. 29 août 2017 16:49
Status : Hors ligne

Re: [..] Envoi et éxécution d'une "partie" d'un script

#11

Message par Couruss »

Alors personnellement je ne touche pas au mises à jour (je me contente de lancer un reboot des postes, enfin en un peu plus compliquer puisque je doit d'abord dialoguer avec l’utilisateur du poste). Mais j'ai une nouvelle idée, je vais tenter de déployer mon script par Gpo sur le domaine et ensuite le lancer via PsExec (comme sa plus besoin de copie ou autre et de fonction de suicide) et normalement je peut passer via PsExec des arguments au script afin de donner les information relatives a la connexion(adresse IP et port du serveur).

Bon je vais tester sa, si sa fonctionne je passerai le sujet en résolu (je reste ouvert a tout commentaires sur mon code si sa peut me permettre de m'améliorer tout est bon à prendre).

Numeric si tu es encore dans le coin je veut bien des explications pour les clients "intelligents" sa m’intéresse.

Merci de votre aide :D
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Envoi et éxécution d'une "partie" d'un script

#12

Message par Tlem »

Un clients "intelligents" est un client qui "écoute" ce qu'on lui demande et qui fait l'action demandée ...
Cela oblige à avoir un script/programme (bien pensé) qui fonctionne en permanence. ^^

PS : PsExec vous permet de redémarrer des postes clients sans autre logiciels. Après vous pouvez aussi envisager de piloter une prise intelligente pour couper le jus du PC. :lol:
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
Couruss
Niveau 1
Niveau 1
Messages : 13
Enregistré le : mar. 29 août 2017 16:49
Status : Hors ligne

Re: [..] Envoi et éxécution d'une "partie" d'un script

#13

Message par Couruss »

Euh oui mais non pour une raison bien simple je ne peut pas redémarrer arbitrairement les postes, je bosse dans un hôpital et certains postes ne doivent pas être redémarrer à certains moment et ce peut importe l'heure. C'est pour sa que je ne me suis pas contenter d'envoyer un shutdown -r a toutes les IPs concernées.

Edit: Pour les clients "intelligents" je suis d'accord c'est pas utilisable pour ce script puisque mon client n'as qu'un but, mais on sais jamais pour un autre programme sa peut servir (c'est pour sa que je voulais des explication mais bon pas dans ce topic sinon sa a devenir n'importe quoi)
Avatar du membre
Numeric
Niveau 5
Niveau 5
Messages : 126
Enregistré le : mer. 23 mars 2016 08:17
Status : Hors ligne

Re: [..] Envoi et éxécution d'une "partie" d'un script

#14

Message par Numeric »

Tlem a écrit : jeu. 31 août 2017 12:07 Après vous pouvez aussi envisager de piloter une prise intelligente pour couper le jus du PC. :lol:
Hihi ! oh non Tlem , je crois que ça ne sera pas necessaire! :P :lol:
De 0 et 1 vers les étoiles , tout part du Binaire, Numeric
Avatar du membre
Numeric
Niveau 5
Niveau 5
Messages : 126
Enregistré le : mer. 23 mars 2016 08:17
Status : Hors ligne

Re: [..] Envoi et éxécution d'une "partie" d'un script

#15

Message par Numeric »

Couruss ,Concernant les clients intelligents, on aura bien l'occasion d'en parler.
De 0 et 1 vers les étoiles , tout part du Binaire, Numeric
Avatar du membre
Couruss
Niveau 1
Niveau 1
Messages : 13
Enregistré le : mar. 29 août 2017 16:49
Status : Hors ligne

Re: [..] Envoi et éxécution d'une "partie" d'un script

#16

Message par Couruss »

Avec plaisir Numeric ^^

Bon je passe en resolu mes tests sont concluants.
Répondre