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...
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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Et c'est là que j'ai besoin de votre aide, j'aimerais organiser toutes les infos, de cette manière :
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
Partager