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

Modules Perl Discussion :

Net use trop crado


Sujet :

Modules Perl

  1. #1
    Mr6
    Mr6 est déconnecté
    Membre éclairé

    Homme Profil pro
    Inscrit en
    Septembre 2004
    Messages
    607
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2004
    Messages : 607
    Points : 794
    Points
    794
    Par défaut Net use trop crado
    Salut tout le monde !

    Comme dit dans le tire, je trouve net use un peu trop crado, et je ne saisis pas très bien comment utiliser Win32::NetResource pour lancer quelques commandes.
    Je m'explique : Voici mon 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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    my $serveur = 'serveur';
    my $domaine = 'domaine';
    my $login = 'user';
    my $password = 'pass';
     
    my $net_use = `net use /delete q:` if (`Q:` ne "Le lecteur spécifié est introuvable.");
    $net_use = `net use q: \\\\$serveur.$domaine\\d\$\\notes\\data /user:$login\@$domaine $password`;
     
    my @lst = `dir /ad Q:`;
    #print @lst;
     
    my %arbo;
    foreach (@lst) {
    	chop;
    	next unless /<REP>/;
    	s/.*\s+<REP>\s+(.*)/\1/;
    	$arbo{$_} = '' unless /\.\./;
    }
     
    foreach my $key (sort keys %arbo) {
    	print "$key\n";
    }
     
    #open NOTES_Q, ">"."arbo_notes_$serveur.txt" or die "Impossible d'écrire : $!\n";
    #print NOTES_Q `dir /S Q:`;
    #close (NOTES_Q);
     
    $net_use = `net use /delete q:`;
    Lorsque je l'exécute, ca me laisse souvent mon lecteur Q connecté, malgré le delete. Pire, je suis maintenant obligé de taper sur une touche pour qu'il avance et il rale ces insultes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    L'erreur système 85 s'est produite.
     
    Nom de périphérique local déjà utilisé.
    Et je dois bien sûr taper sur une touche pour qu'il termine le script...
    Quelqu'un a-t-il une idée ? Ou m'expliquer comment lancer mes commandes (dir pour l'essentiel) en utilisant Win32::NetResource ? J'ai bien réussi à me créer le partage (un net use m'indique qu'il est là connecté, mais sans lettre de connexion assignée), mais je ne vois pas comment on l'exploite...

    @+
    Mr6

  2. #2
    Mr6
    Mr6 est déconnecté
    Membre éclairé

    Homme Profil pro
    Inscrit en
    Septembre 2004
    Messages
    607
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2004
    Messages : 607
    Points : 794
    Points
    794
    Par défaut
    Personne ne peut m'aider ?

  3. #3
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Quel est le problème exactement ? Qu'est-ce que tu as écris comme code ? Les exemples de Win32::NetResource marche ?

    --
    Jedaï

  4. #4
    Mr6
    Mr6 est déconnecté
    Membre éclairé

    Homme Profil pro
    Inscrit en
    Septembre 2004
    Messages
    607
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2004
    Messages : 607
    Points : 794
    Points
    794
    Par défaut
    Les exemples de Win32::NetResource ne sont pas spécialement explicites pour en comprendre le fonctionnement, mais j'ai enfin fini par trouver un script qui m'a permis de faire ce que je voulais :

    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
    my $SHARE = {
         RemoteName =>  "\\\\$serveur.$domaine$path",
         LocalName  =>  undef};
     
    if( not defined $SHARE->{LocalName} ) {
    	$SHARE->{LocalName} = free_drive_letter();
    	if( not AddConnection( $SHARE, $password, "$login\@$domaine", $connection)) {
    		print "share connection error:\n", win32err();
    	}
    }
     
    #print `dir $SHARE->{LocalName}`;
     
    if( defined $SHARE->{LocalName} ) {
    	if( not CancelConnection( $SHARE->{LocalName}, $connection, $force )) {
    		print "disconnection error:\n", win32err();
    	}
    }
     
    sub free_drive_letter {
         my $drive;
         for my $letter ('f' .. 'z' ) {
             my $mapped;
             $drive = "$letter:";
             GetUNCName( $mapped, $drive );
             return $drive if not $mapped;
         }
         print "All network drive letters (F: .. Z:) are in use\n";
    }
     
    sub win32err {
         my $err;
         Win32::NetResource::GetError($err);
         Win32::FormatMessage($err);
    }

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 29
    Points : 20
    Points
    20
    Par défaut Pourquoi pas utiliser les rep UNC
    Pourquoi pas utiliser les rep UNC ,

    Si c'est juste pour pouvoir lire un rep un acces avec les commande UNC , fonction bien et tu n'est pas obligé de monter aucun repertoire et donc de le fermer.



    $dir = chdir ("\\Host\rep");
    => une fois dans le rep , on peut faire un dir , cd etc...

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

Discussions similaires

  1. [VB.NET2005] Net use persistant.
    Par Dnx dans le forum Windows Forms
    Réponses: 3
    Dernier message: 26/01/2007, 09h54
  2. xp_cmdshell utilisation avec net use
    Par lazzeroni dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 25/01/2007, 16h22
  3. net use déconnection automatique
    Par hologram dans le forum Autres Logiciels
    Réponses: 1
    Dernier message: 07/12/2006, 15h12
  4. net use en perl
    Par vince2005 dans le forum Programmation et administration système
    Réponses: 2
    Dernier message: 02/08/2006, 16h58
  5. [Réseaux] Comment faire un Net Use en Delphi ?
    Par Spart64 dans le forum Web & réseau
    Réponses: 2
    Dernier message: 28/04/2004, 14h53

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