culture Programmation pour mapper lecteurs réseau

Statut
La discussion n'est pas ouverte à d'autres réponses

Rodman

Extra Terrestre
Salut !!!

Bon je débute en programmation, à vrai dire c'est mon 1er programme (je me suis documenté à l'arrache cette après midi au boulot mais mon responsable qui est administrateur réseau ma aidé), je voudrai mettre un script dans un poste utilisateur afin qu'il puisse choisir de mapper ou non les différents lecteurs réseau, en gros voici le programme :
Code:
@echo off
cls
Echo “Fonction lecteurs réseau”

:top
echo.
echo 1. Déconnecter tout les lecteurs réseau 
echo 2. Connecter tout les lecteurs réseau
echo 3. Quitter
set choice=
echo.
set /p choice=Taper 1 pour vous déconnecter, 2 pour vous connecter aux lecteurs réseau ? (valider en apuyant sur entrer)

if not '%choice%'=='' set choice=%choice:~0,1%
if '%choice%'=='1' goto unmap
if '%choice%'=='2' goto map
if '%choice%'=='3' goto quit
echo.
goto top

:unmap
@net use P: /delete /PERSISTENT=YES
@net use Z: /delete /PERSISTENT=YES
@net use o: /delete /PERSISTENT=YES
@net use x: /delete /PERSISTANT=YES

:map
@net use P: \\10.205.224.1\Utilisateurs /PERSISTENT:YES
@net use Z: \\10.205.224.1\”Zone Commune” /PERSISTENT:YES
@net use o: \\10.205.224.1\"à définir"
@net use x: \\10.205.224.1\"à définir" 

:quit
exit
Sur la ligne ou il y a :

Code:
 (valider en apuyant sur entrer)
Cette ligne ne se voit pas quand le DOS s'ouvre, je voudrai créer une autre ligne juste en dessous de mais je trouve pas la commande sur le net pour y remédier :insit-1d80:
 
Dernière modification par un modérateur:
Entrée et non le verbe "entrer" ...Rien qu'avec cette correction orthographique , cela va fonctionner :lol-1923:
 
Roooohh GURU !!! :doh-454d:

Mais c'est vrai, bref je m'en tape un peu de l'orthographe pour le moment, j'attends les rois de la programmation !

Hmmm t'y connais rien en prog GURU ? :insit-1d80:

Bon allé je me sauve, j'ai finis le taf !! :sourire116-287e:
 
Dernière édition:
Non désolé ...J'en suis resté au BASIC de mon Amstrad CPC et à l' assembleur de mon AMIGA 500 :lol-1923:
 
En gros je veux que "valider en appuyant sur entrer" passe juste en dessous de la ligne : (et non à coté)


"Taper 1 pour vous déconnecter, 2 pour vous connecter aux lecteurs réseau ?"

Car sinon "valider en appuyant sur entrer" ne se voit pas quand DOS s'ouvre, il faut refaire une ligne mais je connais pas la commande pour ce faire :triste-20129:

Sinon personne connais un site ou il y a une sorte de tableau qui montre toute les commandes possible pour le .bat ?
 
Bonjour,

Je ne suis pas certain de répondre à ta demande mais si tu lances une simple commande MS-DOS en saisissant "help" dans le prompt, tu obtiens un listing des commandes qui peuvent être utilisées par la suite ..:sourire-4e62:

20101105094511.jpg
 
Bonjour Luc !

Oui je sais bien merci Luc

Mais je crois que je vais partir sur du vbScript en faite, je l'étudie depuis ce matin au travail (y a que ça à faire alors bon .... :sourire-4e62:) (merci le tuto ==>http://tahe.developpez.com/web/vbscript/?page=page_3)

Tu connais le vbScript Luc ?

Je voudrais que l'on puisse activer ou désactiver des lecteurs réseau, voilà le début du programme en faite :

Code:
'msGbox 

msGbox "Voulez-vous activer ou désactiver tout les lecteurs réseau ?",_
  vbQuestion+vbYesNoCancel,"Question"


Je sais pas ci il est possible de remplacer les boutons "oui" par "activer" et "non" par désactiver" ? (je laisse "annuler"), car j'ai essayé de remplacer mais ça ne fonctionne pas :insit-1d80:, il existe surement une commande pour faire cela :rolleyes-200f:

Ensuite viens la partie ou l'utilisateur pourra activer ses lecteurs réseau ci il clique sur le bouton "activer" (ci cela est possible) ou "oui" donc à voir ci mon petit programme ci dessous sera fonctionnel ?

Code:
Set wshNetwork = CreateObject("WScript.Network")

With wshNetwork
.MapNetworkDrive "p:", "\\10.205.224.1\"&.\Utilisateurs
.MapNetworkDrive "z:", "\\10.205.224.1\"&.\Zone Commune
.MapNetworkDrive "o:", "\\10.205.224.1\"&.\????????
.MapNetworkDrive "x:", "\\10.205.224.1\"&.\????????
End with
 
Dernière édition:
Désolé Rod' mais mes connaissances du VBScript sont très limitées malheureusement . Par contre, Neo devrait quant à lui, pouvoir te renseigner ..

Bon courage à toi :sourire116-287e:
 
Merci Luc ! ,en effet NEO doit pourvoir me répondre mais il me semble qu'il est occupé en ce moment :sourire-4e62:

Bah quand je réuni tout les codes ça marche pas apparemment (voir ci dessous), j'ai essayé cette après midi :triste-20129:, mais il doit forcement manquer des codes pour permettre de mapper les lecteurs réseau de mon choix quand on clique sur "oui" !!

NEO est tu là ? :god-17c6:

Code:
'msGbox 

msGbox "Voulez-vous activer ou désactiver tout les lecteurs réseau ?",_
  vbQuestion+vbYesNoCancel,"Question"

Set wshNetwork = CreateObject("WScript.Network")

With wshNetwork
.MapNetworkDrive "p:", "\\10.205.224.1\"&.\Utilisateurs
.MapNetworkDrive "z:", "\\10.205.224.1\"&.\Zone Commune
.MapNetworkDrive "o:", "\\10.205.224.1\"&.\????????
.MapNetworkDrive "x:", "\\10.205.224.1\"&.\????????
End with


Y a que ma fenêtre qui fonctionne pour le moment, c'est déjà pas mal pour un début tu me dira :sourire-4e62:

mini.php
 
Dernière édition:
Alors, si j'ai bien tout suivi :

Pour la question du Batch (passage à la ligne), il faut en fait ruser par ces commandes :

Code:
[...]

set choice=
echo.
echo  Taper 1 pour vous déconnecter, 2 pour vous connecter aux lecteurs réseau ?
echo.
set /p choice=(valider en appuyant sur Entrée)

[...]
Pour le VBS, il faut procéder ainsi pour que le code soit fonctionnel (je ne suis pas sûr pour la partie du WSH, ça fait un moment que je n'ai pas utilisé cet Objet) :

Code:
Dim rep = MsgBox "Voulez-vous activer ou désactiver tout les lecteurs réseau ?",_
  vbQuestion+vbYesNoCancel,"Question"

If rep Then

Set wshNetwork = CreateObject("WScript.Network")

With wshNetwork
.MapNetworkDrive "p:", "\\10.205.224.1\"&.\Utilisateurs
.MapNetworkDrive "z:", "\\10.205.224.1\"&.\Zone Commune
.MapNetworkDrive "o:", "\\10.205.224.1\"&.\????????
.MapNetworkDrive "x:", "\\10.205.224.1\"&.\????????
End with

End If

En ce qui concerne les boutons et icones du MsgBox, il faut se référer à ce tableau :

Code:
The buttons argument settings are: 

Constant 
Value 
Description 

============
Buttons

vbOKOnly 
   0 
Display OK button only. 

vbOKCancel 
   1 
Display OK and Cancel buttons. 

vbAbortRetryIgnore 
   2 
Display Abort, Retry, and Ignore buttons. 

vbYesNoCancel 
   3 
Display Yes, No, and Cancel buttons. 

vbYesNo 
   4 
Display Yes and No buttons. 

vbRetryCancel 
   5 
Display Retry and Cancel buttons. 

=============
Icons

vbCritical 
16 
Display Critical Message icon. 

vbQuestion 
32 
Display Warning Query icon. 

vbExclamation 
48 
Display Warning Message icon. 

vbInformation 
64 
Display Information Message icon. 

============
Default button

vbDefaultButton1 
   0 
First button is default. 

vbDefaultButton2 
 256 
Second button is default. 

vbDefaultButton3 
 512 
Third button is default. 

vbDefaultButton4 
 768 
Fourth button is default. 

vbApplicationModal 
   0 
Application modal; the user must respond to the message box before continuing work in the current application. 

vbSystemModal 
4096 
System modal; all applications are suspended until the user responds to the message box.

Aucune autre valeur n'est possible. Il suffit d'ajouter les valeurs (une valeur de bouton + une valeur d'icône + éventuellement une valeur de choix par défaut) pour avoir la boite MsgBox désirée.
 
Merci beaucoup pour ton aide NEO ! :god-17c6:

Apparemment le script VB ne fonctionne pas :triste-20129: (message d'erreur), c'est dommage car je trouve ça plus jolie que le DOS

Voici le script complet : il doit manquer des choses, enfin c'est même sur :sourire-4e62:

Code:
Dim rep 
rep = MsgBox "Voulez-vous activer ou désactiver tout les lecteurs réseau ?",_
  vbQuestion+vbYesNoCancel,"Question"

If rep Then

Set wshNetwork = CreateObject("WScript.Network")

With wshNetwork
.MapNetworkDrive "p:", "\\10.205.224.1\"&.\Utilisateurs
.MapNetworkDrive "z:", "\\10.205.224.1\"&.\Zone Commune
End with

End If
Je devrai au moins voir la fenêtre suivante qui s'ouvre :



CODE pour cette fenêtre :

Code:
'msGbox 

msGbox "Voulez-vous activer ou désactiver tout les lecteurs réseau ?",_
  vbQuestion+vbYesNoCancel,"Question"
Comme je te les dit, je veux que l'utilisateur puisse choisir de mapper des lecteurs réseau, autrement dit activer ou non les lecteurs réseau en cliquant sur "oui" . Le top c'est que j'aimerai que le script recherche tout les lecteurs réseau disponible dans son pc quand il est connecter au réseau de la société quand il clique sur "oui" dans le script, ça serait tip top !! :pouce1-1a0b: (je vais voir ça de suite, ci y a moyen d'avoir un coup de main c'est encore mieux)


Sinon pour le batch, je viens de désactiver mes 2 lecteurs réseau, j'ai lancer le script et il marche en partie, il active juste la ligne suivante :

@net use P: \\10.205.224.1\Utilisateurs /PERSISTENT:YES

Il trouve pas :

@net use Z: \\10.205.224.1\”Zone Commune” /PERSISTENT:YES

Script complet :

Code:
@echo off
cls
Echo “ Fonction lecteurs reseau ”

:top
echo.
echo 1. Deconnecter tout les lecteurs reseau 
echo 2. Connecter tout les lecteurs reseau
echo 3. Quitter
set choice=
echo.
echo Taper 1 pour vous deconnecter, 2 pour vous connecter aux lecteurs reseau ? 
echo.
set /p choice=(valider en apuyant sur entrer)

if not '%choice%'=='' set choice=%choice:~0,1%
if '%choice%'=='1' goto unmap
if '%choice%'=='2' goto map
if '%choice%'=='3' goto quit
echo.
goto top

:unmap
@net use P: /delete /PERSISTENT=YES
@net use Z: /delete /PERSISTENT=YES

:map
@net use P: \\10.205.224.1\Utilisateurs /PERSISTENT:YES
@net use Z: \\10.205.224.1\”Zone Commune” /PERSISTENT:YES
 
:quit
exit
Je dois pouvoir remédier au problème je pense, j'aimerai plus que le VB fonctionne mais un peu tendu de commencer la programmation par VB :insit-1d80:
 
Dernière édition:
J'ai ma petite idée sur comment faire (un p'tit mix VBS+commandes DOS via WSH). Ce soir je suis mort et je dois réviser à fond pour demain, je te fais ça demain soir :icon_wink-221e:
 
Pas de souci NEO, j'attends ça avec impatience, le p'tit mix VBS+commandes DOS doit être sympa !!

MERCI :pouce1-1a0b:
 
Un petit UP :sourire-4e62:

Je voulais savoir ci tu m'avais oublié NEO :lol-1923:
Bon en faite j'ai garder mon batch qui est fonctionnel mais j'aurai aimer voir le mélange que tu dis pour accroitre mes connaissances dans ce domaine .
 
Erf, j'avais complètement zappé ce topic :doh-454d::doh-454d::doh-454d:

Donc, voila le script :icon17-36f7:

Fichier mapping.vbs :

Code:
Dim rep = MsgBox "Voulez-vous activer ou désactiver tous les lecteurs réseau ? (Oui : Activer, Non: Désactiver)",35,"Question"

Set wshShell = CreateObject("WScript.Shell")

Select case(rep)
case 6
wshShell.Run("mapping.bat a",0,true)
MsgBox "Lecteurs réseau activés", 64,"Terminé"
case 7
wshShell.Run("mapping.bat,0,true")
MsgBox "Lecteurs réseau désactivés", 64,"Terminé"
end Select

Fichier mapping.bat :

Code:
@echo off
cls

if not exist %1 goto map
@net use P: /delete /PERSISTENT=YES
@net use Z: /delete /PERSISTENT=YES
:map
@net use P: \\10.205.224.1\Utilisateurs /PERSISTENT:YES
@net use Z: \\10.205.224.1\”Zone Commune” /PERSISTENT:YES
 
exit

Voila, ça devrait marcher :sourire116-287e:
 
Salut NEO ! (j'ai regardé matrix à la télé la dernière fois, ça ma fait pensé à toi :icon-biglaugh-2218:)

Merci pour ton prog, donc j'ai réuni les deux prog et ça marche pas (erreur) malheureusement mais y a une bonne base, je vais voir ce qui ce passe ...

@+
 
Salut NEO ! (j'ai regardé matrix à la télé la dernière fois, ça ma fait pensé à toi :icon-biglaugh-2218:)

Mais le pire, c'est que mon pseudo n'a rien à voir avec le film :icon-biglaugh-2218: que j'ai vu pour la première fois il y à quelques semaines :icon17-36f7:

Merci pour ton prog, donc j'ai réuni les deux prog et ça marche pas (erreur) malheureusement mais y a une bonne base, je vais voir ce qui ce passe ...

Quelles sont ces erreurs ? J'ai tapé ce code avec des souvenirs, j'ai pas touché au VBS depuis un petit moment, alors il se peut que j'ai écrit un truc de travers :doh-454d:
 
:hello-11a1:

@net use Z: "\\10.205.224.1\Zone Commune” /PERSISTENT:YES devrait mieux marcher

Merci pour la rectification Kromi :pouce1-1a0b:

Mais le pire, c'est que mon pseudo n'a rien à voir avec le film :icon-biglaugh-2218: que j'ai vu pour la première fois il y à quelques semaines :icon17-36f7:

Oui je sais que ça na rien à voir, tu me l'avais dis, matrix 1 est passé dimanche dernier sur france 4, d'ailleurs pour info y a le 2 (reloaded) qui passe demain soir à 20h35 et toujours sur france 4 :love-98c: (matrix est l'un de mes films préférés)


Quelles sont ces erreurs ? J'ai tapé ce code avec des souvenirs, j'ai pas touché au VBS depuis un petit moment, alors il se peut que j'ai écrit un truc de travers :doh-454d:

Alors j'ai copier tes codes sur Notepad ++, je les enregistré sur mon bureau, par contre vu qu'il y a du VBS et du batch je nomme mon fichier en ".bat" ou en ".vbs" ? (en vbs je pense, ensuite y a le batch qui ce lancera)

J'ouvre le fichier avec "windows based Script Host" et voici l'erreur :
 
Dernière édition:
Essaye avec ce vbs :

Code:
rep = MsgBox "Voulez-vous activer ou désactiver tous les lecteurs réseau ? (Oui : Activer, Non: Désactiver)",35,"Question"

Set wshShell = CreateObject("WScript.Shell")

Select case(rep)
case 6
wshShell.Run("mapping.bat a",0,true)
MsgBox "Lecteurs réseau activés", 64,"Terminé"
case 7
wshShell.Run("mapping.bat,0,true")
MsgBox "Lecteurs réseau désactivés", 64,"Terminé"
end Select

Et oui il faut que ce fichier soit en .vbs, il appellera le .bat par la suite :icon_wink-221e:
 
autrement tu peux essayer ça

Code:
rep = MsgBox("Voulez-vous activer ou désactiver tous les lecteurs réseau ?" & vbnewline & "                    (Oui : Activer, Non: Désactiver)",35,"Question")

Dim oRes
Set oRes = CreateObject("Wscript.Network")

Select case(rep)

case 6
oRes.MapNetworkDrive "P:", "\\10.205.224.1\Utilisateurs"
oRes.MapNetworkDrive "Z:", "\\10.205.224.1\Zone Commune"
MsgBox "Lecteurs réseau activés", 64,"Terminé"

case 7
oRes.removeNetworkDrive "P:"
oRes.removeNetworkDrive "Z:"
MsgBox "Lecteurs réseau désactivés", 64,"Terminé"

end Select

WSCript.Quit
En fait j'ai repris le script de NEO en corrigeant la 1ère ligne et en ajoutant directement la connexion et déconnexion dans le script, donc plus besoin de .bat, et j'ai mis la question sur 2 lignes.
Bon maintenant faudrait juste rajouter les controles qui vont bien avec, par exemple tester si les lecteurs sont mappés avant de les connecter ou les déconnecter.
 
Dernière édition:
Au début j'avais pensé à ça mais comme je n'ai jamais vraiment utilisé l'objet Wscript.Network j'ai préféré passer par le batch :icon17-36f7:
 
Merci les gars ! Ton script Kromi à l'air de marcher !

Faut que j'essaye le script au boulot demain mais il à l'air fonctionnel, il trouve pas le réseau forcément mais le script ce lance !!! Ah ça me plait le VBS .

J'avais fait un script en batch qui fonctionné pour certain de mes utilisateurs mais je vais le remplacer par celui-là, ça fait plus propre et c'est plus clair !
 
Bon on peut fermer le sujet donc, je met résolu :sourire-4e62:
Merci encore pour l'aide ! :icon_wink-221e:
 
Statut
La discussion n'est pas ouverte à d'autres réponses
Retour
Haut