begin process at 2010 02 10 07:53:11
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Réseau & Internet

 > RÉCUPÉRER MAC ADRESSE ET AUTRES INFO AVEC WMI (LOCAL ET DISTANT)

RÉCUPÉRER MAC ADRESSE ET AUTRES INFO AVEC WMI (LOCAL ET DISTANT)


 Information sur la source

Note :
10 / 10 - par 3 personnes
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Réseau & Internet Niveau :Initié Date de création :08/01/2004 Date de mise à jour :08/01/2004 10:09:13 Vu / téléchargé :8 334 / 2 303

Auteur : zmania

Ecrire un message privé
Site perso
Commentaire sur cette source (16)
Ajouter un commentaire et/ou une note

 Description

Voilà commen utiliser WMI (Windows Management Instrumentation) . Dans ce petit exemple, c'est pour trouver l'adresse mac de la carte réseau mais on peut chercher des tonnes d'info sur autre chose aussi.. On peut interoger aussi des pc à distance.

C'est un code très petit..lol

Il suffit de connaître les classe et les objets. Dans cette exemple j'ai utiliser la classe "Win32_NetworkAdapter".

Voici les objets de cette classe : http://msdn.microsoft.com/library/default.asp?url= /library/en-us/wmisdk/wmi/win32_networkadapter.asp

Pour utiliser d'autre classe WMI : http://msdn.microsoft.com/library/default.asp?url= /library/en-us/wmisdk/wmi/computer_system_hardware _classes.asp

puis il suffit d'adapter le code suivant à la classe

Attention : IL faut mettre la référence suivant dans votre projet :
Microsoft WMI Scripting  library (.../\\\\System32\\\\Wbem\\\\wbendisp.tbl)

Source

  • 'Voire le zip. Parce que malheureusement il y a des problémes avec les Slahs. NIX corriger...svp
'Voire le zip. Parce que malheureusement il y a des problémes avec les Slahs. NIX corriger...svp

 Conclusion

Si vous avez des questions posez les dans les commentaire..Et n'hésitait pas si vous avez des infos ou améliorations...

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources de la même categorie

Source avec Zip Source avec une capture UPLOAD FTP VB 6 par Onin42
Source avec Zip Source avec une capture Source .NET (Dotnet) FAVORIS URL par Le Pivert
Source avec Zip Source avec une capture Source .NET (Dotnet) DEVSSH CLIENT SFTP/SSH par iblsysteme
Source avec Zip Source avec une capture CONNEXION RÉSEAU par ABUMAI
Source avec Zip CSOCKET - REMPLACEZ WINSOCK PAR LA VERSION 2 DES API par Renfield

Commentaires et avis

Commentaire de lumesh le 08/01/2004 17:13:02

J'ai fait la meme chose pour VB.net :)
C'est exelent le WMI

Commentaire de MadLucas le 09/01/2004 02:23:30

En effet, le Script WMI est très complet.  Autant pour le contrôle Hardware que Software.

N'oubliez pas de référencer le MS WMI Scripting dans les références de votre projet si vous voulez que ça roule !


MadLucas

Commentaire de 007 le 07/02/2004 14:22:07

Alors là, c'est génial, c'est super, c'est magnifique !!
Super source, et merci encore à zmania.
Je suis vraiment super hyper épaté par tout ce qu'on qu'on voir avec les WMI

James Bond

Commentaire de Dalyna le 09/02/2004 12:06:28

ça marche super bien, par contre j'ai une question :
y'a t-il un pré-requis nécessaire sur les postes distants ? Il y a certains postes de mon réseau que je n'arrive pas à scanner avec le wmi, y-a-t-il une installation nécessaire sur les postes distants?
Merci a vous

Commentaire de MadLucas le 09/02/2004 15:20:05

Salut Dalyna,

Il y a 3 façons de se connecter avec le script WMI:

- Connection sur l'ordinateur LOCAL avec l'utilisateur en cours;
- Connection LOCAL/REMOTE avec l'utilisateur en cours;
- Connection REMOTE en utilisant un autre LOGIN/PASSWORD.

Surtout sur les systèmes NT/2K/XP, tu dois avoir des droits administrateurs sur l'ordinateur que tu veux inspecter.

Voici comment générer une liste des "Shares" en utilisant le LOCAL/CURRENT USER:

Sub ListShares()
    Dim strObject$, colShares, objWMIService, objShare
    
    Set objWMIService = GetObject("winmgmnt:")
    Set colShares = objWMIService.execquery("Select * from Win32_Share")
    For Each objShare In colShares
        text1.Text = text1.Text + objShare.Name & "[" & objShare.Path & "]" & vbNewLine
    Next
End Sub


Maintenant, voici un exemple d'une connection LOCAL/REMOTE/CURRENT USER:

Sub ListShares()
    Dim strComputer$, strObject$, colShares, objWMIService, objShare
    
    Do
        strComputer = InputBox("Entrez le nom de l'ordinateur (faites '.' pour le LOCAL HOST", "Input")
    Loop Until Not strComputer = vbNullString
    
    Set objWMIService = GetObject("winmgmnt://" & strComputer & "/root/cimv2")
    Set colShares = objWMIService.execquery("Select * from Win32_Share")
    For Each objShare In colShares
        text1.Text = text1.Text + objShare.Name & "[" & objShare.Path & "]" & vbNewLine
    Next
End Sub


Et finalement, voici comment on créer une connection REMOTE/LOGIN:

Sub ListShares()
    Dim strComputer$, strUser$, strPassword$, strObject$, colShares, objWMIService, objShare, objLocator
    
    Do
        strComputer = InputBox("Entrez le nom de l'ordinateur (faites '.' pour le LOCAL HOST", "Input")
    Loop Until Not strComputer = vbNullString
    Do
        strUser = InputBox("Entrez le nom de l'usager.", "Input")
    Loop Until Not strUser = vbNullString
    Do
        strPassword = InputBox("Entrez le mot de passe", "Input")
    Loop Until Not strPassword = vbNullString
    
    Set objLocator = CreateObject("WbemScripting.SWbemLocator")
    Set objWMIService = objLocator.ConnectServer(strComputer, "root/cimv2", strUser, strPassword)
    objWMIService.Security_.impersonationlevel = 3
    Set colShares = objWMIService.execquery("Select * from Win32_Share")
    For Each objShare In colShares
        text1.Text = text1.Text + objShare.Name & "[" & objShare.Path & "]" & vbNewLine
    Next
End Sub

Il est important de bien régler le impersonationlevel si tu veux te connecter entre différents systèmes d'exploitations.  Une mauvaise configuration peut empêcher un server d'accepter la requête WMI, ou encore limiter l'information transmise par l'appel.  Le niveau 3 est le niveau par défaut qui est recommandé.  On peut utiliser les niveaux suivants:

1 = Anonymous
2 = Identify
3 = Impersonate
4 = Delegate

En bref, 1 permet un login anonyme.  2 te permet d'utiliser ton LOGIN sur un autre ordinateur, mais celui-ci doit avoir un account.  3 te permet d'utiliser le LOGIN d'un autre et 4 donne le pouvoir à ton LOGIN sur d'autres ordinateurs.

Pour finir, le WMI est une sorte d'enveloppe (wraper) qui facilite la manipulation des classes Win32 et des scripts CIM.  C'est un langage Script.  Pour plus de contrôle et encore plus de possibilitées, tu dois utiliser directement les appels API de Win32.


Bonne programmation !



MadLucas

Commentaire de Dalyna le 09/02/2004 16:38:05

Merci Madlucas,
C'est super gentil d'avoir pris autant de temps pour repondre à ma question. Encore merci. A bientot
Dalyna

Commentaire de Veribasic le 17/02/2004 18:16:34

C'est exactement ce que je cherchais, sauf que je débute dans ce domaine et ce que je veux récupérer c'est uniquement l'adresse physique de mon PC sans le reste, comment faire ? Merci.

veribasic

Commentaire de zmania le 24/02/2004 11:37:53

il y a pas d'adresse physique de ton PC..Il y a une adresse mac, c'est à dire une adresse unique de ta carte réseau. Tu peux essaie avec le numéro de série du PC. Mais chez moi sa marche pas. Chez d'autre sa marche.

Commentaire de dionysos6868 le 01/03/2004 14:15:03

Merci pour ce super truc mais j'aurais une question.
Sur quel port de communication ce passe les info merci

Commentaire de MadLucas le 01/03/2004 14:59:02

Le WMI suit les règles établis préalablement avec le filtre NLB.  On peut définir les règles du NLB grâce aux appels API dans la lib NLB (Network Load Balancing API).

Avec les appels API NLB, on peut définir un "port rule" définissant le mode de filtrage, les protocols à utiliser et le "range" des prots qu'on veut utiliser.

Le "port rule" s'applique à tous les transferts du protocol spécifié passant par tous les ports conscernés.

Si tu veux limiter l'accès à un seul port par exemple, il te faudra alors réajuster le "port range" avec l'appel API NBL en le limitant à un seul port.

Tu peux chercher de la doc sur le "Windows Clustering" ainsi que le "Network Load Balancing API" pour approfondir ce sujet.



MadLucas

Commentaire de 007 le 01/03/2004 23:10:13

Atendez, j'ai pas très bien suivi, mais ça voudrai dire qu'avec cette histoire de NLB et de port rule on pourrait réaliser comme un firewall en VB ???
Dites moi que je suis complètement à coté de la plaque parce que sinon j'y comprend plus rien !!

James Bond

Commentaire de dionysos6868 le 02/03/2004 06:48:28

comment faire pour le faire sur un ordi distance je ne cape pas trop car sur mon reseau local ca marche super bien avec ton zip et quand je rentree une ip sur le net ca me marque serveur non connecter un truc comme ca

merci

Commentaire de zmania le 02/03/2004 08:34:05

c'est normale que sa marche pas. Sa marche qu'avec le réseau local.. Tu imagine si on pouvais faire sa sur l'extèrieur, se serait un gros danger...

Commentaire de COlive le 21/09/2005 11:22:35

Question : et si le poste distant est sous windows XP Service pack2 ? vous faite comment ? (meme en precisant le compte administrateur et son mot de passe ) cela ne fonctionne pas, a moins de desactiver le firewall. Quelqu'un à une solution ?

Commentaire de modmenbaramej le 03/12/2007 12:14:22

Merci

Commentaire de shakima le 31/05/2008 10:06:08

comment faire la modification de l'addresse ip du post grace à wmi

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,421 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales