Cherche script de récupération du nom d'utilisateur et adresse ip

bernhardjo Messages postés 31 Date d'inscription lundi 13 février 2006 Statut Membre Dernière intervention 11 juin 2008 - 11 sept. 2007 à 11:52
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 - 11 sept. 2007 à 22:20
Salut,


je sais que le nom d'un utilisateur est stocké dans la variable d'environnement %Username%, mais qu'en est-il de l'adresse ip de cette machine?


Je voudrais créer un script qui me permette d'obtenir ces deux choses en VBS ou JavaScript.
Quelles sont les commandes système à utiliser?


D'avance merci de pouvoir m'aider.

7 réponses

cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27
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.

jean-marc
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27
11 sept. 2007 à 12:45
 Bonjour à tous,

L'exemple ci-dessous permet de retrouver les différentes adresses IP.

' COPYRIGHT FRANCK POCHON - AOUT 2002
' prog@frpochon.com

strComputer = "."

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

msg = msg & vbCrLf & "* COPYRIGHT FRANCK POCHON - AOUT 2002 *" & vbCrLf & "   prog@frpochon.com" & " | prog.frpochon.com"

Wscript.Echo msg

jean-marc
bernhardjo Messages postés 31 Date d'inscription lundi 13 février 2006 Statut Membre Dernière intervention 11 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és 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27
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 ?

Posez votre question
bernhardjo Messages postés 31 Date d'inscription lundi 13 février 2006 Statut Membre Dernière intervention 11 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


Wscript.Echo msg
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27
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

jean-marc
bernhardjo Messages postés 31 Date d'inscription lundi 13 février 2006 Statut Membre Dernière intervention 11 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?
Rejoignez-nous