Script de récupération de nom et d'ip

bernhardjo Messages postés 31 Date d'inscription lundi 13 février 2006 Statut Membre Dernière intervention 11 juin 2008 - 17 sept. 2007 à 09:48
bernhardjo Messages postés 31 Date d'inscription lundi 13 février 2006 Statut Membre Dernière intervention 11 juin 2008 - 17 sept. 2007 à 14:53
Voilà un petit code qui permet de récupérer l'adresse ip et le nom d'utilisateur est de le placer dans un fichier texte.
Simplement j'aurai voulu apporter des modifications dessus.


1) Comment faire pour simplement récupérer le nom d'utilisateur et non le nom du PC, comme présenté ci-dessous, il récupère les deux.


2) Ce script peut seulement être exécuté en administrateur, comment faire pour que chaque utilisateur puisse l'éxécuter??


3) Si quelqu'un pouvait me le commenter en peu, ca serait cool.


4) Pour terminer il y a une ligne de code  " strOutText = WshShell.SpecialFolders("Desktop") & "\AdresseIP.txt" qui va placer sur le bureau un fichier texte du nom de AdresseIP. Ce que j'aimerai faire, c'est éxécuter ce script au démarrage et le placer dans un dossier partagé. Pour que par la suite, je puisse récupérer l'ensemble des utilisateurs et leur adresse ip dans un seul fichier texte. Si quelqu'un aurait une piste, d'avance merci.





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 &  objComputer.UserName & ","
Next





count = 1
For Each objItem in colItems
    For Each strAddress in objItem.IPAddress
       
  msg = msg &vbCrLf& strAddress   & " , " & 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

2 réponses

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

1) Les 2 méthodes ci-dessous renvoient le nom de l'utilisateur:
Set WshNetwork = WScript.CreateObject("WScript.Network")
WScript.Echo "Nom utilisateur = " & WshNetwork.UserName
Set WshNetWork = Nothing
' ou
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\" _
    & strComputer & "\root\cimv2")
For Each objComputer in objWMIService.ExecQuery("Select * from Win32_ComputerSystem")
     'séparation nom de domaine et nom d'utilisateur
    arrUser = Split(objComputer.UserName,"")
Next
WScript.Echo "Nom utilisateur=" & arruser(1)
Set objWMIService = Nothing

2) Faux, d'après moi. Quoique l'on peut interdire l'exécute d'un vbs par un utilisateur lambda.
D'autre part, ce n'est pas à l'utilisateur de se signer. Voir Active Directory (ADSI, wbem, wmi, wsh)

3) Un de mes gros defau(l)ts.

4) Voir MapNetworkDrive de l'objet NetWork en attendant plus de précisions.

Pour l'adresse IP, en réseau d'entreprise:
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
     & "{impersonationLevel=impersonate}!\" _
     & strComputer & "\root\cimv2")
For Each objItem in objWMIService.ExecQuery _
     ("Select * From Win32_NetworkAdapterConfiguration Where IPEnabled = True")
    For Each strAddress in objItem.IPAddress
         WScript.Echo  strAddress
    Next
Next

jean-marc
0
bernhardjo Messages postés 31 Date d'inscription lundi 13 février 2006 Statut Membre Dernière intervention 11 juin 2008
17 sept. 2007 à 14:53
C'est bon j'ai pu régler le problème sous le point 1. Pour le point quatre je vais aller regarder.

Sinon pour le point deux. Quand je lance le script avec un compte Invité. Un message d'erreur apparaît et me met permission refusée : GetObject.
0
Rejoignez-nous