IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Perl Discussion :

aide projet dev


Sujet :

Langage Perl

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 161
    Points : 89
    Points
    89
    Par défaut aide projet dev
    Yop all
    Alors enfait mon problème c'est pour mon projet a faire en developpement.Je n'ai aucune idée de projet.
    Je voulai faire un script avec module samba pour creer des users, partages automatiquement mais bon webmin le fait par exemple. Donc pkoi recreer la roue loool.
    Sinon je ne vois pas trop car il faut que ca ai rapport avec le travail d'administrateur réseau ( automatisation d'une tache ) .
    Si des personnes ont des idées merci de m'en faire profités.
    Et bonne année a tous =)

    Edit : Petite idée loool
    Un script qui parcours mon réseau local et qui permet de me faire un statistique des quotas des disques utilisés ( utilisé - réstant ) de toutes les machines. Mais est ce possible pour des clients windows ? =) merci a tous

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 124
    Points : 145
    Points
    145
    Par défaut
    J'avais présenté sa en projet l'année dernière :

    Paramètrage Firewall sous Linux en Architecture client-serveur via Interface graphique
    (regle de parefeu,NAT,PAT)

  3. #3
    Invité
    Invité(e)
    Par défaut
    Oui c'est possible pour des clients windows. J'en ai fait un que tu trouveras ici
    Le script s'appelle getfreediskspace.pl.
    Dans un fichier texte, tu y inscris en première ligne l'adresse de ta passerelle SMTP pour l'envoi du rapport par mail, puis sur chaque ligne suivante le nom ou IP des machines à interroger.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 161
    Points : 89
    Points
    89
    Par défaut
    merci a vous deux pour l'aide =)
    Hide ton pti peut etre sympa en réseaux =)
    kuzco excellent ton script beau boulot.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    C:\Documents and Settings\blabla\Bureau>"C:\Documents and Settings\blabla\Bureau\getfreediskspace.pl" fic_param.txt
    Can't call method "mail" on an undefined value at C:\Documents and Settings\blabla\getfreediskspace.pl line 22, <FIC> line 3.
    il trouve pas le $sender. J'ai essayer de lui mettre une adresse mail etc mais rien n'y fait.

    Si tu peux m'aider merci bcp kuzco et encore chapeau bas =)

  5. #5
    Invité
    Invité(e)
    Par défaut
    Assure toi d'avoir le module Net::SMTP d'installé.
    Sinon, selon la passerelle SMTP, il faut que le sender soit une adresse mail valide par rapport au domaine dns.
    Voir admin de messagerie.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 161
    Points : 89
    Points
    89
    Par défaut
    Enfait est ce que je peux mettre comme serveur smtp par exemple smtp.free.fr ?
    Car je n'ai pas de serveur smtp propre.
    Merci Kuzco pour ton aide

  7. #7
    Invité
    Invité(e)
    Par défaut
    Le problème est qu'il faut être authentifié pour utiliser ce smtp. Ce n'est pas (je suppose) un relai ouvert.
    J'ai fait ce script à l'origine pour un besoin sur réseau d'entreprise.

    Regarde dans la doc Net::SMTP, il y a une méthode qui s'appelle auth :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    auth ( USERNAME, PASSWORD )
    pour s'authentifier sur la passerelle, et modifie le script en conséquence.

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 161
    Points : 89
    Points
    89
    Par défaut
    ca marche nikel ton script =)

    Par contre niveau OLE j'y connais pas grand chose. Tu pourrai m'eclaircir un ptit peur sur ce passage du script ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    	$Machine =~ s/^[\\\/]+//;
    	my $WMIServices = Win32::OLE->GetObject("winmgmts:{impersonationLevel=impersonate,(security)}//$Machine" )
    		|| die "Error $?\n";
    	my $DriveCollection = $WMIServices->InstancesOf( "Win32_LogicalDisk" );
    	$smtp->datasend("SERVEUR $Machine :\n\n");
    		foreach my $Drive ( in( $DriveCollection ) ) {
    			if ( FormatNumber( $Drive->{DriveType} ) eq "3" ) {
    				$smtp->datasend("Lecteur $Drive->{Name}\n");
    				$smtp->datasend("\tNom de volume: $Drive->{VolumeName}\n");
    				$smtp->datasend("\tTaille       : ", FormatNumber( ($Drive->{Size})/(1024**2) ), " MB\n");
    				$smtp->datasend("\tEspace libre : ", FormatNumber( ($Drive->{FreeSpace})/(1024**2) ), " MB\n");
    				my $FreePercent = FormatNumber(($Drive->{FreeSpace} / $Drive->{Size}) * 100);
    				$smtp->datasend("\t% libre      : ", int($FreePercent * 100)/100 , " %\n");
    				$smtp->datasend("\t% utilise    : ", 100 - int($FreePercent * 100)/100 , " %\n\n\n");
    			}
    		}
    	}
    ca m'a l'air compliqué loool
    Merci bcp

  9. #9
    Invité
    Invité(e)
    Par défaut
    Une URL vaut mieux qu'un long discours : regarde ici.

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 161
    Points : 89
    Points
    89
    Par défaut
    ca le fait !!! Grand merci a toi
    J'essairai de mettre la source quand je le ferai en perl tk.
    Mais c'est excelent =)
    Bravo !!! et merci encore

  11. #11
    Invité
    Invité(e)
    Par défaut
    Y'a pas d'quoi !

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 161
    Points : 89
    Points
    89
    Par défaut
    Ah kuzco vais encore t'embeter
    Enfait ca marche bien pour un poste, mais des que je test sur un réseau local, j'ai une erreur 0.
    Y a un services spéciales a activer ? Le routeur besoin d'avoir un port spécifique ouvert ?
    Merci bien =)

  13. #13
    Invité
    Invité(e)
    Par défaut
    Après, c'est un problème système. Il faut :
    1. Que WMI soit installé sur la machine interrogée
    2. Que le compte qui exécute le script aie des droits admin sur la machine interrogée (peut-être power user suffit, j'ai pas testé)
    3. Il n'y a pas de notion de port à ouvrir a priori.

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 161
    Points : 89
    Points
    89
    Par défaut
    WMI logiquement doit etre installé, enfin sur xp il y est d'office.
    J'ai tester en mode admin mais rien n'y fais.
    n'y aurai t-il pas besoin d'une authentification pour se connecter sur le client en tant qu'admin dans le script ?
    =)

  15. #15
    Invité
    Invité(e)
    Par défaut
    Soit une machine A sur laquelle le script s'exécute.
    Soit des machines B,C et D distantes interrogées par le script.

    Le compte qui exécute le script sur la machine A doit avoir des droits administrateur sur les machines B,C et D.

  16. #16
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 161
    Points : 89
    Points
    89
    Par défaut
    kuzco j'ai essayer de piger la partie que je ne comprenai pas et serieux, je comprend toujours pas mdr.
    Si tu veux bien m'aider parce que c'est vrai que ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	my $WMIServices = Win32::OLE->GetObject("winmgmts:{impersonationLevel=impersonate,(security)}//$Machine" ) || die "Error $?\n";
    	my $DriveCollection = $WMIServices->InstancesOf( "Win32_LogicalDisk" );
    Je sais pas trop comment ca fonctionne a aprt se servir de winmgmt
    Le InstancesOf par exemple je ne sais pas a quoi ca sert. Pareil pour le impersonationLevel=impersonate...
    désolé de t'embeter mais merci a toi pour ton aide

  17. #17
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 124
    Points : 145
    Points
    145
    Par défaut
    Bon..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    my $WMIServices = Win32::OLE->GetObject("winmgmts:{impersonationLevel=impersonate,(security)}//$Machine" ) || die "Error $?\n";
    Connection au Windows Management Service sur l'ordinateur cible($Machine).Elle retourne la référence à un objet.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    my $DriveCollection = $WMIServices->InstancesOf( "Win32_LogicalDisk" );
    Renvoi toutes les instances gérée par la classe Win32_LogicalDisk

    Pour mieux comprendre le systeme cherche du coté de l'utilisation de WMI

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 7
    Dernier message: 15/07/2009, 13h38
  2. Besoin d'aide projet d'info : la bonne paye sur C++ Builder.
    Par timsupra dans le forum C++Builder
    Réponses: 18
    Dernier message: 25/04/2006, 10h24
  3. comment on compile un projet dev-cpp
    Par yashiro dans le forum Dev-C++
    Réponses: 4
    Dernier message: 30/03/2006, 19h19
  4. Systeme d'aide sur Dev C++
    Par leonardoo dans le forum Dev-C++
    Réponses: 3
    Dernier message: 09/11/2005, 10h14
  5. Un VRAI fichier d'aide pour Dev-Cpp ?
    Par TheRedLed dans le forum Dev-C++
    Réponses: 3
    Dernier message: 08/06/2005, 19h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo