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...
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
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 :

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