Soyez le premier à donner votre avis sur cette source.
Snippet vu 16 441 fois - Téléchargée 39 fois
' ------------------------------------------------- ' Exemple d'utilisation dans un projet : ' ------------------------------------------------- Dim p As Integer Dim mac As New MacAdresses For p = 0 To mac.Count MsgBox(mac.Item(p)) Next ' ------------------------------------------------------------ ' Exemple d'utilisation sur une machine distante : ' ------------------------------------------------------------ Dim p As Integer Dim mac As New MacAdresses("NomMachine", "UserName", "Password") For p = 0 To mac.Count MsgBox(mac.Item(p)) Next ' Voici donc cette classe Private Class MacAdresses Dim i As Integer Dim Adresses() As String Public Sub New(Optional ByVal MachineName As String = "localhost", Optional ByVal UserName As String = "", Optional ByVal Password As String = "") Dim co As New System.Management.ConnectionOptions Dim oq As System.Management.ObjectQuery Dim query As System.Management.ManagementObjectSearcher Dim ms As System.Management.ManagementScope Dim queryCollection As System.Management.ManagementObjectCollection Dim MonMO As System.Management.ManagementObject Dim j As Integer Dim doublons As Boolean If UserName <> "" And Password <> "" Then co.Username = UserName co.Password = Password End If Try ms = New System.Management.ManagementScope("\\" + MachineName + "\root\cimv2", co) oq = New System.Management.ObjectQuery("SELECT MACAddress FROM Win32_NetworkAdapter") query = New System.Management.ManagementObjectSearcher(ms, oq) queryCollection = query.Get() i = 0 For Each MonMO In queryCollection If Not MonMO("MACAddress") Is Nothing Then doublons = False For j = 0 To i - 1 If Adresses(j) = MonMO("MACAddress") Then doublons = True Exit For End If Next If Not doublons Then ReDim Adresses(i) Adresses(i) = MonMO("MACAddress") i = i + 1 End If End If Next Catch ex As Exception End Try End Sub ReadOnly Property Count() As Integer Get Return i End Get End Property Public Function Item(ByVal index As Integer) As String If index > -1 And index < i Then Return Adresses(index) End If End Function End Class
15 sept. 2004 à 20:02
Pour la connexion sur un serveur distant, aucun problème avec les droits (puisque tu dois fournir le compte pour celui-ci).
En revanche, pour la connexion en Local (le paramètre par défaut de ton serveur), c'est la qu'il prend le compte exécutant aspnet. De ce fait, il est obligatoire que ce compte ait les droit de travailler avec wmi.
En localhost, tu ne peux pas fournir de compte/mdp différent de celui exécutant l'application. Il est aussi possible d'utiliser l'impersonate pour spécifier le compte que doit utiliser le site WEB sur la page où l'ensempble du site.
Romelard Fabrice.
15 sept. 2004 à 16:22
Comme tu vois, j'ai fais un petit copier/coller de ta source et je lui ait apporté quelques modifications pour mes besoins spécifiques. J'espére que tu m'en veut pas :).
Bonne prog et à+, akh
15 sept. 2004 à 16:08
De plus le WMI est spécifique lorsqu'on cherche à l'interroger et nécessite des droits particuliers qui ne sont pas attribués par défaut au compte exécutant aspnet.
Alors que dans le cas d'une Winform c'est beaucoup plus simple car cela utilise le compte de l'utilisateur courant.
Romelard Fabrice.
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.