Création d'un compte windows à distance sur X postes - Perl - Programmation
Marsh Posté le 28-04-2008 à 12:13:44
Code :
|
C'est ça que tu veux faire ?
Marsh Posté le 28-04-2008 à 12:50:12
Bonjour,
Autant pour moi : c'était comme ça dans mon fichier à l'origine, ça a sauté suite à une de mes tentatives.
Donc oui, c'était ça, et ça ne marche pas : Le fichier de sortie est créé, mais ne récupère pas les commandes passées ni les retours.
Merci quand même !
Marsh Posté le 28-04-2008 à 13:31:44
Code :
|
Je dis pas que ça va corriger le problème, essaye juste de voir comment récupérer la sortie de ta commande Quitte à la mettre dans une variable pour ensuite faire un push dans ta liste @dos.
Marsh Posté le 28-04-2008 à 13:40:48
Je viens de tester avec une autre commande (netsh) qui a une sortie selon le résultat de son exécution, et mon log est bien renseigné
Marsh Posté le 28-04-2008 à 14:04:29
SpN a écrit : Je viens de tester avec une autre commande (netsh) qui a une sortie selon le résultat de son exécution, et mon log est bien renseigné |
Rebonjour à toi,
Je te remercie vivement pour cette modification.
A partir de ton code, je n'ai toujours pas le fichier Log.txt renseigné via la commande Psexec. MAIS PAR CONTRE, il est bien renseigné si je tape une autre commande (ping dans mon cas) de la même manière j'imagine que ça fonctionne pour toi avec netsh.
Lorsque je fais un ping, rien ne s'affiche dans l'invite de commande, ce qui est normal vu que c'est redirigé dans le Log.txt.
Lorsque je fais le Psexec, le résultat s'affiche directement dans l'invite de commande... et non dans le Log.txt
Citation : essaye juste de voir comment récupérer la sortie de ta commande Quitte à la mettre dans une variable pour ensuite faire un push dans ta liste @dos. |
Ce n'est pas ce qu'est sensé faire le push(@dos, `Psexec \\\\$ip NET USER NomUser MotDePasse /ADD`); que tu proposes ? Il y a une autre méthode ?
Pourquoi faut-il que je tombe sur LA commande qui refuse de marcher :x
Merci encore de l'aide que tu apportes.
édit :
Citation : Si Psexec est un utilitaire d’administration de systèmes polyvalent, c’est bien parce qu’il est capable de rediriger l’entrée et la sortie des applications de console. |
D'accord... je sens que ça va être compliqué. Je poursuis les recherches !
Marsh Posté le 28-04-2008 à 14:12:42
Pourquoi tu fais pas un batch au faite ?
Tu as regardé les options de Psexec ?
Marsh Posté le 28-04-2008 à 14:53:37
J'suis encore plus nul en batch, et un ami m'a aidé en Perl, donc par la force des choses, je me suis retrouvé avec un Perl.
Citation : Usage: psexec [\\computer[,computer2[,...] | @file][-u user [-p psswd]][-n s][-l |
...
D'accord ...
En faisant un "simple"
Code :
|
(j'ai trouvé le -s 2> sur un autre forum... je n'ai pas encore tout compris, mais ça marche)
Psexec balance les requêtes sur les IP fournies dans la liste IP.txt et crée le fichier de sortie Log.txt.
J'ai donc paumé un week end à tenter de coder (quoique j'ai appris un peu) et plus important je vous ai fait perdre un peu de temps sur mon code, et j'en suis désolé.
Me reste à trier le fichier de sortie qui ressemble à ça :
Citation : |
C'est parti !
Encore merci, et pardon !
Marsh Posté le 28-04-2008 à 15:05:43
C'est le 2 qui m'intrigue en fait
Encore merci à toi !
J'espère être en mesure de te dépanner un jour.
Marsh Posté le 28-04-2008 à 10:51:56
Bonjour à tous,
Je me tourne une nouvelle fois vers cette communauté afin de m'aider à retrouver le sommeil
Je tente de créer un même utilisateur sur une multitudes (+1000) de machines (Win XP).
Je me tourne logiquement vers les commandes Psexec (pour lancer la commande sur le poste distant) et net user (pour créer le compte localement).
Le programme doit :
#Récupérer les IPs des machines depuis un fichier (le fichier contient une IP par ligne)
#Créer l'utilisateur via la commande windows psexec \\IP net user NomUser MotDePasse /add
#Sortir le résultat dans un fichier.
Voici le programme Perl créé jusque là (non sans mal...débutant inside)
Ce programme lance bien les commandes sur les IP, mais ne crée aucun log : il crée le fichier Log.txt, mais celui ci est vide
Quelqu'un pourrait-il m'indiquer où se trouve mon erreur svp ?
Question bonus : afin d'analyser le résultat de la commande, je cherche à formater le fichier de sortie (Log.txt) de la manière suivante :
Sachant que si la commande s'est bien déroulée, l'invite de commande Dos renvoie
-La commande s'est terminée correctement.
ou
-Le compte existe déjà.
Et qui si la commande n'est pas passée, l'invite de commande DOS renvoie
Couldn't access 192.168.1.1:
Le chemin rÚseau n'a pas ÚtÚ trouvÚ.
J'avais trouvé un filtre avec grep, mais le script doit être lancé depuis un windows...
Je vous remercie grandement de m'avoir lu, et encore plus si une éventuelle réponse est apportée. Je pense qu'un tel programme pourrait sauver la journée de plus d'un admin
Mcadams
Message édité par mcadams le 28-04-2008 à 12:51:03