fcampagne
Messages postés195Date d'inscriptionvendredi 3 juin 2005StatutMembreDernière intervention13 juillet 2006
-
3 août 2005 à 14:36
fas3r
Messages postés1Date d'inscriptionmardi 10 avril 2007StatutMembreDernière intervention10 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???
Neo.balastik
Messages postés796Date d'inscriptionjeudi 17 mai 2001StatutMembreDernière intervention 5 mai 20097 4 août 2005 à 19:23
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.
cs_CanisLupus
Messages postés3757Date d'inscriptionmardi 23 septembre 2003StatutMembreDernière intervention13 mars 200621 3 août 2005 à 19:42
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 !?
Vous n’avez pas trouvé la réponse que vous recherchez ?
fcampagne
Messages postés195Date d'inscriptionvendredi 3 juin 2005StatutMembreDernière intervention13 juillet 20063 4 août 2005 à 09:08
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.
fcampagne
Messages postés195Date d'inscriptionvendredi 3 juin 2005StatutMembreDernière intervention13 juillet 20063 4 août 2005 à 10:00
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 & "\'")
cs_CanisLupus
Messages postés3757Date d'inscriptionmardi 23 septembre 2003StatutMembreDernière intervention13 mars 200621 4 août 2005 à 15:01
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
Messages postés195Date d'inscriptionvendredi 3 juin 2005StatutMembreDernière intervention13 juillet 20063 4 août 2005 à 15:38
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!
Neo.balastik
Messages postés796Date d'inscriptionjeudi 17 mai 2001StatutMembreDernière intervention 5 mai 20097 4 août 2005 à 19:19
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.
Neo.balastik
Messages postés796Date d'inscriptionjeudi 17 mai 2001StatutMembreDernière intervention 5 mai 20097 5 août 2005 à 10:14
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.