[RESOLU] [VBS] Organiser la sortie d'un script dans un tableau excel
Bonjour, j'ai fait un script qui utilise les WMI afin de récupérer divers infos sur les machines de mon réseau.
Voici le script, si vous êtes motivé pour tout lire... :roll:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93
| On error Resume Next
Const wbemFlagReturnImmediately = &h10
Const wbemFlagForwardOnly = &h20
arrComputers = Array("IP1","IP2")
For Each strComputer In arrComputers
WScript.Echo "" & strComputer
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
'==Gestion de l'erreur pour une ip non attribuée==
If err.number <> 0 Then
WScript.Echo "Adresse IP introuvable"
Else
Set colItems = objWMIService.ExecQuery ("Select Name from Win32_ComputerSystem")
For Each objItem in colItems
WScript.Echo "" & objitem.Name
Next
'==DOMAINE==
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colSettings = objWMIService.ExecQuery ("Select * from Win32_ComputerSystem")
For Each objComputer in colSettings
Wscript.Echo "" & objComputer.Domain
Next
'==SYSTEME D'EXPLOITATION==
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_OperatingSystem",,48)
For Each objItem in colItems
Wscript.Echo "" & objItem.Caption
Next
'==ADRESSE MAC==
Set objWMIService = GetObject( "winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery ("Select * from Win32_NetworkAdapterConfiguration" & " where IPEnabled=TRUE")
For Each objItem in colItems
Wscript.Echo "" & objItem.MACAddress
Next
'==RAM TOTALE SUR LA MACHINE==
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colSettings = objWMIService.ExecQuery ("Select * from Win32_ComputerSystem")
For Each objComputer in colSettings
Wscript.Echo "" & objComputer.TotalPhysicalMemory & " "
Next
'==LECTEURS (CD/DVD) PRESENTS SUR LA MACHINE==
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_CDROMDrive")
For Each objItem in colItems
'==Type==
Wscript.Echo "" & objItem.Description
'==Nom==
Wscript.Echo "" & objItem.Name
Next
'==PROCESSEUR==
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_Processor")
For Each objItem in colItems
Wscript.Echo "" &objItem.name
Next
'==RESOLUTION D'ECRAN==
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_DesktopMonitor")
For Each objItem in colItems
Wscript.Echo "" & objItem.ScreenWidth & "x" & objItem.ScreenHeight
Next
'==UTILISATEUR LOGGE==
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colComputer = objWMIService.ExecQuery ("Select * from Win32_ComputerSystem")
For Each objComputer in colComputer
Wscript.Echo "" & objComputer.UserName
Next
'==ESPACE DISQUE==
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colDisks = objWMIService.ExecQuery ("Select * from Win32_LogicalDisk WHERE NOT (Size=null) AND
(DeviceID='C:'OR DeviceID= 'D:' OR DeviceID='E:'OR DeviceID='F:'OR DeviceID='G:'OR DeviceID='H:'OR DeviceID='I:'")
For Each objDisk in colDisks
'==Lettre==
Wscript.Echo objDisk.DeviceID
'==Type==
Wscript.Echo "" & objDisk.Description
'==Espace Total==
Wscript.Echo "" & objDisk.Size
'==Espace Libre==
Wscript.Echo "" & objDisk.FreeSpace
Next
'==IMPRIMANTES INSTALLEE SUR LA MACHINE==
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_Printer", "WQL",_
wbemFlagReturnImmediately +wbemFlagForwardOnly)
For Each objItem In colItems
WScript.Echo "" & objItem.Caption
Next
WScript.Echo
End If
err.clear
Next |
Je voudrais envoyer la sortie du script dans un tableau excel afin de pourvoir l'exploité avec un autre logiciel ensuite. Or quand je tape la commande cscript test.vbs > test.xls (par exemple) ça me renvoit toutes les informations les unes à la suite des autre, ligne par ligne, comme ça :
http://img135.imageshack.us/img135/2462/ex15ux.jpg
Et c'est là que j'ai besoin de votre aide, j'aimerais organiser toutes les infos, de cette manière :
http://img135.imageshack.us/img135/7631/ex26mk.jpg
Donc sur la première colonne il faudrai qu'il y ai toutes les adresse IP, sur la deuxième les noms de toutes les machines, etc etc... Mais le problème c'est que chaque PC a un nombre différent de lecteur et disque dur, il n'y a pas un nombre fixe...donc ça fait une difficulté en plus :/
Je ne sais pas si c'est faisable mais j'en appel à vous quand même, en espérant que vous pourrez m'aider.
Merciii :merci: