Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Chemin absolu d'un lecteur reseau

2 réponses
Avatar
Emmanuel G.
Bonjour,
Est-t-il possible de r=E9cup=E9rer le chemin absolu d'un=20
lecteur r=E9seau

ex : sur mon poste : h:\winfax

sur le serveur : c:\program files\winfax

il me faudrait un script ou une api me permettant de=20
r=E9cup=E9rer la vraie valeur de h:\winfax (\\192.168.0.12
\c:\program files\winfax)

Merci d'avance

2 réponses

Avatar
Jean-Claude BELLAMY
Dans le message news:335201c464e9$a0fa91f0$ ,
Emmanuel G. s'est ainsi exprimé:

Bonjour,
Est-t-il possible de récupérer le chemin absolu d'un
lecteur réseau

ex : sur mon poste : h:winfax

sur le serveur : c:program fileswinfax

il me faudrait un script ou une api me permettant de
récupérer la vraie valeur de h:winfax (192.168.0.12
c:program fileswinfax)


Fastoche ! ;-)

Ce VBS le fait :
"NetDrives.vbs"
Sans paramètre, il affiche la liste des disques réseau
Si on lui passe la lettre d'un disque ("x:"), il indique si ce disque est un
disque réseau, et si oui il donne le chemin UNC associé

-------- couper ici --------
Set args=Wscript.Arguments
Set net=Wscript.CreateObject("WScript.Network")
Set colDrives = net.EnumNetworkDrives
Set d = WScript.CreateObject("Scripting.Dictionary")
d.CompareMode=vbTextCompare
nDrives=colDrives.Count
If nDrives >0 Then
For i = 0 To nDrives-1 Step 2
d.Add colDrives(i), colDrives(i+1)
Next
end if
If args.count>0 Then
key=args(0)
If d.Exists(key) Then
msg=key & chr(9) & d.Item(key)
Else
msg=key & " n'est pas un disque réseau"
End If
Else
TabDrives=d.Keys
TabUNC=d.Items
msg=d.Count & " disque(s) réseau"
For i = 0 To d.Count-1
msg=msg & VBCRLF & TabDrives(i) & chr(9) & TabUNC(i)
next
End If
wscript.echo msg
-------- couper ici --------

Exemples :

I:Program FilesVBS>NetDrives
4 disque(s) réseau
V: SeattleDFSEssai
H: springfieldh
N: SpringfieldM
W: SpringfieldSXPPRO_SP1

I:Program FilesVBS>NetDrives C:
C: n'est pas un disque réseau

I:Program FilesVBS>NetDrives H:
H: springfieldh


Explications :

La propriété "EnumNetworkDrives" de l'objet Network retourne une collection
de chaines constituées successivement :
- de la lettre du disque réseau
- du chemin réel de ce disque (syntaxe UNC)

Donc il suffit d'énumérer cette collection 2 par 2

--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org
http://www.bellamyjc.org *


Avatar
Emmanuel GUILLOTEAU
Merci pour la reponse(rapide)
mais ce n'est pas exactement cela
il me manque la lettre du disque du serveur (le chemin
absolu du répertoire sur le serveur)

example : sur mon poste :
p:
netdrives p: me renvoie :
p: comptawfxreseau
alors qu'il devrait me renvoyer
p: comptac:program fileswfxreseau
il me renvoie juste le répertoire exporté par le serveur
alors que je veux le repertoire complet avec la lettre
physique du serveur



-----Message d'origine-----
Dans le message news:335201c464e9$a0fa91f0
$ ,

Emmanuel G. s'est
ainsi exprimé:


Bonjour,
Est-t-il possible de récupérer le chemin absolu d'un
lecteur réseau

ex : sur mon poste : h:winfax

sur le serveur : c:program fileswinfax

il me faudrait un script ou une api me permettant de
récupérer la vraie valeur de h:winfax (192.168.0.12
c:program fileswinfax)


Fastoche ! ;-)

Ce VBS le fait :
"NetDrives.vbs"
Sans paramètre, il affiche la liste des disques réseau
Si on lui passe la lettre d'un disque ("x:"), il indique
si ce disque est un

disque réseau, et si oui il donne le chemin UNC associé

-------- couper ici --------
Set args=Wscript.Arguments
Set net=Wscript.CreateObject("WScript.Network")
Set colDrives = net.EnumNetworkDrives
Set d = WScript.CreateObject("Scripting.Dictionary")
d.CompareMode=vbTextCompare
nDrives=colDrives.Count
If nDrives >0 Then
For i = 0 To nDrives-1 Step 2
d.Add colDrives(i), colDrives(i+1)
Next
end if
If args.count>0 Then
key=args(0)
If d.Exists(key) Then
msg=key & chr(9) & d.Item(key)
Else
msg=key & " n'est pas un disque réseau"
End If
Else
TabDrives=d.Keys
TabUNC=d.Items
msg=d.Count & " disque(s) réseau"
For i = 0 To d.Count-1
msg=msg & VBCRLF & TabDrives(i) & chr(9) & TabUNC
(i)

next
End If
wscript.echo msg
-------- couper ici --------

Exemples :

I:Program FilesVBS>NetDrives
4 disque(s) réseau
V: SeattleDFSEssai
H: springfieldh
N: SpringfieldM
W: SpringfieldSXPPRO_SP1

I:Program FilesVBS>NetDrives C:
C: n'est pas un disque réseau

I:Program FilesVBS>NetDrives H:
H: springfieldh


Explications :

La propriété "EnumNetworkDrives" de l'objet Network
retourne une collection

de chaines constituées successivement :
- de la lettre du disque réseau
- du chemin réel de ce disque (syntaxe UNC)

Donc il suffit d'énumérer cette collection 2 par 2

--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org
http://www.bellamyjc.org *



.