[R] Vista et les fonctions DriveMapAdd, DriveMapDel...
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
[R] Vista et les fonctions DriveMapAdd, DriveMapDel...
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.
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.
- sylvanie
- Niveau 11
- Messages : 1556
- Enregistré le : jeu. 26 juil. 2007 21:31
- Localisation : Paris
- Status : Hors ligne
Re: [..] Vista et les fonctions DriveMapAdd, DriveMapDel...
je ne connais pas d'incompatibilité Vista pour ma part.
Que renvoie @error après l'execution de DriveMapAdd ?
Que renvoie @error après l'execution de DriveMapAdd ?
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
Re: [..] Vista et les fonctions DriveMapAdd, DriveMapDel...
Bonjour,sylvanie a écrit :je ne connais pas d'incompatibilité Vista pour ma part.
Que renvoie @error après l'execution de DriveMapAdd ?
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!!!!
- sylvanie
- Niveau 11
- Messages : 1556
- Enregistré le : jeu. 26 juil. 2007 21:31
- Localisation : Paris
- Status : Hors ligne
Re: [..] Vista et les fonctions DriveMapAdd, DriveMapDel...
@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 :
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
exple, dans un script on appel :
Code : Tout sélectionner
DriveMapAdd(.....)
msgbox(0,"code erreur de retour de DriveMapAdd",@error)
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.
Re: [..] Vista et les fonctions DriveMapAdd, DriveMapDel...
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.
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.
- sylvanie
- Niveau 11
- Messages : 1556
- Enregistré le : jeu. 26 juil. 2007 21:31
- Localisation : Paris
- Status : Hors ligne
Re: [..] Vista et les fonctions DriveMapAdd, DriveMapDel...
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 ...
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.
- Tlem
- Site Admin
- Messages : 11784
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Vista et les fonctions DriveMapAdd, DriveMapDel...
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é".
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é".
Re: [..] Vista et les fonctions DriveMapAdd, DriveMapDel...
Bonjour,Tlem a écrit :A essayer : Désactiver l'UAC
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
- Tlem
- Site Admin
- Messages : 11784
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Vista et les fonctions DriveMapAdd, DriveMapDel...
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 :
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 ...
Essayez de rajouter en début du script :
Code : Tout sélectionner
#RequireAdmin
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é".
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é".
Re: [..] Vista et les fonctions DriveMapAdd, DriveMapDel...
Malheureusement, c'est une piste que j'ai déjà explorée et qui n'a rien donnée...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 :Sinon, lancez le script en tant qu'administrateur pour voir si ça va mieux.Code : Tout sélectionner
#RequireAdmin
Selon les résultats il vous faudra adopter une technique ou une autre ...
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.
- Tlem
- Site Admin
- Messages : 11784
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Vista et les fonctions DriveMapAdd, DriveMapDel...
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é".
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é".
Re: [..] Vista et les fonctions DriveMapAdd, DriveMapDel...
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é...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
Bizarre, n'est-ce pas!!!
- Tlem
- Site Admin
- Messages : 11784
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Vista et les fonctions DriveMapAdd, DriveMapDel...
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.
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é".
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é".
Re: [..] Vista et les fonctions DriveMapAdd, DriveMapDel...
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.
Re: [..] Vista et les fonctions DriveMapAdd, DriveMapDel...
OUPS, j'ai oublié de préciser que j'ai monté mes lecteurs en mode persistant.
- Tlem
- Site Admin
- Messages : 11784
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Vista et les fonctions DriveMapAdd, DriveMapDel...
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 :Aussi bizarre que ça puisse paraitre, tout fonctionne bien
.
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 :Mais il est soumis aux même contraintes que précédemment ...
Peut être faudrait-il utiliser la commande RunAs ...
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

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
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é".
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é".
- Tlem
- Site Admin
- Messages : 11784
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Vista et les fonctions DriveMapAdd, DriveMapDel...
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 :

http://www.autoitscript.com/trac/autoit/ticket/630
Je vais essayer de traduire ici ses explications :
CQFD.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.

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é".
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é".
[R] Vista et les fonctions DriveMapAdd, DriveMapDel...
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!!!
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.
Raison : Innutile d'utiliser la citation si votre post est à la suite.