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

fcampagne 195 Messages postés vendredi 3 juin 2005Date d'inscription 13 juillet 2006 Dernière intervention - 3 août 2005 à 14:36 - Dernière réponse : fas3r 1 Messages postés mardi 10 avril 2007Date d'inscription 10 avril 2007 Dernière intervention
- 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

Neo.balastik 797 Messages postés jeudi 17 mai 2001Date d'inscription 5 mai 2009 Dernière intervention - 4 août 2005 à 19:23
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Neo.balastik 797 Messages postés jeudi 17 mai 2001Date d'inscription 5 mai 2009 Dernière intervention - 3 août 2005 à 16:28
0
Utile
Salut ;O)

Vois l'utilisation de WMI.

Guy
fcampagne 195 Messages postés vendredi 3 juin 2005Date d'inscription 13 juillet 2006 Dernière intervention - 3 août 2005 à 16:55
0
Utile
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!!
cs_CanisLupus 3758 Messages postés mardi 23 septembre 2003Date d'inscription 13 mars 2006 Dernière intervention - 3 août 2005 à 19:42
0
Utile
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 !?
fcampagne 195 Messages postés vendredi 3 juin 2005Date d'inscription 13 juillet 2006 Dernière intervention - 4 août 2005 à 09:08
0
Utile
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.
fcampagne 195 Messages postés vendredi 3 juin 2005Date d'inscription 13 juillet 2006 Dernière intervention - 4 août 2005 à 10:00
0
Utile
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
cs_CanisLupus 3758 Messages postés mardi 23 septembre 2003Date d'inscription 13 mars 2006 Dernière intervention - 4 août 2005 à 15:01
0
Utile
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 !?
fcampagne 195 Messages postés vendredi 3 juin 2005Date d'inscription 13 juillet 2006 Dernière intervention - 4 août 2005 à 15:38
0
Utile
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!
Neo.balastik 797 Messages postés jeudi 17 mai 2001Date d'inscription 5 mai 2009 Dernière intervention - 4 août 2005 à 19:19
0
Utile
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
fcampagne 195 Messages postés vendredi 3 juin 2005Date d'inscription 13 juillet 2006 Dernière intervention - 5 août 2005 à 08:39
0
Utile
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 !!!!!
Neo.balastik 797 Messages postés jeudi 17 mai 2001Date d'inscription 5 mai 2009 Dernière intervention - 5 août 2005 à 10:14
0
Utile
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
fas3r 1 Messages postés mardi 10 avril 2007Date d'inscription 10 avril 2007 Dernière intervention - 10 avril 2007 à 15:53
0
Utile
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.