cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 201827 11 sept. 2007 à 22:20
Re,
Mes réponses précédentes ne servent plus pour cette nouvelle question.
Voir Active Directory et ADSI, car je ne pense pas que wmi et wbem soient la solution.
Set objWMIService = GetObject("winmgmts:" & "!\" & strComputer & "\root\cimv2")Set colAdapters objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration Where IPEnabled True")
For Each objAdapter in colAdapters
IPdebut = LBound(objAdapter.IPAddress)
IPfin = UBound(objAdapter.IPAddress)
If (objAdapter.IPAddress(IPdebut) <> "") then
ordinateur = objAdapter.DNSHostName
msg = msg & vbCrLf & "L'ordinateur "
If (ordinateur <> "") Then
msg = msg & "<" & ordinateur & "> "
end if
dns = objAdapter.DNSDomain
If Not IsNull(dns) Then
msg = msg & "du domaine DNS " & dns & vbCrLf
end if
For i = IPdebut To IPfin
msg = msg & "utilise l'adresse IP " & objAdapter.IPAddress(i) & vbCrLf
Next
if (objAdapter.DHCPEnabled) then
msg = msg & "obtenu par le serveur DHCP " & objAdapter.DHCPServer & vbCrLf
bail = objAdapter.DHCPLeaseObtained
If (bail <> "") Then
msg = msg & "le " & bail & " pour " & objAdapter.DHCPLeaseExpires & vbCrLf
End If
end if
carte = objAdapter.Description
msg = msg & vbCrLf & "sur l'adaptateur : " & left(carte,45)
if (len(carte) > 45) then
msg = msg & "..."
end if
msg = msg & vbCrLf
msg = msg & "d'adresse MAC " & objAdapter.MACAddress & "." & vbCrLf & vbCrLf
For i = LBound(objAdapter.IPSubnet) To UBound(objAdapter.IPSubnet)
msg = msg & "Son masque est " & objAdapter.IPSubnet(i) & vbCrLf
Next
If Not IsNull(objAdapter.DefaultIPGateway) Then
For i = LBound(objAdapter.DefaultIPGateway) To UBound(objAdapter.DefaultIPGateway)
msg = msg & "avec comme passerelle " & objAdapter.DefaultIPGateway(i) & vbCrLf
Next
End If
If Not IsNull(objAdapter.DNSServerSearchOrder) Then
msg = msg & vbCrLf
DNSdebut = LBound(objAdapter.DNSServerSearchOrder)
DNSfin = UBound(objAdapter.DNSServerSearchOrder)
For i = DNSdebut To DNSfin
msg = msg & "Adresse de serveur DNS : " & objAdapter.DNSServerSearchOrder(i) & vbCrLf
Next
End If
winspri = objAdapter.WINSPrimaryServer
If Not IsNull(winspri) Then
msg = msg & "L'IP de son serveur WINS primaire est " & winspri & vbCrLf
End If
winssec = objAdapter.WINSSecondaryServer
If Not IsNull(winssec) Then
msg = msg & "L'IP de son serveur WINS secondaire est " & winssec & vbCrLf & vbCrLf
End If
End If
Next
if (msg = "") then
msg = "Vous n'avez pas de connection réseau ACTIVE !" & vbCrLf
end if
bernhardjo
Messages postés31Date d'inscriptionlundi 13 février 2006StatutMembreDernière intervention11 juin 2008 11 sept. 2007 à 15:08
Merci bien pour ton aide, maintenant qu'est-ce qu'il faudrait que je rajoute pour récupérer l'ip mais avec le nom de l'utilisateur connecté et ainsi pouvoir le mettre dans un fichier texte sous forme de table?
cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 201827 11 sept. 2007 à 17:46
Re,
Exemple, testé at home (connexion DNS), qui crée le fichier "AdresseIP.txt" sur mon Desktop.
Option Explicit
Dim IPConfigSet, IPConfig, strOutText, WshShell, objFso, objTxt, Computer
Computer = "."
Set IPConfigSet = GetObject("winmgmts:{impersonationLevel=impersonate}!//" & Computer).ExecQuery _
("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled=TRUE")
If Err.Number<>0 Then
wscript.echo " - non accessible -"
Else
Set WshShell = WScript.Createobject("WScript.Shell")
strOutText = WshShell.SpecialFolders("Desktop") & "\AdresseIP.txt"
Set objFso = Createobject("Scripting.FileSystemObject")
Set objTxt = objFso.OpenTextFile(strOutText, 2, True)
For Each IPConfig in IPConfigSet
If InStr(IPConfig.Description,"WAN") Then
objTxt.WriteLine "Adresse IP: " & IPConfig.IPAddress(0) & vbTab & _
"DNSHostName: " & IPConfig.DNSHostName
Exit For
End if
Next
objTxt.Close
Set objTxt = Nothing
Set objFso = Nothing
Set WshShell = Nothing
End If
Set IPConfigSet = Nothing
jean-marc
Vous n’avez pas trouvé la réponse que vous recherchez ?
bernhardjo
Messages postés31Date d'inscriptionlundi 13 février 2006StatutMembreDernière intervention11 juin 2008 11 sept. 2007 à 18:12
Je le test chez moi, tout se compile nickel mais le fichier texte est vide, je comprends pas.
A part ça voici le code que j'ai créer avec ton exemple. Il fonctionne mais n'est peut-être pas des plus clairs. Je vais continuer a chercher pour pouvoir récupérer mes infos dans un fichiers textes. Si j'avais je suis preneur de solution.
Merci encore pour ton aide.
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\" _
& strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery _
("Select * From Win32_NetworkAdapterConfiguration Where IPEnabled = True")
Set colComputer = objWMIService.ExecQuery _
("Select * from Win32_ComputerSystem")
For Each objComputer in colComputer
msg = msg & "L'adresse ip de l'utilisateur " & objComputer.UserName
Next
For Each objItem in colItems
For Each strAddress in objItem.IPAddress
msg = msg & " est " & strAddress
Next
Next
cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 201827 11 sept. 2007 à 18:44
Re,
script testé au boulot (réseau), le fichier txt est renseigné
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\" _
& strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery _
("Select * From Win32_NetworkAdapterConfiguration Where IPEnabled = True")
Set colComputer = objWMIService.ExecQuery _
("Select * from Win32_ComputerSystem")
For Each objComputer in colComputer
msg = msg & "L'adresse ip de l'utilisateur " & objComputer.UserName
Next
count = 1
For Each objItem in colItems
For Each strAddress in objItem.IPAddress
msg = msg &vbCrLf& strAddress &vbTab& "count=" & count
count = count +1
Next
Next
Set WshShell = WScript.Createobject("WScript.Shell")
strOutText = WshShell.SpecialFolders("Desktop") & "\AdresseIP.txt"
Set objFso = Createobject("Scripting.FileSystemObject")
Set objTxt = objFso.OpenTextFile(strOutText, 2, True)
objtxt.WriteLine msg
objtxt.Close
Wscript.Echo msg
l'adresse IP est en count 1.
script testé chez moi
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\" _
& strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery _
("Select * From Win32_NetworkAdapterConfiguration Where IPEnabled = True")
Set colComputer = objWMIService.ExecQuery _
("Select * from Win32_ComputerSystem")
For Each objComputer in colComputer
msg = msg & "L'adresse ip de l'utilisateur " & objComputer.UserName
Next
count = 1
For Each objItem in colItems
For Each strAddress in objItem.IPAddress
msg = msg &vbCrLf& strAddress &vbTab& "count=" & count
count = count +1
Next
Next
Wscript.Echo msg
count 1 = 0.0.0.0
count 2 = mon ip dns
count 3 = 0.0.0.0
bernhardjo
Messages postés31Date d'inscriptionlundi 13 février 2006StatutMembreDernière intervention11 juin 2008 11 sept. 2007 à 21:55
C'est exactement ce qu'il me fallait, je peux continuer a avancer. Maintenant je devrais récupérer dans ce fichier d'adresse ip, l'ensemble des utilisateurs (avec leur ip) d'un réseau d'entreprise. Comment est-ce que je pourrais réaliser ça?