RÉCUPÉRER MAC ADRESSE ET AUTRES INFO AVEC WMI (LOCAL ET DISTANT)
lumesh
Messages postés564Date d'inscriptionjeudi 21 février 2002StatutMembreDernière intervention 7 novembre 2008
-
8 janv. 2004 à 17:13
shakima
Messages postés1Date d'inscriptionmercredi 14 mai 2008StatutMembreDernière intervention31 mai 2008
-
31 mai 2008 à 10:06
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
shakima
Messages postés1Date d'inscriptionmercredi 14 mai 2008StatutMembreDernière intervention31 mai 2008 31 mai 2008 à 10:06
comment faire la modification de l'addresse ip du post grace à wmi
modmenbaramej
Messages postés5Date d'inscriptionmardi 20 novembre 2007StatutMembreDernière intervention 3 mai 2008 3 déc. 2007 à 12:14
Merci
COlive
Messages postés91Date d'inscriptionmercredi 27 février 2002StatutMembreDernière intervention 3 décembre 2011 21 sept. 2005 à 11:22
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 ?
zmania
Messages postés22Date d'inscriptionlundi 21 octobre 2002StatutMembreDernière intervention13 septembre 2004 2 mars 2004 à 08:34
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...
dionysos6868
Messages postés310Date d'inscriptionjeudi 4 septembre 2003StatutMembreDernière intervention 9 juin 20051 2 mars 2004 à 06:48
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
cs_007
Messages postés24Date d'inscriptionjeudi 20 juin 2002StatutMembreDernière intervention 1 janvier 2007 1 mars 2004 à 23:10
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
LogRaam (aka Gabriel Mailhot)
Messages postés60Date d'inscriptionlundi 26 mai 2003StatutMembreDernière intervention25 avril 2005 1 mars 2004 à 14:59
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
dionysos6868
Messages postés310Date d'inscriptionjeudi 4 septembre 2003StatutMembreDernière intervention 9 juin 20051 1 mars 2004 à 14:15
Merci pour ce super truc mais j'aurais une question.
Sur quel port de communication ce passe les info merci
zmania
Messages postés22Date d'inscriptionlundi 21 octobre 2002StatutMembreDernière intervention13 septembre 2004 24 févr. 2004 à 11:37
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.
Veribasic
Messages postés1Date d'inscriptionmardi 17 février 2004StatutMembreDernière intervention17 février 2004 17 févr. 2004 à 18:16
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
cs_Dalyna
Messages postés2Date d'inscriptionvendredi 6 février 2004StatutMembreDernière intervention 9 février 2004 9 févr. 2004 à 16:38
Merci Madlucas,
C'est super gentil d'avoir pris autant de temps pour repondre à ma question. Encore merci. A bientot
Dalyna
LogRaam (aka Gabriel Mailhot)
Messages postés60Date d'inscriptionlundi 26 mai 2003StatutMembreDernière intervention25 avril 2005 9 févr. 2004 à 15:20
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:
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
cs_Dalyna
Messages postés2Date d'inscriptionvendredi 6 février 2004StatutMembreDernière intervention 9 février 2004 9 févr. 2004 à 12:06
ç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
cs_007
Messages postés24Date d'inscriptionjeudi 20 juin 2002StatutMembreDernière intervention 1 janvier 2007 7 févr. 2004 à 14:22
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
LogRaam (aka Gabriel Mailhot)
Messages postés60Date d'inscriptionlundi 26 mai 2003StatutMembreDernière intervention25 avril 2005 9 janv. 2004 à 02:23
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
lumesh
Messages postés564Date d'inscriptionjeudi 21 février 2002StatutMembreDernière intervention 7 novembre 2008 8 janv. 2004 à 17:13
J'ai fait la meme chose pour VB.net :)
C'est exelent le WMI
31 mai 2008 à 10:06
3 déc. 2007 à 12:14
21 sept. 2005 à 11:22
2 mars 2004 à 08:34
2 mars 2004 à 06:48
merci
1 mars 2004 à 23:10
Dites moi que je suis complètement à coté de la plaque parce que sinon j'y comprend plus rien !!
James Bond
1 mars 2004 à 14:59
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
1 mars 2004 à 14:15
Sur quel port de communication ce passe les info merci
24 févr. 2004 à 11:37
17 févr. 2004 à 18:16
veribasic
9 févr. 2004 à 16:38
C'est super gentil d'avoir pris autant de temps pour repondre à ma question. Encore merci. A bientot
Dalyna
9 févr. 2004 à 15:20
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
9 févr. 2004 à 12:06
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
7 févr. 2004 à 14:22
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
9 janv. 2004 à 02:23
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
8 janv. 2004 à 17:13
C'est exelent le WMI