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

Sécurité Discussion :

Automatisé suppression des données clé usb


Sujet :

Sécurité

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 68
    Points : 47
    Points
    47
    Par défaut Automatisé suppression des données clé usb
    Bonjour, je souhaiterai automatisé la suppression des données sur les clés usb qui se connecterai sur un ordinateur qui tourne sous xp, est-ce possible? Merci de vos conseils.

  2. #2
    Membre chevronné Avatar de dmganges
    Homme Profil pro
    Retraité. Ne recherche pas un emploi.
    Inscrit en
    Septembre 2011
    Messages
    1 405
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité. Ne recherche pas un emploi.
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2011
    Messages : 1 405
    Points : 2 053
    Points
    2 053
    Par défaut
    Bonjour,

    Oui c'est possible

    Je le fais sur Win7 avec un programme Perl.
    Dans un premier temps, à la lecture de ta question, bien qu'il me semble qu'il n'y ait pas les GPO sous XP, j'ai cherché à le faire avec.
    En Win7 les GPO permettent de lancer des actions à partir de certains évènements détectés, par exemple l'arrêt du PC.
    J'espérais pouvoir ajouter une applet à GPO sur les Stratégies de lecture automatique de la configuration Utilisateur :
    Stratégie ordinateur local->configuration utilisateur->Modèles d'administration->Composants Windows->Stratégies de lecture automatique
    Tout comme il est possible d'ajouter des applets dans le Panneau de configuration...
    Manque de chance je n'ai pas trouvé, Microsoft est avare d'info... comme souvent...
    Petit intermède pour lancer un appel, si quelqu'un sait comment faire

    Donc je me suis rabattu sur Perl, et du coup ça doit tourner sur XP :
    J'ai Perl Strawberry 5.20 64bits avec quelques modules dedans, dont spécifiquement pour ce qui nous intéresse :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    use DBI;																	# Pour interroger la base WMI sous Windows
    use Win32::GUI ();												# Pour afficher une fenêtre d'ATTENTION
    use Encode;																# Pour encoder en iso-8859-16
    use File::Spec;														# Pour gérée les noms des chemins sous tous les OS
    use File::Path;														# Pour effacement récursif de répertoire
    Pour installer un module, le plus simple c'est l'outil du cpan qui se trouve dans le core, il suffit de taper dans une invite de commande :
    cpan install nom_du_module ex :
    Passons au choses sérieuses, le programme :
    usb.pl
    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
    #!/usr/bin/perl
    use strict;
    use warnings;
    use utf8;
    use DBI;																	# Pour interroger la base WMI sous Windows
    use Win32::GUI ();												# Pour afficher une fenêtre d'ATTENTION
    use Encode;																# Pour encoder en iso-8859-16
    use File::Spec;														# Pour gérée les noms des chemins sous tous les OS
    use File::Path;														# Pour effacement récursif de répertoire
    
    my $dbh = DBI->connect('dbi:WMI:');
    
    my $sth = $dbh->prepare(<<WQL);
        SELECT * FROM __instanceoperationevent
        WITHIN 5
        WHERE TargetInstance ISA 'Win32_LogicalDisk'
        and TargetInstance.Name != 'C:'
    WQL
    $sth->execute();
    
    ActiverAccents();
    my ( $Disk, $FhRep ) = ();
    while (defined (my $row = $sth->fetchrow_arrayref())) {
    	my $ev = $row->[0];
    	if ($ev->Path_->Class eq '__InstanceCreationEvent') {
    		$Disk = $ev->{TargetInstance}->{Name};
    		$Disk = $Disk ."\\";
    		print "Un support USB est inséré en $Disk\n";
    		print "\a\a\a\a ATTENTION il va être effacé ! \a\a\a\a\n";
    		my $Message =encode("iso-8859-16", "Le disque $Disk va être effacé !");
    		Win32::GUI::MessageBox(0,$Message,"ATTENTION !");
    		opendir my $FhRep, $Disk or die "impossible d'ouvrir le répertoire $Disk\n $!";
    		my @Contenus = grep { !/^\.\.?$/ } readdir($FhRep);
    		foreach my $Contenu ( @Contenus ) {
    			$Contenu = File::Spec->catfile($Disk, $Contenu );
    			if ( -f $Contenu  || -d $Contenu ) {
    				print "\a$Contenu en cours d'effacement\n";
    				
    				#### ATTENTION si vous supprimez le #
    				#    dans la ligne suivante vous effacerez le contenu du support USB fraîchement connecté !
    				#
    				# rmtree([$Contenu], 1, 0);
    			} else {
    				print "ATTENTION $Contenu n'est ni un fichier, ni un répertoire !\n";
    			}
    		}
    	}
    }
    
    
    #==============================================================
    # Pour avoir les accents sur la console DOS
    # http://perl.developpez.com/faq/perl/?page=Terminal#AccentsDOS
    #==============================================================
    sub ActiverAccents {
    	my $encodage;
    	# Windows
      	if ( lc($^O ) eq 'mswin32') {
    		eval {
    			my ($codepage) = ( `chcp` =~ m/:\s+(\d+)/ );
    			$encodage = "cp$codepage";
    			foreach my $h ( \*STDOUT, \*STDERR, \*STDIN, ) {
    				binmode $h, ":encoding($encodage)";
    			}
    		};	
    	}
    	else {
    		$encodage = `locale charmap`;
    		eval {
    			foreach my $h ( \*STDOUT, \*STDERR, \*STDIN, ) {
    				binmode $h, ":encoding($encodage)";
    			}
    		};	
    	}
      return $encodage;
    }
    
    #Sinon :
    #ü 	\x81 	à 	\x85 	è 	\x8A
    #é 	\x82 	ç 	\x87 	ï 	\x8B
    #â 	\x83 	ê 	\x88 	î 	\x8C
    #ä 	\x84 	ë 	\x89 	
    
    
    =pod
    ##############################################
    #
    # DOC & ORIGINES
    #
    #http://www.perlmonks.org/bare/?node_id=827106
    
    
    #!/usr/bin/perl -w
    package main;
    use strict;
    use DBI;
    use Data::Dumper;
    
    my $dbh = DBI->connect('dbi:WMI:');
    
    my $sth = $dbh->prepare(<<WQL);
        SELECT * FROM __instanceoperationevent
        WITHIN 5
        WHERE TargetInstance ISA 'Win32_LogicalDisk'
        and TargetInstance.Name != 'C:'
    WQL
    $sth->execute();
    
    # loops forever
    while (defined (my $row = $sth->fetchrow_arrayref())) {
        my $ev = $row->[0];
        
        # Windows XP only :(
        print "Class\t",$ev->Path_->Class,"\n";
        for (qw(Name DeviceID Caption MediaType InterfaceType)) {
            print join "\t", $_, ($ev->TargetInstance->{$_} || '<none>');
            print "\n";
            if ($ev->Path_->Class eq '__InstanceCreationEvent') {
                print "Device (letter) $ev->{TargetInstance}->{Name} added\n";
            }
        }
    }
    qui se lance dans une invite de commande :
    Ou à partir d'un .bat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    C:\Strawberry\perl\bin\perl.exe E:\_DEV\USB\usb.pl
    Ou si on ne souhaite ne pas voir la console :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    C:\Strawberry\perl\bin\wperl.exe E:\_DEV\USB\usb.pl
    Et pour finir si on souhaite lancer ce programme au démarrage du PC sans Invite de commande intempestive, un .vbs :
    USB.vbs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    ' Fonctionne dans [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
    ' ou dans [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
    ' Fonctionne dans menu Démarrer
    Set WshShell = WScript.CreateObject("WScript.Shell")
    strData=WshShell.ExpandEnvironmentStrings("%AppData%")
    WshShell.CurrentDirectory = strData
    WshShell.Run chr(34) & "E:\_DEV\USB\USB.bat" & Chr(34), 0
    Set WshShell = Nothing
    WScript.Quit
    Enfin on ajoute une valeur à la clé RUN du registre pour le démarrer systématiquement pour tous les utiisateurs :
    HKEY_LOCAL_MACHINE_SOFTWARE_Microsoft_Windows_CurrentVersion_Run_DelUSB.reg :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Windows Registry Editor Version 5.00
    
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
    "DelUSB"="E:\\_DEV\\USB\\USB.vbs"
    Pour un utilisateur spécifique dans la clé qui va bien uniquement...

    Bien sûr dans tout cela il faut mettre les PATHS des fichiers selon la configuration...

    NB : En supprimant le # qui commente la suppression :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    # rmtree([$Contenu], 1, 0);
    Vous prenez vos responsabilités !


    PS : A l'arrêt du PC, un programme en cours peut être signalé ?!?
    Avec les GPO il suffirait, à l'arrêt du PC, de tuer l’interpréteur wperl en cours...

    Enfin : testez correctement le programme avant de le mettre en production, il s'agit d'un premier jet de ce jour...
    il est donc perfectible et peut provoquer des bugs dans des environnements différents du mien

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mai 2018
    Messages : 13
    Points : 18
    Points
    18
    Par défaut Chiffrement a l'insertion de la clé USB
    Bonjour,

    Je trouve votre solution très intéressante et je vous remercie pour vos efforts. j'essaye de faire la même chose mais je sais pas comment modifier ton code a ce qu'il lance un programme de chiffrement tel que bitlocker.

    Je vous remercie par avance pour votre réponse.

  4. #4
    Membre chevronné Avatar de dmganges
    Homme Profil pro
    Retraité. Ne recherche pas un emploi.
    Inscrit en
    Septembre 2011
    Messages
    1 405
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité. Ne recherche pas un emploi.
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2011
    Messages : 1 405
    Points : 2 053
    Points
    2 053
    Par défaut
    Bonjour,
    C'est vieux comme Hérode
    Je ne me rappelais plus avoir fait çà !

    Mais je viens de tester et ça fonctionne.
    Entre temps je suis passé en perl Strawberry v5.26.0 MSWin32-x64-multi-thread
    J'ai dû installer les modules :
    Win32::GUI
    DBI

    Je n'ai jamais utilisé bitlocker, je viens donc de regarder sommairement comment ça fonctionne.
    N'ayant pas les droits j'ai dû le lancer dans une invite de commande en tant qu'administrateur (Donc à voir...).

    J'ai modifié rapidement le programme usb.pl pour lancer la commande :
    Mis en commentaire entre =pod & =cut la destruction initiale des fichiers,
    Laissé l'avertissement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Win32::GUI::MessageBox(0,$Message,"ATTENTION !");
    Ainsi :
    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
    my ( $Disk, $FhRep ) = ();
    while (defined (my $row = $sth->fetchrow_arrayref())) {
    	my $ev = $row->[0];
    	if ($ev->Path_->Class eq '__InstanceCreationEvent') {
    		$Disk = $ev->{TargetInstance}->{Name};
    		$Disk = $Disk ."\\";
    		print "Un support USB est inséré en $Disk\n";
    		print "\a\a\a\a ATTENTION il va être effacé ! \a\a\a\a\n";
    		my $Message =encode("iso-8859-16", "Le disque $Disk va être effacé !");
    		
    		Win32::GUI::MessageBox(0,$Message,"ATTENTION !");
    		
    		sleep 5;
    		
    		my $Executable = 'manage-bde.exe';
    		my $Param = '-status';
    		my @Cde = ( $Executable , $Param );
    		print "\n\n-->@Cde<--\n\n";
    		system @Cde;
    		
    =pod
    		Win32::GUI::MessageBox(0,$Message,"ATTENTION !");
    		opendir my $FhRep, $Disk or die "impossible d'ouvrir le répertoire $Disk\n $!";
    		my @Contenus = grep { !/^\.\.?$/ } readdir($FhRep);
    		foreach my $Contenu ( @Contenus ) {
    			$Contenu = File::Spec->catfile($Disk, $Contenu );
    			if ( -f $Contenu  || -d $Contenu ) {
    				print "\a$Contenu en cours d'effacement\n";
    				
    				#### ATTENTION si vous supprimez le #
    				#    dans la ligne suivante vous effacerez le contenu du support USB fraîchement connecté !
    				#
    				rmtree([$Contenu], 1, 0);
    			} else {
    				print "ATTENTION $Contenu n'est ni un fichier, ni un répertoire !\n";
    			}
    		}
    =cut
    	}
    }
    Inséré une clé USB en I:
    Ça fonctionne (encore )
    Je ne te serai pas d'un grand secours dans l'utilisation de bitlocker, mais l'idée est là, je pense.

    Images :

  5. #5
    Membre chevronné Avatar de dmganges
    Homme Profil pro
    Retraité. Ne recherche pas un emploi.
    Inscrit en
    Septembre 2011
    Messages
    1 405
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité. Ne recherche pas un emploi.
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2011
    Messages : 1 405
    Points : 2 053
    Points
    2 053
    Par défaut
    On continue sur le forum OK
    Donc le code pour supprimer tous les fichiers de la clé je l'ai mis en commentaire (entre =pod & =cut)

    Le code pour lancer un exécutable c'est tout simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    my $Executable = 'manage-bde.exe';
    my $Param = '-status';
    my @Cde = ( $Executable , $Param );
    print "\n\n-->@Cde<--\n\n";
    system @Cde;
    Dans l'odre :
    - On met la commande à lancer dans une variable (il peut être utile de renseigner le PATH complet de cet exécutable
    - On met le parametre à passer à l'exécutable dans une autre variable OU dans plusieurs variables ... en fonction des besoins...
    - On créé un tableau @Cde (avec pour colonne $Executable et $Param)
    - Pour faire bien le print entre --><-- affichera sur le terminal la commande lancée les --> <-- permettent de voir s'il n'y a pas de caractères parasites, espaces...
    - On lance l'instruction Perl system qui prend en paramètre la commande à lancer

    NB on peut faire plus simple mais j'ai l'habitude de faire comme çà

    exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    system 'manage-bde.exe -status';
    Ou ENCORE :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    `manage-bde.exe -status`;
    Note bien qu'il s'agit de quote inversée (AltGr 7) +Espace

    on peut faire aussi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my $Resultat = `manage-bde.exe -status`;
    On peut ici tester ce qui est renvoyé par la commande et tester $Resultat pour voir si ça c'est bien passé...
    ...

    [Edit 16:34]
    Si tu rencontres des soucis avec Perl, il y a sur developpez.net un forum dédié à Perl et même un qui regroupe tout ce qui concerne Perl avec plein de tuto de doc...

  6. #6
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mai 2018
    Messages : 13
    Points : 18
    Points
    18
    Par défaut Chiffrement clé USB
    Bonjour,

    j'ai trouvé que pour chiffré un volume faut passer la commande manage-dbe -on "le nom du volume" -recoverypassword
    sauf que dans perl quand j'essaye d'écrire cette comannde il l'accepte pas mon $Disk
    ensuite je veux que l'usb inséré qui soit chiffré et pas les autres lecteurs donc voici mon code
    my $Message =encode("iso-8859-16", "Le disque $Disk va être chiffré !");

    Win32::GUI::MessageBox(0,$Message,"ATTENTION !");

    sleep 5; #ça signifie quoi cette ligne ??

    my $Executable = 'manage-bde.exe';
    my $Param = '-on $Disk -recoverypassword'; #Ici $Disk est le disk que je veux chiffré (celui qui vient d'être inséré)
    my @Cde = ( $Executable , $Param );
    print "\n\n-->@Cde<--\n\n";
    system @Cde;

    Merci

  7. #7
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mai 2018
    Messages : 13
    Points : 18
    Points
    18
    Par défaut chiffrement clé usb
    my $Executable = 'manage-bde.exe';
    my $Param1 = '-on';
    my @Cde = ( $Executable , $Param1, $Disk );
    print "\n\n-->@Cde<--\n\n";
    system @Cde;

    J'ai essayé ce code ça marche pas la valeur $Disk rajoute un anti slash a la fin
    Par exemple si le Volume est H il m'affiche H:\ alors que dans la syntaxe de la commande manage-bde doit avoir comme option de volume exactement H:

    Merci par avance pour votre aide.

  8. #8
    Membre chevronné Avatar de dmganges
    Homme Profil pro
    Retraité. Ne recherche pas un emploi.
    Inscrit en
    Septembre 2011
    Messages
    1 405
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité. Ne recherche pas un emploi.
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2011
    Messages : 1 405
    Points : 2 053
    Points
    2 053
    Par défaut
    Bonjour,

    1)
    cela provoque une attente de 5 secondes.
    Tu peux l'enlever !
    C'était juste pour laisser un peu de temps pour réfléchir

    2)
    il m'affiche H:\ alors que dans la syntaxe de la commande manage-bde doit avoir comme option de volume exactement H:
    c'est parce que moi j'avais besoin d'un antislash à passer à ma commande, regarde bien là où je l'ajoute :
    Si tu n'en as pas besoin tu supprimes ou commentes la ligne


    [Edit 14:55]
    PS : lorsque tu colles du code utilise les balises \[CODE\] \[/CODE\] avec le bouton # ça conserve les indentations et c'est beaucoup plus lisible...
    et la bulle pour faire des citations.

    Pour avoir :
    manage-dbe -on "le nom du volume" -recoverypassword
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    my $Executable = 'manage-bde.exe';
    my $Param1 = '-on';
    my $Param2= '-recoverypassword';
    my @Cde = ( $Executable , $Param1, $Disk, $Param2 );
    print "\n\n-->@Cde<--\n\n";
    system @Cde;
    Éventuellement mets des espaces au bons endroits devant les - :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    my $Executable = 'manage-bde.exe';
    my $Param1 = ' -on ';
    my $Param2= ' -recoverypassword';
    my @Cde = ( $Executable , $Param1, $Disk, $Param2 );
    print "\n\n-->@Cde<--\n\n";
    system @Cde;

  9. #9
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mai 2018
    Messages : 13
    Points : 18
    Points
    18
    Par défaut Chiffrement a l'insertion de la clé USB
    Bonjour,

    Après avoir modifié mon code j'arrive au code suivant :
    #!/usr/bin/perl
    use strict;
    use warnings;
    use utf8;
    use DBI; # Pour interroger la base WMI sous Windows
    use Win32::GUI (); # Pour afficher une fenêtre d'ATTENTION
    use Encode; # Pour encoder en iso-8859-16
    use File::Spec; # Pour gérée les noms des chemins sous tous les OS
    use File:ath; # Pour effacement récursif de répertoire

    my $dbh = DBI->connect('dbi:WMI:');

    my $sth = $dbh->prepare(<<WQL);
    SELECT * FROM __instanceoperationevent
    WITHIN 5
    WHERE TargetInstance ISA 'Win32_LogicalDisk'
    and TargetInstance.Name != 'C:'
    WQL
    $sth->execute();

    ActiverAccents();
    my ( $Disk, $FhRep ) = ();
    while (defined (my $row = $sth->fetchrow_arrayref())) {
    my $ev = $row->[0];
    if ($ev->Path_->Class eq '__InstanceCreationEvent') {
    $Disk = $ev->{TargetInstance}->{Name};
    #$Disk = $Disk ."\\";
    print "Un support USB est inséré en $Disk\n";
    print "\a\a\a\a ATTENTION il va être chiffré ! \a\a\a\a\n";

    my $Message =encode("iso-8859-16", "Le disque $Disk va être effacé !");

    Win32::GUI::MessageBox(0,$Message,"ATTENTION !");
    my $Executable = 'manage-bde.exe';
    my $Param1 = '-on';
    my @Cde = ( $Executable , $Param1, $Disk );
    print "\n\n-->@Cde<--\n\n";
    system @Cde;
    }


    #==============================================================
    # Pour avoir les accents sur la console DOS
    # http://perl.developpez.com/faq/perl/...nal#AccentsDOS
    #==============================================================
    sub ActiverAccents {
    my $encodage;
    # Windows
    if ( lc($^O ) eq 'mswin32') {
    eval {
    my ($codepage) = ( `chcp` =~ m/:\s+(\d+)/ );
    $encodage = "cp$codepage";
    foreach my $h ( \*STDOUT, \*STDERR, \*STDIN, ) {
    binmode $h, ":encoding($encodage)";
    }
    };
    }
    else {
    $encodage = `locale charmap`;
    eval {
    foreach my $h ( \*STDOUT, \*STDERR, \*STDIN, ) {
    binmode $h, ":encoding($encodage)";
    }
    };
    }
    return $encodage;
    }

    #Sinon :
    #ü \x81 à \x85 è \x8A
    #é \x82 ç \x87 ï \x8B
    #â \x83 ê \x88 î \x8C
    #ä \x84 ë \x89


    =pod
    ##############################################
    #
    # DOC & ORIGINES
    #
    #http://www.perlmonks.org/bare/?node_id=827106

    Je comprend pas cette ligne et tout ce qui est en dessous pourquoi aviez vous rajoutez ce bout de code, ce n'est pas du SQL Si vous pouvez commentez les lignes principales je serais vraiment reconnaissant !!

    #!/usr/bin/perl -w
    package main;
    use strict;
    use DBI;
    use Data:umper;

    my $dbh = DBI->connect('dbi:WMI:');

    my $sth = $dbh->prepare(<<WQL);
    SELECT * FROM __instanceoperationevent
    WITHIN 5
    WHERE TargetInstance ISA 'Win32_LogicalDisk'
    and TargetInstance.Name != 'C:'
    WQL
    $sth->execute();

    # loops forever
    while (defined (my $row = $sth->fetchrow_arrayref())) {
    my $ev = $row->[0];

    # Windows XP only
    print "Class\t",$ev->Path_->Class,"\n";
    for (qw(Name DeviceID Caption MediaType InterfaceType)) {
    print join "\t", $_, ($ev->TargetInstance->{$_} || '<none>');
    print "\n";
    if ($ev->Path_->Class eq '__InstanceCreationEvent') {
    print "Device (letter) $ev->{TargetInstance}->{Name} added\n";
    }
    }
    }

    Merci par avance de votre réponse

  10. #10
    Membre chevronné Avatar de dmganges
    Homme Profil pro
    Retraité. Ne recherche pas un emploi.
    Inscrit en
    Septembre 2011
    Messages
    1 405
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité. Ne recherche pas un emploi.
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2011
    Messages : 1 405
    Points : 2 053
    Points
    2 053
    Par défaut
    Bonjour,

    Ta réponse est totalement illisible

    Rappel :
    Citation Envoyé par dmganges Voir le message
    [Edit 14:55]
    PS : lorsque tu colles du code utilise les balises \[CODE\] \[/CODE\] avec le bouton # ça conserve les indentations et c'est beaucoup plus lisible...
    et la bulle pour faire des citations.
    Tout ce qui est après =pod c'est du commentaire, tu peux le supprimer.

    Tout ce qui est entre =pod & =cut c'est du commentaire, tu peux le supprimer.

    Je le mets pour montrer où j'ai pioché l'info :

    Pour avoir les accents sur l'invite de commande DOS : https://perl.developpez.com/faq/perl...nal#AccentsDOS

    Le module DBI

    Explications du module DBI : http://www.perlmonks.org/bare/?node_id=827106

    Si tu suis les liens qui se trouvent à l'intérieur, tu arriveras aux informations

  11. #11
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mai 2018
    Messages : 13
    Points : 18
    Points
    18
    Par défaut Chiffrement a l'insertion de la clé USB
    Quand j'insère un disque dure externe ça m'affiche

    manage-bde -on E:<--

    en fait je cherche a ce que le nom du volume s'affiche tel qu'il est (manage-bde -on E: ) , j'ai essayé de décomenter la ligne ci-dessous mais sans résultat.

    $Disk = $ev->{TargetInstance}->{Name};

    Je tiens vraiment a vos réponses,
    Merci bien

  12. #12
    Membre chevronné Avatar de dmganges
    Homme Profil pro
    Retraité. Ne recherche pas un emploi.
    Inscrit en
    Septembre 2011
    Messages
    1 405
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité. Ne recherche pas un emploi.
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2011
    Messages : 1 405
    Points : 2 053
    Points
    2 053
    Par défaut
    Insère la totalité de ton code entre balises CODE comme sur l'image ci-dessous

    [-CODE] [/CODE]

    je ne peux pas voir où est le pb

  13. #13
    Membre chevronné Avatar de dmganges
    Homme Profil pro
    Retraité. Ne recherche pas un emploi.
    Inscrit en
    Septembre 2011
    Messages
    1 405
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité. Ne recherche pas un emploi.
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2011
    Messages : 1 405
    Points : 2 053
    Points
    2 053
    Par défaut
    Pour avoir :
    Avec ce qu'on a fait, il faut :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    my $Executable = 'manage-bde.exe';
    my $Param1 = ' -on ';
    my @Cde = ( $Executable , $Param1,  $Disk );
    print "\n\n-->@Cde<--\n\n";
    system @Cde;
    Mais je n'ai jamais utilisé manage-bde...
    Je te donne seulement l'ordre des paramètres... après ce que ça fait, si tu as les droits ou non, si tu as une key correctement générée... je ne maîtrise pas

  14. #14
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mai 2018
    Messages : 13
    Points : 18
    Points
    18
    Par défaut
    Ah voilà désolé ;
    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
    #!/usr/bin/perl
    use strict;
    use warnings;
    use utf8;
    use DBI;																	# Pour interroger la base WMI sous Windows
    use Win32::GUI ();												# Pour afficher une fenêtre d'ATTENTION
    use Encode;																# Pour encoder en iso-8859-16
    use File::Spec;														# Pour gérée les noms des chemins sous tous les OS
    use File::Path;														# Pour effacement récursif de répertoire
    
    my $dbh = DBI->connect('dbi:WMI:');
    
    my $sth = $dbh->prepare(<<WQL);
        SELECT * FROM __instanceoperationevent
        WITHIN 5
        WHERE TargetInstance ISA 'Win32_LogicalDisk'
        and TargetInstance.Name != 'C:'
    WQL
    $sth->execute();
    
    ActiverAccents();
    my ( $Disk, $FhRep ) = ();
    while (defined (my $row = $sth->fetchrow_arrayref())) {
    	my $ev = $row->[0];
    	if ($ev->Path_->Class eq '__InstanceCreationEvent') {
    		$Disk = $ev->{TargetInstance}->{Name};
    		#$Disk = $Disk ."\\";
    		print "Un support USB est inséré en $Disk\n";
    		print "\a\a\a\a ATTENTION il va être chiffré ! \a\a\a\a\n";
    		
    		my $Message =encode("iso-8859-16", "Le disque $Disk va être chiffré !");
    		
    		Win32::GUI::MessageBox(0,$Message,"ATTENTION !");
    		my $Executable = 'manage-bde.exe';
    		my $Param1 = '-on';
    		my @Cde = ( $Executable , $Param1, $Disk );
    		print "\n\n@Cde\n\n";
    		system @Cde;
    	}
    }
    
    
    #==============================================================
    # Pour avoir les accents sur la console DOS
    # http://perl.developpez.com/faq/perl/?page=Terminal#AccentsDOS
    #==============================================================
    sub ActiverAccents {
    	my $encodage;
    	# Windows
      	if ( lc($^O ) eq 'mswin32') {	
    		eval {
    			my ($codepage) = ( `chcp` =~ m/:\s+(\d+)/ );
    			$encodage = "cp$codepage";
    			foreach my $h ( \*STDOUT, \*STDERR, \*STDIN, ) {
    				binmode $h, ":encoding($encodage)";
    			}
    		};	
    	}
    	else {
    		$encodage = `locale charmap`;
    		eval {
    			foreach my $h ( \*STDOUT, \*STDERR, \*STDIN, ) {
    				binmode $h, ":encoding($encodage)";
    			}
    		};	
    	}
      return $encodage;
    }
    
    #Sinon :
    #ü 	\x81 	à 	\x85 	è 	\x8A
    #é 	\x82 	ç 	\x87 	ï 	\x8B
    #â 	\x83 	ê 	\x88 	î 	\x8C
    #ä 	\x84 	ë 	\x89 	
    
    
    =pod
    ##############################################
    #
    # DOC & ORIGINES
    #
    #http://www.perlmonks.org/bare/?node_id=827106
    
    
    #!/usr/bin/perl -w
    package main;
    use strict;
    use DBI;
    use Data::Dumper;
    
    my $dbh = DBI->connect('dbi:WMI:');
    
    my $sth = $dbh->prepare(<<WQL);
        SELECT * FROM __instanceoperationevent
        WITHIN 5
        WHERE TargetInstance ISA 'Win32_LogicalDisk'
        and TargetInstance.Name != 'C:'
    WQL
    $sth->execute();
    
    # loops forever
    while (defined (my $row = $sth->fetchrow_arrayref())) {
        my $ev = $row->[0];
        
        # Windows XP only :(
        print "Class\t",$ev->Path_->Class,"\n";
        for (qw(Name DeviceID Caption MediaType InterfaceType)) {
            print join "\t", $_, ($ev->TargetInstance->{$_} || '<none>');
            print "\n";
            if ($ev->Path_->Class eq '__InstanceCreationEvent') {
                print "Device (letter) $ev->{TargetInstance}->{Name} added\n";
            }
        }
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Quand j'insère une clé USB tout marche comme prévu et la clé est chiffré mais quand j'insère un disque mais cette fois sur un autre ordinateur il me dis que la commande manage-bde.exe n'est pas reconnu en tant que commande interne ou externe.
    Merci bien

  15. #15
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mai 2018
    Messages : 13
    Points : 18
    Points
    18
    Par défaut Chiffrement a l'insertion de la clé USB
    Par contre en dehors du script la commande manage.bde.exe fonctionne bien!

  16. #16
    Membre chevronné Avatar de dmganges
    Homme Profil pro
    Retraité. Ne recherche pas un emploi.
    Inscrit en
    Septembre 2011
    Messages
    1 405
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité. Ne recherche pas un emploi.
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2011
    Messages : 1 405
    Points : 2 053
    Points
    2 053
    Par défaut
    HA !
    merci ça va mieux pour mes vieux yeux.

    Utilise # que pour le code pour les citations tu as la bulle juste à côté :

    Quand j'insère une clé USB tout marche comme prévu et la clé est chiffré mais quand j'insère un disque mais cette fois sur un autre ordinateur il me dis que la commande manage-bde.exe n'est pas reconnu en tant que commande interne ou externe.
    Donc soit
    - tu es sur un PC qui n'a pas manage-bde.exe et tu es cuit
    - soit le PATH n'est pas à niveaux (ce qui m'étonnerait)

    Donc :
    - il te faut recherche sur tout le disque l'exécutable manage-bde.exe

    En Windows 7 il se trouve sous :
    Si tu le trouves tu mets la totalité du PATH de cet exécutable dans la variable $Executable

    Comme ceci :

    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
    #!/usr/bin/perl
    use strict;
    use warnings;
    use utf8;
    use DBI;																	# Pour interroger la base WMI sous Windows
    use Win32::GUI ();												# Pour afficher une fenêtre d'ATTENTION
    use Encode;																# Pour encoder en iso-8859-16
    
    my $dbh = DBI->connect('dbi:WMI:');
    
    my $sth = $dbh->prepare(<<WQL);
        SELECT * FROM __instanceoperationevent
        WITHIN 5
        WHERE TargetInstance ISA 'Win32_LogicalDisk'
        and TargetInstance.Name != 'C:'
    WQL
    $sth->execute();
    
    
    my ( $Disk, $FhRep ) = ();
    while (defined (my $row = $sth->fetchrow_arrayref())) {
    	my $ev = $row->[0];
    	if ($ev->Path_->Class eq '__InstanceCreationEvent') {
    		$Disk = $ev->{TargetInstance}->{Name};
    		#$Disk = $Disk ."\\";
    		print "Un support USB est inséré en $Disk\n";
    		print "ATTENTION il va être chiffré !\n";
    		
    		my $Message =encode("iso-8859-16", "Le disque $Disk va être chiffré !");
    		
    		Win32::GUI::MessageBox(0,$Message,"ATTENTION !");
    		my $Executable = 'C:\Windows\System32\manage-bde.exe';
    		my $Param1 = '-on';
    		my @Cde = ( $Executable , $Param1, $Disk );
    		print "\n\n@Cde\n\n";
    		system @Cde;
    	}
    }
    J'ai supprimé tous les commentaires et l'utilisation de ActiverAccents(); puisque tu ne fais pas de print sur l'invite de commande

    [Edit]
    Par contre en dehors du script la commande manage.bde.exe fonctionne bien!
    Bonne nouvelle !
    Donc mets dans le pgm le PATH complet (Le tien pas forcément le mien, vérifie que l'exécutable se trouve bien :

    [Re Edit]
    Tu n'as pas besoin non plus de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    use File::Spec;														# Pour gérée les noms des chemins sous tous les OS
    use File::Path;														# Pour effacement récursif de répertoire
    puisque tu ne gère pas de fichiers...
    A supprimer !
    Je l'ai fait dans le code ci-dessus !

  17. #17
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mai 2018
    Messages : 13
    Points : 18
    Points
    18
    Par défaut Chiffrement a l'insertion de la clé USB
    En fait la commande n'est pas reconnu que quand je la lance via le script usb.pl
    , par contre quand je la lance en CMD normal la commande s'éxecute !
    jai bien marqué le chemin de la commande mais toujours le même résultat ( commande non reconnu )


    Merci Bien

  18. #18
    Membre chevronné Avatar de dmganges
    Homme Profil pro
    Retraité. Ne recherche pas un emploi.
    Inscrit en
    Septembre 2011
    Messages
    1 405
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité. Ne recherche pas un emploi.
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2011
    Messages : 1 405
    Points : 2 053
    Points
    2 053
    Par défaut
    Est-ce que tu le lances dans une invite en tant qu'Administraateur ?

    Si non :
    Clic droit sur l'icône 'Invite de commande' --> Lancer en tant qu'Administrateur


    et là tu lances l'exécutable Perl

  19. #19
    Membre chevronné Avatar de dmganges
    Homme Profil pro
    Retraité. Ne recherche pas un emploi.
    Inscrit en
    Septembre 2011
    Messages
    1 405
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité. Ne recherche pas un emploi.
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2011
    Messages : 1 405
    Points : 2 053
    Points
    2 053
    Par défaut
    Je crains que ce soit un pb de droits

    J'ai rajouté activeraccent();

    J'ai modifié de façon an ne faire qu'un -status en paramètre et ça fonctionne

    Essaie de faire la même chose : juste un -status dans manage-bde :

    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
    #!/usr/bin/perl
    use strict;
    use warnings;
    use utf8;
    use DBI;																	# Pour interroger la base WMI sous Windows
    use Win32::GUI ();												# Pour afficher une fenêtre d'ATTENTION
    use Encode;																# Pour encoder en iso-8859-16
    
    my $dbh = DBI->connect('dbi:WMI:');
    
    my $sth = $dbh->prepare(<<WQL);
        SELECT * FROM __instanceoperationevent
        WITHIN 5
        WHERE TargetInstance ISA 'Win32_LogicalDisk'
        and TargetInstance.Name != 'C:'
    WQL
    $sth->execute();
    
    ActiverAccents();
    
    my ( $Disk, $FhRep ) = ();
    while (defined (my $row = $sth->fetchrow_arrayref())) {
    	my $ev = $row->[0];
    	if ($ev->Path_->Class eq '__InstanceCreationEvent') {
    		$Disk = $ev->{TargetInstance}->{Name};
    		#$Disk = $Disk ."\\";
    		print "Un support USB est inséré en $Disk\n";
    		print "ATTENTION il va être chiffré !\n";
    		
    		my $Message =encode("iso-8859-16", "Le disque $Disk va être chiffré !");
    		
    		Win32::GUI::MessageBox(0,$Message,"ATTENTION !");
    		my $Executable = 'manage-bde.exe';
    		my $Param1 = '-status';
    		my @Cde = ( $Executable , $Param1, $Disk );
    		
    		
    		print "\n\n--->@Cde<---\n\n";
    		system @Cde;
    	}
    }
    
    #==============================================================
    # Pour avoir les accents sur la console DOS
    # http://perl.developpez.com/faq/perl/?page=Terminal#AccentsDOS
    #==============================================================
    sub ActiverAccents {
    	my $encodage;
    	# Windows
      	if ( lc($^O ) eq 'mswin32') {
    		eval {
    			my ($codepage) = ( `chcp` =~ m/:\s+(\d+)/ );
    			$encodage = "cp$codepage";
    			foreach my $h ( \*STDOUT, \*STDERR, \*STDIN, ) {
    				binmode $h, ":encoding($encodage)";
    			}
    		};	
    	}
    	else {
    		$encodage = `locale charmap`;
    		eval {
    			foreach my $h ( \*STDOUT, \*STDERR, \*STDIN, ) {
    				binmode $h, ":encoding($encodage)";
    			}
    		};	
    	}
      return $encodage;
    }
    Là je fais une pause miam miam @+

  20. #20
    Membre chevronné Avatar de dmganges
    Homme Profil pro
    Retraité. Ne recherche pas un emploi.
    Inscrit en
    Septembre 2011
    Messages
    1 405
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité. Ne recherche pas un emploi.
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2011
    Messages : 1 405
    Points : 2 053
    Points
    2 053
    Par défaut
    Bon le jour se lève

    Essaie çà :
    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
    #!/usr/bin/perl
    use strict;
    use warnings;
    use utf8;
    use DBI;																	# Pour interroger la base WMI sous Windows
    use Win32::GUI ();												# Pour afficher une fenêtre d'ATTENTION
    use Encode;																# Pour encoder en iso-8859-16
    
    my $dbh = DBI->connect('dbi:WMI:');
    
    my $sth = $dbh->prepare(<<WQL);
        SELECT * FROM __instanceoperationevent
        WITHIN 5
        WHERE TargetInstance ISA 'Win32_LogicalDisk'
        and TargetInstance.Name != 'C:'
    WQL
    $sth->execute();
    
    ActiverAccents();
    
    my ( $Disk, $FhRep, $LigneCde ) = ();
    my $Executable = 'C:/Windows/System32/manage-bde.exe';
    my $Param1     = '-on';
    
    while (defined (my $row = $sth->fetchrow_arrayref())) {
    	my $ev = $row->[0];
    	if ($ev->Path_->Class eq '__InstanceCreationEvent') {
    		$Disk = $ev->{TargetInstance}->{Name};
    		#$Disk = $Disk ."\\";
    		print "Un support USB est inséré en $Disk\n";
    		print "ATTENTION il va être chiffré !\n";
    		my $Message =encode("iso-8859-16", "Le disque $Disk va être chiffré !");
    		Win32::GUI::MessageBox(0,$Message,"ATTENTION !");
    		$LigneCde = "$Executable $Param1 $Disk";
    
    		print "\n\n--->$LigneCde<---\n\n";
    		my $Resultat = `$LigneCde`;
    		print "PATIENTER retirer la clé !\n";
    		if ( $Resultat ) {
    			my $Message =encode("iso-8859-16", "Retirer la clé, Taper OK, puis en insérer événtuellement une autre !");
    			print "$Message \n";
    			Win32::GUI::MessageBox(0,$Message,"ATTENTION !");
    			sleep 5;
    			next;
    		}
    	}
    }
    
    
    #==============================================================
    # Pour avoir les accents sur la console DOS
    # http://perl.developpez.com/faq/perl/?page=Terminal#AccentsDOS
    #==============================================================
    sub ActiverAccents {
    	my $encodage;
    	# Windows
      	if ( lc($^O ) eq 'mswin32') {
    		eval {
    			my ($codepage) = ( `chcp` =~ m/:\s+(\d+)/ );
    			$encodage = "cp$codepage";
    			foreach my $h ( \*STDOUT, \*STDERR, \*STDIN, ) {
    				binmode $h, ":encoding($encodage)";
    			}
    		};	
    	}
    	else {
    		$encodage = `locale charmap`;
    		eval {
    			foreach my $h ( \*STDOUT, \*STDERR, \*STDIN, ) {
    				binmode $h, ":encoding($encodage)";
    			}
    		};	
    	}
      return $encodage;
    }
    Chez moi je n'ai pas pas d'erreur... ???
    Mais je n'ai pas de key de chiffrement, mais déjà il ne proteste pas !

    Si tu me donnes qq explications pour chiffrer, créer une key... ça me permettrait de mieux tester...
    Je n'ai pas trop envie de partir à la découverte, surtout si tu as l'info... ou un lien...

    [Edit 29/05 04:35]
    Ma curiosité n'a pas résisté, mais elle n'a pu aller bien loin, mes PC sont en Win7 -> BitLocker en supporte pas toutes les nouvelles fonctionnalités.

Discussions similaires

  1. Réponses: 4
    Dernier message: 27/05/2008, 22h34
  2. Réponses: 1
    Dernier message: 01/12/2007, 15h18
  3. Réponses: 2
    Dernier message: 23/06/2006, 10h23
  4. suppression des données
    Par nabil1 dans le forum Oracle
    Réponses: 6
    Dernier message: 07/04/2006, 13h38
  5. Récupérer des données via usb
    Par Palca dans le forum Langages de programmation
    Réponses: 1
    Dernier message: 12/01/2006, 14h33

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