[R] Vista et les fonctions DriveMapAdd, DriveMapDel...

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
phenaff
Niveau 1
Niveau 1
Messages : 11
Enregistré le : mer. 08 oct. 2008 21:46
Status : Hors ligne

[R] Vista et les fonctions DriveMapAdd, DriveMapDel...

#1

Message par phenaff »

Bonjour,
Je développe actuellement un script afin d'automatiser la création de lecteurs réseau. Sous 98 et XP, aucun problème: les fonctions de création (DriveMapAdd) , suppression (DriveMapDel) et recherche (DriveMapGet) de lecteur réseau fonctionnent à merveille. Mais sous Vista aucune ne semble tourner correctement i.e je n'arrive jamais à créer, supprimer ou chercher un lecteur réseau. Quelqu'un a-t-il déjà rencontré ce problème? Est-ce une incompatibilité avec Vista?
Merci d'avance pour vos réponses.
Modifié en dernier par phenaff le lun. 27 oct. 2008 19:20, modifié 1 fois.
Avatar du membre
sylvanie
Niveau 11
Niveau 11
Messages : 1556
Enregistré le : jeu. 26 juil. 2007 21:31
Localisation : Paris
Status : Hors ligne

Re: [..] Vista et les fonctions DriveMapAdd, DriveMapDel...

#2

Message par sylvanie »

je ne connais pas d'incompatibilité Vista pour ma part.
Que renvoie @error après l'execution de DriveMapAdd ?
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
phenaff
Niveau 1
Niveau 1
Messages : 11
Enregistré le : mer. 08 oct. 2008 21:46
Status : Hors ligne

Re: [..] Vista et les fonctions DriveMapAdd, DriveMapDel...

#3

Message par phenaff »

sylvanie a écrit :je ne connais pas d'incompatibilité Vista pour ma part.
Que renvoie @error après l'execution de DriveMapAdd ?
Bonjour,
en fait aucun message d'erreur n'est renvoyé mais aucun lecteur n'apparait dans le poste de travail, ni dans la base de registre (HKEY_CURRENT_USER\Network). Cependant, quand je relance la fonction, celle-ci me signale que ce même lecteur est déjà mappé.
Donc incompréhension de ma part!!!!
Avatar du membre
sylvanie
Niveau 11
Niveau 11
Messages : 1556
Enregistré le : jeu. 26 juil. 2007 21:31
Localisation : Paris
Status : Hors ligne

Re: [..] Vista et les fonctions DriveMapAdd, DriveMapDel...

#4

Message par sylvanie »

@error n'est pas un message d'erreur explicite comme un popup ou un log, mais une variable globale générale comme la fonction getlasterror de windows relative à la dernière fonction appeler
exple, dans un script on appel :

Code : Tout sélectionner

DriveMapAdd(.....)
msgbox(0,"code erreur de retour de DriveMapAdd",@error)
 
et donc là on aura un début de piste, sachant que dans le cas de DriveMapAdd on a :

When the function fails (returns 0) @error contains extended information:
1 = Undefined / Other error. @extended set with Windows API return
2 = Access to the remote share was denied
3 = The device is already assigned
4 = Invalid device name
5 = Invalid remote share
6 = Invalid password
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
phenaff
Niveau 1
Niveau 1
Messages : 11
Enregistré le : mer. 08 oct. 2008 21:46
Status : Hors ligne

Re: [..] Vista et les fonctions DriveMapAdd, DriveMapDel...

#5

Message par phenaff »

Bonjour,
C'est par abus de langage que j'ai employé "aucun message d'erreur" mais j'entendais bien par là les valeurs renvoyées par @error.
Avatar du membre
sylvanie
Niveau 11
Niveau 11
Messages : 1556
Enregistré le : jeu. 26 juil. 2007 21:31
Localisation : Paris
Status : Hors ligne

Re: [..] Vista et les fonctions DriveMapAdd, DriveMapDel...

#6

Message par sylvanie »

Ok, donc la c'est un très mauvais signe.
Surtout que je viens de voirs différents posts du forum Américain où Vista semble avoir des comportements du même genre :
http://www.autoitscript.com/forum/index ... pAdd+vista

Je n'ai pas d'autre infos à ce sujet pour le moment ...
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11784
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Vista et les fonctions DriveMapAdd, DriveMapDel...

#7

Message par Tlem »

A essayer : Désactiver l'UAC
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
phenaff
Niveau 1
Niveau 1
Messages : 11
Enregistré le : mer. 08 oct. 2008 21:46
Status : Hors ligne

Re: [..] Vista et les fonctions DriveMapAdd, DriveMapDel...

#8

Message par phenaff »

Tlem a écrit :A essayer : Désactiver l'UAC
Bonjour,
C'est certainement une piste mais quand on veut "travailler à la chaîne" sur de nombreuses machines, c'est un peu embêtant.
Je vais essayer de trouver une solution et je tiens tout le monde au courant.
Merci encore pour vos réponses
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11784
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Vista et les fonctions DriveMapAdd, DriveMapDel...

#9

Message par Tlem »

Le but, est de savoir si il ne faut pas passer par la gestion en mode Admin.

Essayez de rajouter en début du script :

Code : Tout sélectionner

#RequireAdmin
Sinon, lancez le script en tant qu'administrateur pour voir si ça va mieux.

Selon les résultats il vous faudra adopter une technique ou une autre ...
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
phenaff
Niveau 1
Niveau 1
Messages : 11
Enregistré le : mer. 08 oct. 2008 21:46
Status : Hors ligne

Re: [..] Vista et les fonctions DriveMapAdd, DriveMapDel...

#10

Message par phenaff »

Tlem a écrit :Le but, est de savoir si il ne faut pas passer par la gestion en mode Admin.

Essayez de rajouter en début du script :

Code : Tout sélectionner

#RequireAdmin
Sinon, lancez le script en tant qu'administrateur pour voir si ça va mieux.

Selon les résultats il vous faudra adopter une technique ou une autre ...
Malheureusement, c'est une piste que j'ai déjà explorée et qui n'a rien donnée...
Pour l'instant, je n'ai que mes yeux pour pleurer!!!
En revanche ce qui semble fonctionner, c'est le passage par la fonction Net use du dos. Je vais essayer cela avec un @ComSpec.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11784
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Vista et les fonctions DriveMapAdd, DriveMapDel...

#11

Message par Tlem »

Après pas mal de tests sans succès, j'en conclu que la commande est buguée et donc j'ai créé un ticket sur le BugTrac AutoItScript.com : http://svn.autoitscript.com/trac/ticket/614
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
phenaff
Niveau 1
Niveau 1
Messages : 11
Enregistré le : mer. 08 oct. 2008 21:46
Status : Hors ligne

Re: [..] Vista et les fonctions DriveMapAdd, DriveMapDel...

#12

Message par phenaff »

Merci
phenaff
Niveau 1
Niveau 1
Messages : 11
Enregistré le : mer. 08 oct. 2008 21:46
Status : Hors ligne

Re: [..] Vista et les fonctions DriveMapAdd, DriveMapDel...

#13

Message par phenaff »

Tlem a écrit :Après pas mal de tests sans succès, j'en conclu que la commande est buggée et donc j'ai créé un ticket sur le BugTrac AutoItScript.com : http://svn.autoitscript.com/trac/ticket/614
Je viens de me replonger dans mes essais autour de la fonction DriveMappAdd sous Vista... J'ai monter un lecteur réseau grâce à cette fonction et comme je m'y attendais (notre précédente correspondance est là pour le prouver!!) toujours pas de trace dans le poste de travail. Dans la ligne suivante du script, j'ai créé un raccourci du lecteur réseau sur le bureau. Après avoir double-cliqué sur le raccourci, la fenêtre du lecteur réseau s'est ouverte... Un nouveau coup d'œil dans le poste de travail, et là, oh miracle, le lecteur s'est affiché...
Bizarre, n'est-ce pas!!!
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11784
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Vista et les fonctions DriveMapAdd, DriveMapDel...

#14

Message par Tlem »

J'avais pas pensé au raccourci, mais dans explorer et une fenêtre CMD l'appel au lecteur monté par la fonction ne donnais aucun résultat.
Je viens de jeter un oeil sur le bug trac Anglais, et toujours pas de nouvelle...
Wait and see. ;)
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
phenaff
Niveau 1
Niveau 1
Messages : 11
Enregistré le : mer. 08 oct. 2008 21:46
Status : Hors ligne

Re: [..] Vista et les fonctions DriveMapAdd, DriveMapDel...

#15

Message par phenaff »

En fait cela n'a pas l'air de marcher dans tous les cas. Par contre ce qui semble fonctionner, après utilisation de la fonction dans un script, c'est la fermeture et la réouverture de session. J'ai essayé plusieurs fois et pour l'instant les lecteurs réseau apparaissent à chaque fois dans le poste de travail.
phenaff
Niveau 1
Niveau 1
Messages : 11
Enregistré le : mer. 08 oct. 2008 21:46
Status : Hors ligne

Re: [..] Vista et les fonctions DriveMapAdd, DriveMapDel...

#16

Message par phenaff »

OUPS, j'ai oublié de préciser que j'ai monté mes lecteurs en mode persistant.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11784
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Vista et les fonctions DriveMapAdd, DriveMapDel...

#17

Message par Tlem »

Hello, je reviens avec un petit peu de nouveau.
Je viens de passer un bon petit moment à essayer de contourner le problème, et voici ce que j'ai trouvé.

Avant tout voici un code qui fonctionne sur mon Vista Pro.
Je suis Admin, et l'UAC est désactivé.
Évidement lors du lancement du script compilé, Vista me demande confirmation :

Code : Tout sélectionner

If DriveMapAdd("Y:", "\\Diskstation_207\download") Then
    MsgBox(0, "Info", "Lecteur Monté.")
    If DriveMapDel("Y:") Then MsgBox(0, "Info", "Le lecteur à été démonté")
Else
    MsgBox(16, "Info", "Le lecteur n'à pas été monté")
EndIf
Aussi bizarre que ça puisse paraitre, tout fonctionne bien :shock: .
En réalité, c'est le fait d'avoir utilisé #RequireAdmin ou de lancer le script en tant qu'admin qui met le bazar !!!
Nouveau ticket ouvert sur le bug trac AutoIt (http://www.autoitscript.com/trac/autoit/ticket/630)

Sinon pour la petite histoire, j'avais créer un UDF similaire qui utilise la commande NET USE du DOS :

Code : Tout sélectionner

If _DriveMapAdd("Y:", "\\Diskstation_207\download") Then
    MsgBox(0, "Info", "Lecteur Monté.")
    If _DriveMapDel("Y:") Then MsgBox(0, "Info", "Le lecteur à été démonté")
Else
    MsgBox(16, "Info", "Le lecteur n'à pas été monté")
EndIf


Func _DriveMapAdd($Drv, $RmtShare, $flag = 0, $User = "", $Passwd = "")
    If $flag = 0 Then
        $flag = ' /PERSISTENT:YES'
    Else
        $flag = ' /PERSISTENT:NO'
    EndIf
    
    If Not $User = "" Then $User = ' "/USER:' & $User & '"'
    If Not $Passwd = "" Then $Passwd = ' "' & $Passwd & '"'
    
    $Res = RunWait(@ComSpec & " /c " & 'Net Use "' & $Drv & '" "' & $RmtShare & '"' & $Passwd & $User & $flag, "", @SW_HIDE)
    
    If $Res = 0 then
        Return 1
    Else 
        Return SetError($Res, 0, 0)
    EndIf
EndFunc

Func _DriveMapDel($Drv)
    $Res = RunWait(@ComSpec & " /c " & 'Net Use "' & $Drv & '" /DELETE', "", @SW_HIDE)
    
    If $Res = 0 then
        Return 1
    Else 
        Return SetError($Res, 0, 0)
    EndIf
EndFunc
Mais il est soumis aux même contraintes que précédemment ...
Peut être faudrait-il utiliser la commande RunAs ... ;)
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11784
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Vista et les fonctions DriveMapAdd, DriveMapDel...

#18

Message par Tlem »

Le ticket 630 vient d'être clôturé par valik, qui donne une explication magistrale de notre erreur. :?
http://www.autoitscript.com/trac/autoit/ticket/630

Je vais essayer de traduire ici ses explications :
valik a écrit :Vous avez monté le lecteur avec l'élévation des droits, ce qui signifie que les programmes sans ses droits ne peuvent le voir. Votre Explorer normal fonctionne sans élévation de droit et ne peut donc voir le lecteur. Vous devez démarrer une nouvelle instance de Explorer avec les droits élevés pour pouvoir le voir. Mais il y à autre chose. Sur mon système, je doit fermer toutes les fenêtres Explorer pour pouvoir ouvrir une nouvelle instance élevée de Explorer.
Bien que je demande manuellement une version élevée, il semble juste différer au processus Explorer.exe non-élevé. Vous devez avoir toutes les fenêtres Exploreur fermées pour que quand vous essayiez d'ouvrir une fenêtre Exploreur (élevée) il engendre un nouveau processus qui reste (et est élevé). Une fois que vous avez une fenêtre Exploreur correctement élevée vous pourrez voir le lecteur. Sans fermer toutes les autres fenêtres d'abord, il passe juste la demande à l'instance non élevée courante de l'Exploreur ce qui n'est pas ce que vous voulez.

Une alternative plus simple pour confirmer que le lecteur est bien monté, c'est de lancer un script avec des droits élevés pour monter le lecteur. Ensuite lancez une ligne de commande élevée (cmd.exe) et vous verrez que le lecteur monté est bien là et accessible alors q'une ligne de commande non-élevé ne peut pas voir le lecteur.

Ce n'est pas un bug - En tout cas pas dans AutoIt. Je peux utiliser un Exploreur élevé pour monter le lecteur en utilisant l'interface incorporée et ce lecteur ne sera pas visible aux programmes non-élevés.
CQFD. :oops:
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
phenaff
Niveau 1
Niveau 1
Messages : 11
Enregistré le : mer. 08 oct. 2008 21:46
Status : Hors ligne

[R] Vista et les fonctions DriveMapAdd, DriveMapDel...

#19

Message par phenaff »

Effectivement CQFD comme vous le dite si bien!!!!
Bon, ben il va falloir faire avec, en espérant que ces droits élevés ne vont pas nous faire monter au Paradis un peu trop tôt!!!
Modifié en dernier par Tlem le mar. 21 oct. 2008 14:54, modifié 1 fois.
Raison : Innutile d'utiliser la citation si votre post est à la suite.
Répondre