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 :

connecter un lecteur reseau


Sujet :

Programmation et administration système Perl

  1. #1
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    624
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 624
    Par défaut connecter un lecteur reseau
    bonjour,

    J'arrive pas à connecter un lecteur reseau en perl.

    Voici mon script
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    use Win32::NetResource;
     
    #AddConnection(\%NETRESOURCE,$Password,$UserName,$Connection) 
     
    AddConnection(\\MACHINE\TOTO\DONNEES,password,user,T:\)

  2. #2
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 604
    Par défaut
    2 remarques :

    Si c'est un extrait de ton code et qu'il y a d'autres lignes après la dernière montrée, il manque un ; à ta dernière ligne. Question camouflée derrière cette remarque : ton code compile-t-il ?

    Sinon, que donne un eval sur AddConnection(\\MACHINE\TOTO\DONNEES,password,user,T:\) ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    eval {
        AddConnection(\\MACHINE\TOTO\DONNEES,password,user,T:\);
    };
    warn "Erreur : $@\n" if ($@);
    Pour tes variables password et user, ne serait-ce pas plutôt $password et $user ?

    De plus, je pense que des " " seraient de bon aloi

    AddConnection("\\MACHINE\TOTO\DONNEES",$password,$user,"T:\");

  3. #3
    Membre Expert Avatar de MarneusCalgarXP
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    911
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 911
    Par défaut
    D'après la doc du module , le 1° paramètre est une référence sur une hash contenant les valeurs suivantes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AddConnection (\%netresource, password, username, connection)
    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
     
    %NETRESOURCE
     
                KEY                    VALUE
     
                'Scope'         =>  Scope of an Enumeration
                                    RESOURCE_CONNECTED,
                                    RESOURCE_GLOBALNET,
                                    RESOURCE_REMEMBERED.
     
                'Type'          =>  The type of resource to Enum
                                    RESOURCETYPE_ANY    All resources
                                    RESOURCETYPE_DISK    Disk resources
                                    RESOURCETYPE_PRINT    Print resources
     
                'DisplayType'   =>  The way the resource should be displayed.
                                    RESOURCEDISPLAYTYPE_DOMAIN    
                                    The object should be displayed as a domain.
                                    RESOURCEDISPLAYTYPE_GENERIC    
                                    The method used to display the object does not matter.
                                    RESOURCEDISPLAYTYPE_SERVER    
                                    The object should be displayed as a server.
                                    RESOURCEDISPLAYTYPE_SHARE    
                                    The object should be displayed as a sharepoint.
     
                'Usage'         =>  Specifies the Resources usage:
                                    RESOURCEUSAGE_CONNECTABLE
                                    RESOURCEUSAGE_CONTAINER.
     
                'LocalName'     =>  Name of the local device the resource is 
                                    connected to.
     
                'RemoteName'    =>  The network name of the resource.
     
                'Comment'       =>  A string comment.
     
                'Provider'      =>  Name of the provider of the resource.
    et le dernier paramètre n'est pas non plus une chaine, c'est un flag booleen...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    The connection flag indicates whether the connection should be remembered for the user for all logins.

  4. #4
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    624
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 624
    Par défaut
    j'ai lu la doc du module, mais vu mon niveau, c'est pas tres parlant !!!

    auriez vous un exemple concret ..

    merci

  5. #5
    Membre Expert Avatar de MarneusCalgarXP
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    911
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 911
    Par défaut
    Pour moi, ca veut dire qu'il faut faire qqch dans ce genre là (attention, les valeurs que je mets à titre d'exemple sont fausses, ce sera à toi de les renseigner correctement)

    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
     
    use Win32::NetResource;
     
    my $netresource = {
      'Scope'         =>  RESOURCE_CONNECTED ,
      'Type'          =>  RESOURCETYPE_DISK ,
      'DisplayType'   =>  RESOURCEDISPLAYTYPE_SHARE ,
      'Usage'         =>  RESOURCEUSAGE_CONNECTABLE ,
      'LocalName'     =>  'T:' ,
      'RemoteName'    =>  '//machine/chemin' ,
      'Comment'       =>  'trop cool ca marche' ,
      'Provider'      =>  'je suis un fournisseur'
    };
     
    AddConnection ($netresource, $password, $username, 0);

  6. #6
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    624
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 624
    Par défaut
    j'ai le message d'erreur suivant

    Undefined subroutine &main::AddConnection called at C:\essai1.pl line 26

    qui correspond à la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    AddConnection ($netresource, $password, $username, 0);

  7. #7
    Membre Expert Avatar de MarneusCalgarXP
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    911
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 911
    Par défaut
    Effectivement, il fallait déclarer l'importation de la méthode. J'en ai profité pour faire des tests et pondre un code qui fonctionne

    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
     
    BEGIN {
    	use Win32::NetResource qw(:DEFAULT AddConnection);
    	use strict;
    }
     
    my $username = 'user'; # remote user name
    my $password = 'the password goes here'; # remote password
    my $persistent = 0; # 1 for yes
    my $localname = 'M:';
     
    my %NETRESOURCE=(
    	Type 		=> RESOURCETYPE_ANY,
    	RemoteName	=> "\\\\W59120\\webs",
    	LocalName	=> $localname,
    );
     
     
     
    # Map a remote share to the local drive letter M:
    AddConnection(\%NETRESOURCE, $password, $username, $persistent) ||
    	die Win32::FormatMessage(Win32::GetLastError)."\n";

  8. #8
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    624
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 624
    Par défaut
    maintenant, j'ai ce message là

    Bareword "RESOURCE_CONNECTED" not allowed while "strict subs" in use at C:\Perl\proc\essai1.pl line 16.
    Bareword "RESOURCETYPE_DISK" not allowed while "strict subs" in use at C:\Perl\proc\essai1.pl line 16.
    Bareword "RESOURCEDISPLAYTYPE_SHARE" not allowed while "strict subs" in use at C:\Perl\proc\essai1.pl line 16.
    Bareword "RESOURCEUSAGE_CONNECTABLE" not allowed while "strict subs" in use at C:\Perl\proc\essai1.pl line 16.
    Execution of C:\Perl\proc\essai1.pl aborted due to compilation errors.

  9. #9
    Membre Expert Avatar de MarneusCalgarXP
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    911
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 911
    Par défaut
    Je viens de modifier mon code, reprends le

  10. #10
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    624
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 624
    Par défaut
    je retire les messages d'erreurs ci-dessus !!

    mon lecteur se connecte bien, par contre j'ai le message suivant
    Use of uninitialized value in pack at C:/Perl/lib/Win32/NetResource.pm line 339

  11. #11
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    624
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 624
    Par défaut
    et si je veux déconnecter ce lecteur ??

    merci encore pour ton aide !!!

    Vince

  12. #12
    Membre Expert Avatar de MarneusCalgarXP
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    911
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 911
    Par défaut
    Et voila pour la déconnexion (je te mets le code que j'ai trouvé sur le net tel quel )

    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
     
    # Map a remote share , and the disconnected it
     
     
    use Win32::NetResource qw(:DEFAULT AddConnection CancelConnection);
     
    my $username = 'Administrator'; # remote user name
    my $password = 'the password goes here'; # remote password
    my $persistent = 0; # 1 for yes
    my $force = 1; # used to force disconnection if user are connected
    my $localname = 'M:';
     
     
     
    my %NETRESOURCE=(
    Type => RESOURCETYPE_ANY,
    RemoteName => "\\\\HOST01\\C\$",
    LocalName => $localname,
    );
     
     
    # Map a remote share to the local drive letter M:
    AddConnection(\%NETRESOURCE,$password,$u
    sername,$persistent) || 
      die Win32::FormatMessage(Win32::GetLastError)."\n";
     
    # Disconnet a remote share
    CancelConnection('M:',$persistent,$force) || 
      die Win32::FormatMessage(Win32::GetLastError)."\n";

  13. #13
    Mr6
    Mr6 est déconnecté
    Membre émérite

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

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2004
    Messages : 608
    Par défaut
    http://www.developpez.net/forums/sho...d.php?t=171010
    Voilà ce que j'avais mis sur le sujet avant les vacances

  14. #14
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    624
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 624
    Par défaut
    la connection et déconnection fonctionne. Mais par contre quand je me connecte, j'ai le message :

    Use of uninitialized value in pack at C:/Perl/lib/Win32/NetResource.pm line 339

    est ce que ma librairie n'est pas bonne ! ça correspond à

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    my $netres = pack( 'i4 p4', $h->{Scope},
        		$h->{Type},
    		$h->{DisplayType},
    la valeur pack est peut etre une autre librairie ??

  15. #15
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    624
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 624
    Par défaut
    si par exemple sous nt, j'ai créer un lecteur avec un compte toto.
    Et que je veux déconnecter ce lecteur avec mon compte tata : avec les scritps ci dessus, çà ne fonctionne pas. Les comptes doivent être identique, même si ils sont administrateurs du pc.

    est ce que quelqu'un à une idée pour forcer la suppression de cette connection.

    Merci encore

Discussions similaires

  1. [VB.NET] Connecter un lecteur reseau
    Par bbor99 dans le forum Débuter
    Réponses: 1
    Dernier message: 05/12/2011, 09h44
  2. impossible de connecter un lecteur reseau
    Par passion_info dans le forum Windows Serveur
    Réponses: 1
    Dernier message: 14/01/2009, 14h12
  3. Connection sur lecteur en réseau
    Par Benjii dans le forum Paradox
    Réponses: 9
    Dernier message: 01/08/2007, 11h55
  4. [VB.Net 2003] Connecter un lecteur reseau
    Par Drwong dans le forum Windows Forms
    Réponses: 4
    Dernier message: 20/06/2006, 17h59
  5. Connecter un lecteur reseau
    Par manusweb dans le forum C++Builder
    Réponses: 4
    Dernier message: 03/09/2002, 12h07

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