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

Programmation et administration système Perl Discussion :

Compilation script perl


Sujet :

Programmation et administration système Perl

  1. #1
    Rédacteur
    Avatar de Viduc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2009
    Messages
    1 445
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Février 2009
    Messages : 1 445
    Points : 2 778
    Points
    2 778
    Billets dans le blog
    2
    Par défaut Compilation script perl
    Salut !

    Bon je vais surement poser une question déjà posé des centaines de fois (ce qui est le cas puisque avant de poster j'ai fait une longue recherche et de nombreux tests...)

    Voilà j'ai un collègue qui a besoin d'un petit script pour faire une "box" afin que des utilisateurs entrent leur mot de passe (c'est pour une gpo...). Il est partit sur un traficotage avec du html mais c'est pas super...

    J'ai fait un petit script en perl (Tk) qui ouvre une petite fenêtre, demande le mot de passe et vérifie, si c'est ok il lance un vbs en passant en argument le mot de passe saisie... Tout fonctionne pas de souci...

    Le truc c'est que j'ai fait ça car j'avais stocké dans un coin de ma tête une info comme quoi on pouvait compiler perl... je ne m'étais jamais attarder la dessus n'en n'ayant perso pas besoin... mais la du coup je n'ai pas le choix, notre environnement au boulot est windows et bien sure les postes des utilisateurs n'ont pas perl installé... d'où le besoin de compiller...

    J'ai testé perlexe, avec un script à la con qui m'écrit "ok" ça marche mais avec mon script rien. Pourtant il compile bien tout, aucune erreur...

    J'ai trouvé App:acker er PAR mais je n'arrive pas à comprendre comment ça marche...

    Voilà si vous avez une option pour moi ça serait super cool... je vous met les deux scripts au cas ou (le premier le perl, le deuxième vbs...)

    perl:
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
     
    #===================#
    #==  	    Password              ==# 		  
    #== ISOTOP   ©Viduc 2009 ==#    
    #== isotop.info@gmail.com ==#
    #===================#
     
    #===========#
    #== Définition ==#
    #===========#
     
    # Ce script sert à récupérer un mot de passe renseigner par un utilisateur.
    # Une boite de dialogue permet d'entrer le mot de passe de façon confidentiel.
    # Le script enverra ensuite le mot de passe sous forme d'argument à un autre scirpt Batch ou VBS.
     
    #====================#
    #== Déclaration des modules ==#
    #====================#
    use strict;
    use Tk; use Tk::Dialog;
     
    #=========================#
    #== Définition des Variables Globales ==#
    #=========================#
    my $Password;
     
    #======================#
    #== Définition  des  Variables Tk ==#
    #======================#
    my ($Fenetre_Principale, $Frame_Principale);
    my ($Label_Password_1, $Label_Password_2, $Entry_Password_1, $Entry_Password_2, $Bouton_VALIDER, $Label_Info);
     
    #=========================#
    #== Création de la fenêtre principale ==#
    #=========================#
    $Fenetre_Principale = MainWindow->new();
    $Fenetre_Principale->minsize('400','300');
    $Fenetre_Principale->title("DSI Stendhal Administration");
     
     
     
    #================#
    #== Gestion Password ==#
    #================#
    Main_Frame();
    #========================#
    #== Gestion des paramètres visuels ==#
    #========================#
     
    	#== Centrer la fenêtre principale
    		CentrerWidget($Fenetre_Principale);
    	#== Enlever les décors
    		$Fenetre_Principale -> overrideredirect(1);
     
    #==================#
    #== Lanceur d'évènement ==#
    #==================#
    MainLoop;
     
    #===========#
    #== Fonctions ==#
    #===========#
     
    sub CentrerWidget 
    	{
    	#========================================
    	# But : Centrer un widget automatiquement
    	# Arguments : widget
    	# Retour : Rien
    	#========================================
    	unless ( scalar(@_) == 1 ) {die('Usage : CentrerWidget( $MainWidget );');}
    	my ( $Widget ) = @_;
     
    	# Height and width of the screen
    	my $LargeurEcran = $Widget->screenwidth();
    	my $HauteurEcran = $Widget->screenheight();
     
    	# update le widget pour recuperer les vraies dimensions
    	$Widget->update;
    	my $LargeurWidget = $Widget->width;
    	my $HauteurWidget = $Widget->height;
     
    	# On centre le widget en fonction de la taille de l'ecran
    	my $NouvelleLargeur  = int( ( $LargeurEcran - $LargeurWidget ) / 2 );
    	my $NouvelleHauteur  = int( ( $HauteurEcran - $HauteurWidget ) / 2 );
    	$Widget->geometry($LargeurWidget . "x" . $HauteurWidget . "+$NouvelleLargeur+$NouvelleHauteur");
    	$Widget->update;
    	return;
    	}
     
    sub Main_Frame
    	{
    	my ($Sequence) = @_;
     
    	# -- Création de la Frame Centrale -- #
    	$Frame_Principale = $Fenetre_Principale->Frame(-relief => 'groove', 
    											     -borderwidth => 5, 
    											     -background  => 'black',
    											     -foreground   => 'black');
    	$Frame_Principale->pack(-anchor => 'center', 
    						    -fill   => 'both', 
    						    -expand => 1);
     
    	$Label_Password_1 = $Frame_Principale -> Label(-text => 'Entrez votre mot de passe', 
    											    -background => 'black', 
    											    -foreground => 'green');
    	$Label_Password_2 = $Frame_Principale -> Label(-text => 'Retapez votre mot de passe', 
    											    -background => 'black', 
    											    -foreground => 'green');
     
    	$Entry_Password_1 = $Frame_Principale -> Entry(-text => '', -justify => 'center', -width => 25, -show => '*');
    	$Entry_Password_2 = $Frame_Principale -> Entry(-text => '', -justify => 'center', -width => 25, -show => '*');
     
    	$Bouton_VALIDER = $Frame_Principale -> Button(-text => "Valider",  
    											      -command => \& Verification_Password);
     
    	if ($Sequence eq "wrong")
    		{
    		$Label_Info = $Frame_Principale -> Label(-text => 'Vous avez entré un mauvais mot de passe', 
    											-background => 'black', 
    											-foreground => 'red');	
    		$Label_Info -> pack(-fill => 'none', -side => 'top', -expand => 1);
    		}
     
    	$Label_Password_1 -> pack(-fill => 'none', -side => 'top', -expand => 1);
    	$Entry_Password_1 -> pack(-fill => 'none', -side => 'top', -expand => 1);
    	$Label_Password_2 -> pack(-fill => 'none', -side => 'top', -expand => 1);
    	$Entry_Password_2 -> pack(-fill => 'none', -side => 'top', -expand => 1);
    	$Bouton_VALIDER -> pack(-fill => 'none', -side => 'top', -expand => 1);
    	}
     
    sub Verification_Password
    	{
    	 my $Password_1 = $Entry_Password_1 -> get();
    	 my $Password_2 = $Entry_Password_2 -> get();
     
    	 if ($Password_1 eq $Password_2 and $Password_1 ne "")
    		{
    		exec('wscript', 'Password.vbs', $Password_1);
    		exit(0);
    		}
    	else
    		{$Frame_Principale -> destroy(); Main_Frame("wrong");}
    	}
    vbs:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    '===================#
    '==  	   Password              ==# 		  
    '== ISOTOP   ©Viduc 2009 ==#    
    '== isotop.info@gmail.com ==#
    '===================#
     
    set Password = WScript.Arguments
    MsgBox Password (0)
    Bien reçu, tous les messages. Ils disent qu’ils ont compris, qu’il n’y a plus le choix. Que l’esprit qui souffle, guidera leurs pas. Qu’arrivent les derniers temps où nous pourrons parler. Alors soyons désinvoltes, n’ayons l’air de rien

  2. #2
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771

  3. #3
    Rédacteur
    Avatar de Viduc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2009
    Messages
    1 445
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Février 2009
    Messages : 1 445
    Points : 2 778
    Points
    2 778
    Billets dans le blog
    2
    Par défaut
    Coucou et merci à toi encore une fois (et pas la dernière )

    Bon j'ai du coup avancé dans PAR, enfin j'ai disons finit par réussir à l'installer et l'exécuter...

    J'ai donc pu compiler mon script, a prioris sans pb... mais quand je l'exécute il me dit:

    "Cette application n'a pas pu démarrer car perl510.dll est introuvable."...

    Est ce que ça vient du fait que j'ai du désinstaller activeperl 5.8.10 pour réinstaller 5.8.8 ?
    Bien reçu, tous les messages. Ils disent qu’ils ont compris, qu’il n’y a plus le choix. Que l’esprit qui souffle, guidera leurs pas. Qu’arrivent les derniers temps où nous pourrons parler. Alors soyons désinvoltes, n’ayons l’air de rien

  4. #4
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    Bon, je t'ai fait 2 corrections dans ton script :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        system( "wscript Password.vbs $Password_1" );
        exit;
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     if ( defined $Sequence and $Sequence eq "wrong" ) {
    Ensuite, je te l'ai indenté :

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    #!/usr/bin/perl
    use strict;
    use warnings;
     
    #===================#
    #==  	    Password              ==#
    #== ISOTOP   ©Viduc 2009 ==#
    #== isotop.info@gmail.com ==#
    #===================#
     
    #===========#
    #== Définition ==#
    #===========#
     
    # Ce script sert à récupérer un mot de passe renseigner par un utilisateur.
    # Une boite de dialogue permet d'entrer le mot de passe de façon confidentiel.
    # Le script enverra ensuite le mot de passe sous forme d'argument à un autre scirpt Batch ou VBS.
     
    #====================#
    #== Déclaration des modules ==#
    #====================#
    use strict;
    use Tk;
    use Tk::Dialog;
     
    #=========================#
    #== Définition des Variables Globales ==#
    #=========================#
    my $Password;
     
    #======================#
    #== Définition  des  Variables Tk ==#
    #======================#
    my ( $Fenetre_Principale, $Frame_Principale );
    my ( $Label_Password_1, $Label_Password_2, $Entry_Password_1, $Entry_Password_2, $Bouton_VALIDER,
      $Label_Info );
     
    #=========================#
    #== Création de la fenêtre principale ==#
    #=========================#
    $Fenetre_Principale = MainWindow->new();
    $Fenetre_Principale->minsize( '400', '300' );
    $Fenetre_Principale->title("DSI Stendhal Administration");
     
    #================#
    #== Gestion Password ==#
    #================#
    Main_Frame();
     
    #========================#
    #== Gestion des paramètres visuels ==#
    #========================#
     
    #== Centrer la fenêtre principale
    CentrerWidget($Fenetre_Principale);
     
    #== Enlever les décors
    $Fenetre_Principale->overrideredirect(1);
     
    #==================#
    #== Lanceur d'évènement ==#
    #==================#
    MainLoop;
     
    #===========#
    #== Fonctions ==#
    #===========#
     
    sub CentrerWidget {
     
      #========================================
      # But : Centrer un widget automatiquement
      # Arguments : widget
      # Retour : Rien
      #========================================
      unless ( scalar(@_) == 1 ) { die('Usage : CentrerWidget( $MainWidget );'); }
      my ($Widget) = @_;
     
      # Height and width of the screen
      my $LargeurEcran = $Widget->screenwidth();
      my $HauteurEcran = $Widget->screenheight();
     
      # update le widget pour recuperer les vraies dimensions
      $Widget->update;
      my $LargeurWidget = $Widget->width;
      my $HauteurWidget = $Widget->height;
     
      # On centre le widget en fonction de la taille de l'ecran
      my $NouvelleLargeur = int( ( $LargeurEcran - $LargeurWidget ) / 2 );
      my $NouvelleHauteur = int( ( $HauteurEcran - $HauteurWidget ) / 2 );
      $Widget->geometry( $LargeurWidget . "x" . $HauteurWidget . "+$NouvelleLargeur+$NouvelleHauteur" );
      $Widget->update;
      return;
    }
     
    sub Main_Frame {
      my ($Sequence) = @_;
     
      # -- Création de la Frame Centrale -- #
      $Frame_Principale = $Fenetre_Principale->Frame(
        -relief      => 'groove',
        -borderwidth => 5,
        -background  => 'black',
        -foreground  => 'black'
      );
      $Frame_Principale->pack(
        -anchor => 'center',
        -fill   => 'both',
        -expand => 1
      );
     
      $Label_Password_1 = $Frame_Principale->Label(
        -text       => 'Entrez votre mot de passe',
        -background => 'black',
        -foreground => 'green'
      );
      $Label_Password_2 = $Frame_Principale->Label(
        -text       => 'Retapez votre mot de passe',
        -background => 'black',
        -foreground => 'green'
      );
     
      $Entry_Password_1
        = $Frame_Principale->Entry( -text => '', -justify => 'center', -width => 25, -show => '*' );
      $Entry_Password_2
        = $Frame_Principale->Entry( -text => '', -justify => 'center', -width => 25, -show => '*' );
     
      $Bouton_VALIDER = $Frame_Principale->Button(
        -text    => "Valider",
        -command => \&Verification_Password
      );
     
      if ( defined $Sequence and $Sequence eq "wrong" ) {
        $Label_Info = $Frame_Principale->Label(
          -text       => 'Vous avez entré un mauvais mot de passe',
          -background => 'black',
          -foreground => 'red'
        );
        $Label_Info->pack( -fill => 'none', -side => 'top', -expand => 1 );
      }
     
      $Label_Password_1->pack( -fill => 'none', -side => 'top', -expand => 1 );
      $Entry_Password_1->pack( -fill => 'none', -side => 'top', -expand => 1 );
      $Label_Password_2->pack( -fill => 'none', -side => 'top', -expand => 1 );
      $Entry_Password_2->pack( -fill => 'none', -side => 'top', -expand => 1 );
      $Bouton_VALIDER->pack( -fill => 'none', -side => 'top', -expand => 1 );
    }
     
    sub Verification_Password {
      my $Password_1 = $Entry_Password_1->get();
      my $Password_2 = $Entry_Password_2->get();
     
      if ( $Password_1 eq $Password_2 and $Password_1 ne "" ) {
        system( "wscript Password.vbs $Password_1" );
        exit;
      }
      else { $Frame_Principale->destroy(); Main_Frame("wrong"); }
    }
    Concernant ton souci, As tu perl 5.10 d'installé ? As tu installé Perl 5.8 ou perl 5.10 ?

    Quel version de PAR as tu installé ? Peux tu nous mettre tes commandes d'installation ? Tu as peut être installé une mauvaise version de PAR:acker et PAR.

    Autre question : Quel est l'intérêt du script visual basic ? Pourquoi ne pas le faire en perl TK ?

  5. #5
    Rédacteur
    Avatar de Viduc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2009
    Messages
    1 445
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Février 2009
    Messages : 1 445
    Points : 2 778
    Points
    2 778
    Billets dans le blog
    2
    Par défaut
    EN faite j'avais installé (dans un machine virtuelle) le 5.10, mais en voulant installé le PAR il m'a dit que ce n'était pas la bonne version (j'ai tenté la même installe que sur le poste que tu m'as passé)...

    donc j'ai désinstallé la 5.10 et mis la 5.8 puis installé PAR...

    Je vais retster avec une machine virtuelle propre pour voir...

    EN faite le vbs c'est parceque mon collègue (enfin un de nos stagiaire) travaille sur un script batch + vbs via gpo ... il se trouvait "bloqué" par ce problème pour demander le mot de passe lors d'un truc en vbs ou batch (ce qui n'est pas super j'en convient) du coup je lui ai fait ce petit script pour qu'il est juste à le lancer via son script et qu'il lui renvoit dans son script (ou un autre) le mot de passe, après il en fait ce qu'il veut (je sais pas quoi d'aillers lol) )...

    Donc oui ça serait du coup je le ferais en perl si il y avait moyen de comiler, mais lui ne connait pas perl et je vais pas lui faire tout le reste non plus lol
    Bien reçu, tous les messages. Ils disent qu’ils ont compris, qu’il n’y a plus le choix. Que l’esprit qui souffle, guidera leurs pas. Qu’arrivent les derniers temps où nous pourrons parler. Alors soyons désinvoltes, n’ayons l’air de rien

  6. #6
    Rédacteur
    Avatar de Viduc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2009
    Messages
    1 445
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Février 2009
    Messages : 1 445
    Points : 2 778
    Points
    2 778
    Billets dans le blog
    2
    Par défaut
    Bon c'est ok ça marche, je suis repartit d'une machine propre, installé perl 5.8 + PAR et c'est ok

    merci encore

    et merci pour les petites modfis sur le script c'est mieu en effet
    Bien reçu, tous les messages. Ils disent qu’ils ont compris, qu’il n’y a plus le choix. Que l’esprit qui souffle, guidera leurs pas. Qu’arrivent les derniers temps où nous pourrons parler. Alors soyons désinvoltes, n’ayons l’air de rien

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

Discussions similaires

  1. Problème de compilation script Perl
    Par soho36 dans le forum Langage
    Réponses: 33
    Dernier message: 21/07/2010, 17h26
  2. compiler un script perl
    Par black_code dans le forum Langage
    Réponses: 9
    Dernier message: 03/09/2005, 16h30
  3. [langage] script perl cmd system
    Par kacedda dans le forum Langage
    Réponses: 4
    Dernier message: 02/05/2003, 09h45
  4. [langage] awk et sed dans script perl
    Par scoti dans le forum Langage
    Réponses: 3
    Dernier message: 07/04/2003, 18h26
  5. Réponses: 2
    Dernier message: 11/07/2002, 08h31

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