Monter un lecteur réseau à distance! [Résolu]

Messages postés
195
Date d'inscription
vendredi 3 juin 2005
Dernière intervention
13 juillet 2006
- 3 août 2005 à 14:36 - Dernière réponse :
Messages postés
1
Date d'inscription
mardi 10 avril 2007
Dernière intervention
10 avril 2007
- 10 avril 2007 à 15:53
Bonjour a tous!

J'aimerais pouvoir monter des lecteurs réseau sur des pc distant via un programme vb.net !

J'ai bien trouver des informations pour monter des lecteurs réseau mais
je ne peux le faire que sur le poste executant le programme! Comment
faire dans le cas d'un PC distant???

Merci d'avance!
Afficher la suite 

12 réponses

Meilleure réponse
Messages postés
797
Date d'inscription
jeudi 17 mai 2001
Dernière intervention
5 mai 2009
- 4 août 2005 à 19:23
3
Merci
Re ;O)

J'oubliais; ce code est pour VB6. Il faut préalablement référencer la bibliothèque Microsoft WMI Scripting.
En VB.NET, je sais que WMI est entièrement intégré et que l'objet existe déjà. Voir System.Management.

Guy

Merci Neo.balastik 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 90 internautes ce mois-ci

Messages postés
797
Date d'inscription
jeudi 17 mai 2001
Dernière intervention
5 mai 2009
- 3 août 2005 à 16:28
0
Merci
Salut ;O)

Vois l'utilisation de WMI.

Guy
Messages postés
195
Date d'inscription
vendredi 3 juin 2005
Dernière intervention
13 juillet 2006
- 3 août 2005 à 16:55
0
Merci
Merci, justement j'ai cherché ce que je pouvais faire avec WMI est je
n'ai rien trouvé qui me permette de faire des montages réseau!!!

Si tu avais un nom de classe WMI dans laquelle je pourrais trouvé une méthode ca m'aider beaucoup,

D'avance merci!!
Messages postés
3758
Date d'inscription
mardi 23 septembre 2003
Dernière intervention
13 mars 2006
- 3 août 2005 à 19:42
0
Merci
Salut,

Si j'ai bien compris, par "monter un lecteur réseau" tu veux que le PC distant partage une ou plusieurs ressources auxquelles tu pourras accéder ?
WMI ou autre, tu ne pourras pas "monter un lecteur réseau" sur un PC distant sans que l'utilisateur n'ait partagé lui même ses ressources grâce aux outils windows ou via un prog qui devra s'exécuter de son PC. Tu as pu le vérifier toi-même.

Si c'est dans le cadre d'un LAN d'entreprise, je te conseille de prendre conseil auprès des admins réseau de ta boite.

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
Messages postés
195
Date d'inscription
vendredi 3 juin 2005
Dernière intervention
13 juillet 2006
- 4 août 2005 à 09:08
0
Merci
Salut,

Non c'est plus simple que ca,

Je pars du principe que tout est déja partagé sur les serveurs, ce que
je veux, c'est juste faire l'equivalent de l'outil "Connecter un
lecteur réseau" du poste de travail dans windows, mais executer cette
commande sur un poste distant.



Exemple:

Serveur: \\mon_serveur\partage\ --------------------->Poste client Z:

Connecter le lecteur réseau pointant sur \\mon_serveur\partage\ sur le
poste client via un programme VB.net à partir d'une machineX.
Messages postés
195
Date d'inscription
vendredi 3 juin 2005
Dernière intervention
13 juillet 2006
- 4 août 2005 à 10:00
0
Merci
Aprés recherche sur MSDN, j'ai réussi a faire cette fonction.... qui ne marche pas

En effet, via WMI c'est possible de connecter un lecteur réseau a
distance seulement sur Windows 2003...est donc ne le possédant
pas, je ne peut la tester.

Si quelqu'un possdant cette OS pouvait me dire si cette fonction marche!

Je suis toujours a la recherche d'une solution pour Win2k et XP, je compte sur vous

Merci pour votre aide



Public Function mountpoint(ByVal ip As String, ByVal lecteur As String, ByVal cible As String) As Integer

Dim objWMIService = GetObject("winmgmts:" _


& "{impersonationLevel=impersonate}!\" & ip &
"\root\cimv2")

Dim colItems = objWMIService.ExecQuery _


("Select * From Win32_Volume Where Name = '" & lecteur & "\'")

Dim objitem As Object

Dim errReturn As Integer = -1



For Each objitem In colItems

errReturn = objitem.AddMountPoint(cible)

Next

Return errReturn

End Function



----------------Appel de la fonction

'MsgBox(mountpoint("192.6.1.51", "S:", "\\192.6.1.1\commun"))



Retourne -1 dans mon cas
Messages postés
3758
Date d'inscription
mardi 23 septembre 2003
Dernière intervention
13 mars 2006
- 4 août 2005 à 15:01
0
Merci
Alors essaie avec les apis :

Private Declare Function WNetAddConnection Lib "mpr.dll" Alias "WNetAddConnectionA" (ByVal lpszNetPath As String, ByVal lpszPassword As String, ByVal lpszLocalName As String) As Long
Private Declare Function WNetCancelConnection Lib "mpr.dll" Alias "WNetCancelConnectionA" (ByVal lpszName As String, ByVal bForce As Long) As Long


Const WN_SUCCESS = 0 ' The function was successful.
Const WN_NET_ERROR = 2 ' An error occurred on the network.
Const WN_BAD_PASSWORD = 6 ' The password was invalid.


Function AddConnection(MyShareName As String, MyPWD As String, UseLetter As String) As Integer
AddConnection = WNetAddConnection(MyShareName, MyPWD, UseLetter)
End Function


Function CancelConnection(DriveLetter As String, Force As Integer) As Integer
CancelConnection = WNetCancelConnection(DriveLetter, Force)
End Function

' pour connecter
variable = AddConnection("[file://serveur/ressource \\serveur\ressource]", "password", "z:")
' pour déconnecter
variable = CancelConnection("z:", 1)

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
Messages postés
195
Date d'inscription
vendredi 3 juin 2005
Dernière intervention
13 juillet 2006
- 4 août 2005 à 15:38
0
Merci
Ok merci cette methode marche impek mé le probléme, c'est que de cette
maniére le lecteur est connecter sur la machine executant le programme.
Hors moi ce qui m'interrese, c'est de connecter le lecteur sur une
machine X de mon réseau.

Ce qui manque juste a ton code ci-dessus c'est la possibilité de
connecter un lecteur a distance, mais je doute qu'avec les API ce soit
possible,

Je vais bien détaillé:

J'ai:

-un serveur X avec des fichiers partagés

-un PC Y executant le programme de connexion

-une station de travail Z sur laquel le programme du PC Y doit connecter le lecteur rézo pointant sur X!



Plus clair comme ca !!!!



Merci de m'aider car je n'ai plus aucune idée!
Messages postés
797
Date d'inscription
jeudi 17 mai 2001
Dernière intervention
5 mai 2009
- 4 août 2005 à 19:19
0
Merci
Salut ;O)

Tu peux grâce à WMI lancer une commande à distance en créant un process distant. Faut-il seuleument avoir les droits sur la machine.

Voici une fonction qui devrait fonctionner.

Si la machine distante n'a pas besoin d'une authentification car le user appelant est connu et ayant les droits adéquats :
RemoteNetUse "LAMACHINE"

Dans le cas d'une authentification nécessaire :
RemoteNetUse "LAMACHINE", False, "Admin", "LeMotDePasse"
Public Function RemoteNetUse(Host As String, Optional UserCurrentCredentials As Boolean True, Optional User As String "", Optional Password As String = "") As Long


Dim strCommand As String
Dim lngProcessID As Long
Dim lngResult As Long
Dim oLocator As SWbemLocator
Dim oServices As SWbemServices
Dim oStartup As Object
Dim oConfig As Object
Dim oProcess As Object

RemoteNetUse = 0

Set oLocator = New WbemScripting.SWbemLocator

fRemoteCommand = 0

If UserCurrentCredentials Then
Set oServices = oLocator.ConnectServer(Host)
Else
Set oServices = oLocator.ConnectServer(Host, "root\cimv2", User, Password)
oServices.Security_.ImpersonationLevel = 3
End If

Set oStartup = oServices.Get("Win32_ProcessStartup")
Set oConfig = oStartup.SpawnInstance_
oConfig.ShowWindow = 0


Set oProcess = oServices.Get("Win32_Process")
'La ligne de commande qui sera lancée à distance
strCommand = "NET USE Z: [file://mon_serveur/partage \\mon_serveur\partage] /PERSISTENT:YES"
lngResult = oProcess.Create(strCommand, Null, oConfig, lngProcessID)
fRemoteCommand = lngResult

errorResume:

Set oLocator = Nothing
Set oServices = Nothing
Set oStartup = Nothing
Set oConfig = Nothing
Set oProcess = Nothing


Exit Function


End Function

En espérant que cela ira. De mon côté, cela marche à merveille dans le réseau d'entreprise où je bosse.

Guy
Messages postés
195
Date d'inscription
vendredi 3 juin 2005
Dernière intervention
13 juillet 2006
- 5 août 2005 à 08:39
0
Merci
Wouaaah, Longue vie a toi Neo.Balistik!!!!

Je vais tester et adapter ça le plus vite possible sur vb.net!!! Mais si ca marche .....

Merci encore d'aider les étudiants, sympa pour eux lol !!!!!
Messages postés
797
Date d'inscription
jeudi 17 mai 2001
Dernière intervention
5 mai 2009
- 5 août 2005 à 10:14
0
Merci
Tu vas à présent devoir traduire cela en VB.NET.
Mais sache que lancer un process sur une autre machine fonctionne très bien avec WMI.
Donc, a priori, il n'y a aucune raison que cela ne fonctionne pas. Surtout si tu as les droits nécessaires sur la machine hôte.

Bonne chance.
Guy
Messages postés
1
Date d'inscription
mardi 10 avril 2007
Dernière intervention
10 avril 2007
- 10 avril 2007 à 15:53
0
Merci
est ce que quelqu'un l'aurai en version VB.NET :s ca serai cool moi
meme ne programmant pas, ca serai cool si quelqu'un l'a adapté.

Cordialement,

Fas3r

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.