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