Créer un prog qui créer un .txt avec info complet des PC

Créer un prog qui créer un .txt avec info complet des PC - Shell/Batch - Programmation

Marsh Posté le 21-05-2007 à 14:42:49    

Bonjour
 
En raison d'un stage en entreprise, je doit effectuer l'inventaire info de la boite ...
or pour que ceci se fasse plus rapidement, et en dérangent le moins de monde possible (c'est dans un hopital, alors skouater le pc du medecin entrain de charcuter un gars, sa me fait pas trop envie ...), j'ai voulu créer un programme qui enregistre dans un fichier text, toutes les informations qu'il me faut...
 
il me faut :
nom d'utilisateur - nom du pc - quantité de ram - processeur - quantité total disque dur - IP - passerelle - config WINS - DNS - version de windows  
 
ensuite il faut que je sache si les logiciels suivant sont installés sur le pc :
lotus notes - lotusSmartSuite - Hexagone - Office - Office pro (avec acces) - outlook express - impromptu - atalante PMSI
 
et pour finir il faudrai que je sache si le pc a acces a internet...
 
j'ai commancer a faire un petit script en batch, mais je me suis vite rendu compte que c'est tres limité ...
 
quelqu'un pourai m'aider? ...
 
(vu que je ne sais pas en quoi faire ce log, j'ai une fois mis batch, ...)
 
merci d'avance

Message cité 1 fois
Message édité par red24 le 21-05-2007 à 15:24:32

---------------
mon feed : http://forum.hardware.fr/hfr/Achat [...] 9799_1.htm
Reply

Marsh Posté le 21-05-2007 à 14:42:49   

Reply

Marsh Posté le 21-05-2007 à 15:00:54    

Pour l'instant mon ptit log en batch ressemble à ça :

Citation :

ipconfig>test1.txt                                        ---> sert à avoir l'adresse IP ainsi que la passerelle
ping 126.0.0.210 >>test1.txt                         ---> sert à savoir si le réseau est bien actif
echo nom du PC : %COMPUTERNAME% >>test1.txt     ---> sert a savoir le nom du PC
echo session : %HOMEPATH% >>test1.txt        ---> sert a savoir le domaine utilisé
echo username : %USERNAME% >>test1.txt     ---> sert a savoir le nom d'utilisateur


 
le but n'est pas de bien metre en forme chaque information, mais de récupéré toutes les information qu'il me faut le plus rapidement possible (par enxemple brancher la clef usb, lancer le log et débrancher la clef ...)
Je sortirai ensuite les informations utile pour les insérés dans ma table excel...
 
l'autre probleme avec mon log c'est qu'il écrase le fichier test1.txt a chaque nouveau lancement, or sa serai bien qu'il créer a chaque fois un nouveau en suivant une sorte de compteur ... (nouvo1.txt - nouvo2.txt ---> nouvo... .txt)


Message édité par red24 le 21-05-2007 à 15:25:21

---------------
mon feed : http://forum.hardware.fr/hfr/Achat [...] 9799_1.htm
Reply

Marsh Posté le 21-05-2007 à 22:40:15    

Reply

Marsh Posté le 22-05-2007 à 09:04:12    

1- oublie le batch
2- passe dans un langage plus intéressant (un vbs ferait l'affaire à mon avis), le VB serait peut etre mieux et plus abouti pour ce que tu cherches à faire (même si c'est un langage merdique par rapport à bien d'autres)
3- Il faut surtout aller piocher les informations dans la Base de registre, c'est là que tu sauras si les applications sont installées ou pas (HKEY_LOCAL_MACHINE/Software ou HKEY_CURRENT_USER/Software)
 
Le mieux c'est d'avoir une machine vierge, et d'utiliser des softs qui font une sauvegarde du système, puis tu installe le logiciel, puis le soft te sort un log complet et te permet de savoir quelles clés il faut taper pour trouver le soft.
 
Si tu as vraiment la flème et que tu  veux rester en batch, tu n'as plus qu'à trouver des outils en ligne de commande qui te servent à te fournir les informations nécessaires

Reply

Marsh Posté le 22-05-2007 à 09:38:09    

ok merci
ben en fait j'ai commancé en batch mais comme je l'ai dit, j'ai vite trouver les limites ...
donc bon j'aimerai bien passer en autre langage mais a par le c++ que je connai un peu des cours (mais franchement j'ai rien compris avec les super prof qu'on avait), le reste je connai pas.
 
en clair si comme tu le dit vaut mieu passer en VB, ben alors je vais essayé de mis metre, mais si jamais quelqu'un a des conseil a donné a quelqu'un qui débute en VB pour sa, n'hésité pas ^^
 
j'oublai, autre petit probleme, il faut que je peu faire la prog avec un logiciel gratuit pour pouvoir l'installé ici ...


Message édité par red24 le 22-05-2007 à 09:42:15

---------------
mon feed : http://forum.hardware.fr/hfr/Achat [...] 9799_1.htm
Reply

Marsh Posté le 22-05-2007 à 10:11:38    

regardes côté winmsd (ou msinfo32) : tu peux faire des rapports texte et des interrogations à distance

Reply

Marsh Posté le 22-05-2007 à 10:50:43    

heu pour msinfo j'ai regardé là mais je n'arrive pas vraiment a prendre les info que je veux de tout le bazard qu'il me génere en dans un nfo...
surtout que le nfo c lent ...
je préfere fouillé dans un txt de 4000 ligne que dans un nfo comme ceux créer par ce log ...

edit :bon finalement j'ai trouvé la commande pour enregistré dans un fichier text, mais bon quand je disai 4000 lignes c'était ironique, il avait pas besoin de mes les sortir les 4000 lignes ... lol
 
peu etre que ce que tu me dis c'est de l'utiliser pour prendre ce que je veux, là sa pourai allé, mais j'ai pas compris comment alors ...


Message édité par red24 le 22-05-2007 à 11:02:46

---------------
mon feed : http://forum.hardware.fr/hfr/Achat [...] 9799_1.htm
Reply

Marsh Posté le 22-05-2007 à 11:08:26    

bon en gros j'ai réussi a gerer avec msinfo32.exe, un de mes dernier pb avec serai d'afficher la config WINS et le DNS, vous sauriez pas comment afficher cela avec msinfo par hasard ? ...


---------------
mon feed : http://forum.hardware.fr/hfr/Achat [...] 9799_1.htm
Reply

Marsh Posté le 22-05-2007 à 11:37:18    

ipconfig /all

Reply

Marsh Posté le 22-05-2007 à 12:48:13    

lol merde je suis un peu con parfois ...
j'avai plus pensé que étant donné que le tout restait dans un batch, je pouvai combiné pour avoir toutes les info ... ^^
merci beaucoup


---------------
mon feed : http://forum.hardware.fr/hfr/Achat [...] 9799_1.htm
Reply

Marsh Posté le 22-05-2007 à 12:48:13   

Reply

Marsh Posté le 22-05-2007 à 14:14:09    

re aie j'ai un autre probleme ...
pour l'instant mon ptit script se contente de sa :
 

Citation :

if not exist test0.txt set y=0
:BOUCLE  
start /wait msinfo32.exe /report test%y%.txt /categories +componentsnetadapter+componentsstoragedisks+componentsprinting+swenvprogramgroupc
ipconfig /all >>test%y%.txt
ping 126.0.0.210 >>test%y%.txt
echo nom du PC : %COMPUTERNAME% >>test%y%.txt
echo session : %HOMEPATH% >>test%y%.txt
echo username : %USERNAME% >>test%y%.txt
set /A y=y+1  
echo %y%
@pause
IF not %y%==255 GOTO BOUCLE


 
en fait il bug pour l'ip et tt ce qui est derriere le "start /wait msinfo32.exe", il affiche des caractere incorect (les petit rectangle) et tout sur une ligne, je ne comprend pas pourquoi ...


Message édité par red24 le 22-05-2007 à 14:50:27

---------------
mon feed : http://forum.hardware.fr/hfr/Achat [...] 9799_1.htm
Reply

Marsh Posté le 23-05-2007 à 09:09:42    

Reply

Marsh Posté le 23-05-2007 à 11:21:27    

c'est parce que le fichier de sortie de msinfo32 n'est pas dans un format standard
rediriges tes commandes batch comme ipconfig dans un autre fichier

Reply

Marsh Posté le 23-05-2007 à 15:21:29    

ok merci c'est ce que je craignai ...


---------------
mon feed : http://forum.hardware.fr/hfr/Achat [...] 9799_1.htm
Reply

Marsh Posté le 23-05-2007 à 15:25:42    

j'ai un encore un autre petit probleme (j'espere que sa sera le dernier ... lol)
j'aimerai que a chaque fois que je lance la commande, il créer un nouvo fichier text avec les info dedan, sans écraser l'ancien, et sans ajouté les info a l'ancien fichier texte ...
 
j'ai commancé avec un compteur qui s'incrémente a chaque fois la boucle terminer, mais la variable (nb) je l'écrit sur un autre fichier text pour que elle soit gardé sur la clef...
or je ne sais plus comment allé lire la valeur se trouvant dans le fichier nb.txt ...
 
si quelqu'un peu me dire la commande a utiliser ... merci d'avance


Message édité par red24 le 23-05-2007 à 15:26:08

---------------
mon feed : http://forum.hardware.fr/hfr/Achat [...] 9799_1.htm
Reply

Marsh Posté le 23-05-2007 à 18:09:25    

red24 a écrit :

Bonjour

 

En raison d'un stage en entreprise, je doit effectuer l'inventaire info de la boite ...
or pour que ceci se fasse plus rapidement, et en dérangent le moins de monde possible (c'est dans un hopital, alors skouater le pc du medecin entrain de charcuter un gars, sa me fait pas trop envie ...), j'ai voulu créer un programme qui enregistre dans un fichier text, toutes les informations qu'il me faut...

 

il me faut :
nom d'utilisateur - nom du pc - quantité de ram - processeur - quantité total disque dur - IP - passerelle - config WINS - DNS - version de windows

 

ensuite il faut que je sache si les logiciels suivant sont installés sur le pc :
lotus notes - lotusSmartSuite - Hexagone - Office - Office pro (avec acces) - outlook express - impromptu - atalante PMSI

 

et pour finir il faudrai que je sache si le pc a acces a internet...

 

j'ai commancer a faire un petit script en batch, mais je me suis vite rendu compte que c'est tres limité ...

 

quelqu'un pourai m'aider? ...

 

(vu que je ne sais pas en quoi faire ce log, j'ai une fois mis batch, ...)

 

merci d'avance

 

VBScript + WMI conviendra parfaitement. Oublie le batch stp. On est en 2007, pas en 1987.

 

Un exemple :

Code :
  1. ' OperatingSystem.vbs
  2. ' Purpose VBScript to document your Operating System
  3. ' Author Guy Thomas http://computerperformance.co.uk/
  4. ' Version 1.4 - November 2005
  5. ' -------------------------------------------------------'
  6. Option Explicit
  7. Dim objWMIService, objItem, colItems
  8. Dim strComputer, strList
  9. On Error Resume Next
  10. strComputer = "."
  11. ' WMI Connection to the object in the CIM namespace
  12. Set objWMIService = GetObject("winmgmts:\\" _
  13. & strComputer & "\root\cimv2" )
  14. ' WMI Query to the Win32_OperatingSystem
  15. Set colItems = objWMIService.ExecQuery _
  16. ("Select * from Win32_OperatingSystem" )
  17. ' For Each... In Loop (Next at the very end)
  18. For Each objItem in colItems
  19. WScript.Echo "Machine Name: " & objItem.CSName & VbCr & _
  20. "===================================" & vbCr & _
  21. "Processor: " & objItem.Description & VbCr & _
  22. "Manufacturer: " & objItem.Manufacturer & VbCr & _
  23. "Operating System: " & objItem.Caption & VbCr & _
  24. "Version: " & objItem.Version & VbCr & _
  25. "Service Pack: " & objItem.CSDVersion & VbCr & _
  26. "CodeSet: " & objItem.CodeSet & VbCr & _
  27. "CountryCode: " & objItem.CountryCode & VbCr & _
  28. "OSLanguage: " & objItem.OSLanguage & VbCr & _
  29. "CurrentTimeZone: " & objItem.CurrentTimeZone & VbCr & _
  30. "Locale: " & objItem.Locale & VbCr & _
  31. "SerialNumber: " & objItem.SerialNumber & VbCr & _
  32. "SystemDrive: " & objItem.SystemDrive & VbCr & _
  33. "WindowsDirectory: " & objItem.WindowsDirectory & VbCr & _
  34. ""
  35. Next
  36. WSCript.Quit
  37. ' End of WMI Win32_OperatingSystem VBScript
 

http://www.computerperformance.co. [...] I_Secrets_


Message édité par Harkonnen le 23-05-2007 à 18:11:01
Reply

Marsh Posté le 23-05-2007 à 22:40:12    

oula bon je vais voir cela demain au stage, mais là comme sa je ne comprend pas grand chose, en meme temps on a jamais vu encore le VBscript ...
 
pour le batch en 2007 je suis tout a fait d'accord avec toi, mais c'est a nos prof et l'éducation nationale qu'il faut l'éxpliquer ...
 
en BTS IRIS je croi que les truc qu'on a le plus vu ce sont :
 
Les API (automate tout vieux, bon sa je veu bien meme si le genre de model utilisé ne doit surrement plus se trouver)
Les commande linux du genre batch mais en linux ...
du c++ en veu tu en voila a ni rien comprendre (surtout que c'est avec le plus mauvais des prof qu'on a ...)
et le fonctionnement interne d'un proc des année 80 et de la mémoire (tres vieu model bien sur)
 
enfin bon tout sa pour dire que c'est pas grace a ce que l'on a aprit en cours que l'on est censé savoir faire ce genre de chose ... lol
 
en tout cas merci beaucoup de l'interet que vous portez a mon post, je vous tien au courant de si j'arrive a faire quelque chose avec le VBscript ^^
 
bonne soirée ++


---------------
mon feed : http://forum.hardware.fr/hfr/Achat [...] 9799_1.htm
Reply

Marsh Posté le 23-05-2007 à 23:06:38    

si tu attends tout de tes profs et de l'éducation nationale, tu peux quitter le monde de l'informatique dès maintenant :sweat:
Tout le monde est passé par l'histoire de l'informatique, des algo sur papier, du fonctionnement d'un disque dur de 20Mo ou d'un processeur 8086 cadencé à 1Mhz. Mais déjà si tu ne connais pas ca, tu auras du mal à comprendre le fonctionnement des ordis actuels car ils descendent tous de ces vieilles architectures.
 
Un stage c'est fait pour apprendre, l'informatique est un domaine où il faut souvent se remettre en question et apprendre sans arrêt de nouvelles choses car tout évolue très vite

Reply

Marsh Posté le 24-05-2007 à 06:48:31    

En gros dans ton stage :  
- On te file le taf
- Tu trouves le meilleure moyen de le faire propre sans bavure en utilisant des technos adapté
- Les technos que tu veux utiliser tu les connais pas, ben ce que tu fais, dans ton planning de travail, tu dis : Voila, il me faut 1 à 2 jours pour apprendre le VBS (les base hein c'est pas trop dur) et voila après je pourrais faire ceci puis cela
- Au final tu t'en tireras avec des connaissances supplémentaires et pour la première fois tu auras cherché par toi même sans être assisté par tes profs ou tes petits camarades

Reply

Marsh Posté le 24-05-2007 à 08:44:30    

oki merci tout le monde.
 
bon j'ai quand meme un autre probleme, vous ne connaisseriez pas un log gratuit pour faire du VBscript ...?
A mon stage ils n'ont pas visual studio ...
en fait ils ne font pas de programation normalement, c'est moi qui a voulu faire plus et mieu ... donc je me retrouve quand meme coincé de ce coté ...
 
edit : lol désolé je me répond moi meme ... ^^
 
http://www.microsoft.com/france/ms [...] argez.mspx


Message édité par red24 le 24-05-2007 à 09:03:05

---------------
mon feed : http://forum.hardware.fr/hfr/Achat [...] 9799_1.htm
Reply

Marsh Posté le 24-05-2007 à 09:24:18    

sinon notepad++ hein :o

Reply

Marsh Posté le 24-05-2007 à 10:05:23    

? merde je croyai que ce language avait besoin d'etre compiler ... lol j'ai encore rien compris moi ...
 
mais alors pour faire marcher par exemple le petit programme que Harkonnen ma donné plus haut, il suffit de le collé dans un fichier .vbs dans notepas++ ?
(avec notepad sa m'avai afficher un message d'erreur comme quoi il faut compiler un truc du genre ... sa ma induit en érreur je croi bien ...)


---------------
mon feed : http://forum.hardware.fr/hfr/Achat [...] 9799_1.htm
Reply

Marsh Posté le 24-05-2007 à 10:06:36    

oui, tu le colles dans un fichier.vbs et tu triples-clic dessus

Reply

Marsh Posté le 24-05-2007 à 10:18:43    

oki merci beaucoup ^^


---------------
mon feed : http://forum.hardware.fr/hfr/Achat [...] 9799_1.htm
Reply

Marsh Posté le 29-05-2007 à 09:38:39    

salut tout le monde
 
je suis donc passé en vbs, et grace au logiciel scriptomatic j'ai réussi a avoir toute les infos qu'il me faut sauf l'adresse ip, passerelle, dns, wins ...
 
sinon je n'arrive pas a sortir les info dans un fichier texte.
 
si quelqu'un peu me donner un coup de main ...
 
voici les grande lignes de mon prog :
 

Citation :

arrComputers = Array("localhost" )
For Each strComputer In arrComputers
    WScript.Echo "Computer: " & strComputer
 
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2" )
               
 Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_ComputerSystem", "WQL", _
                                          wbemFlagReturnImmediately + wbemFlagForwardOnly)
           
  For Each objItem In colItems
   WScript.Echo "SystemName: " & objItem.Name
   WScript.Echo "Manufacturer: " & objItem.Manufacturer
  Next  
 
 Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_ComputerSystemProduct", "WQL", _
                                          wbemFlagReturnImmediately + wbemFlagForwardOnly)
 
  For Each objItem In colItems
   WScript.Echo "IdentifyingNumber: " & objItem.IdentifyingNumber
   WScript.Echo "Name: " & objItem.Name
  Next  
   
 Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_OperatingSystem", "WQL", _
                                          wbemFlagReturnImmediately + wbemFlagForwardOnly)
   
  For Each objItem In colItems
  WScript.Echo "Caption: " & objItem.Caption
  Next  
   
 Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_Processor", "WQL", _
                                          wbemFlagReturnImmediately + wbemFlagForwardOnly)
 
  For Each objItem In colItems
  WScript.Echo "Name: " & objItem.Name
  Next            
 
 Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_PhysicalMemory", "WQL", _
                                          wbemFlagReturnImmediately + wbemFlagForwardOnly)
   
  For Each objItem In colItems            
   WScript.Echo "Capacity ddr: " & objItem.Capacity  
  Next  
 
 Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_DiskDrive", "WQL", _
                                          wbemFlagReturnImmediately + wbemFlagForwardOnly)
 
  For Each objItem In colItems            
   WScript.Echo "Size DD: " & objItem.Size  
  Next              
 
 Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_ProgramGroup", "WQL", _
                                          wbemFlagReturnImmediately + wbemFlagForwardOnly)
 
  For Each objItem In colItems  
   WScript.Echo  
   WScript.Echo "Nom Program: " & objItem.GroupName
   WScript.Echo ""
  Next
 Next


 
je précise que je n'ai pas tout compris de ce qui ce trouve dans ce programme, comme par exemple :
wbemFlagReturnImmediately + wbemFlagForwardOnly
je ne sais pas vraiment a quoi sa sert, mais je les ais laissé pour le moment, je verai plus tard le fonctionnement exacte du programme...
 
merci d'avance


---------------
mon feed : http://forum.hardware.fr/hfr/Achat [...] 9799_1.htm
Reply

Marsh Posté le 29-05-2007 à 10:26:48    

j'ai essayé en ouvrant un fichier txt de cette maniere:
Open "C:\test.txt" For Output As #2
mais il y a une érreur de compilation a la ligne de ce code ...
 
edit: a utiliser avec Visual Basic ...  :sweat:


Message édité par red24 le 29-05-2007 à 11:15:35

---------------
mon feed : http://forum.hardware.fr/hfr/Achat [...] 9799_1.htm
Reply

Marsh Posté le 29-05-2007 à 10:31:33    

Code :
  1. Set fso = CreateObject ("Scripting.FileSystemObject" )
  2. Set f = fso.CreateTextFile("C:\windows\temp\pouet.txt", True)
  3. f.WriteLine ("pouet" )
  4. f.Close

Reply

Marsh Posté le 29-05-2007 à 11:14:11    

wow merci beaucoup
j'avai trouvé un code du genre mais j'avais pas tout compris
mon code que javai donné est a utilisé avec Visual Basic, j'ai compris entre temps...
en tout cas ton code ma permis de bien comprendre le truc ^^
 
il ne reste plus que a avoir l'ip, le dns, la passerelle, et le wins ...
on pourai pas utilisé ipconfig par hasard en vbs ? ou quelque chose du genre...


---------------
mon feed : http://forum.hardware.fr/hfr/Achat [...] 9799_1.htm
Reply

Marsh Posté le 29-05-2007 à 11:33:24    

Reply

Marsh Posté le 29-05-2007 à 11:50:26    

ok merci, pour l'IP c'est bon maintenant grace a celà :
 

Citation :

Set IPConfigSet = objWMIService.ExecQuery _
 ("Select IPAddress from Win32_NetworkAdapterConfiguration " )
 
  For Each IPConfig in IPConfigSet
   If Not IsNull(IPConfig.IPAddress) Then  
    For i=LBound(IPConfig.IPAddress) _
     to UBound(IPConfig.IPAddress)
      f.WriteLine "IP :" & IPConfig.IPAddress(i)
    Next
    End If
        Next


 
mais le reste (dns, wins, passerelle) c'est encore a chercher...
je vais continuer de chercher pour chaqu'un, mais si quelqu'un saurai comment les avoirs, faites moi signe ^^
 
merci beaucoup a ceux qui m'on aidé


---------------
mon feed : http://forum.hardware.fr/hfr/Achat [...] 9799_1.htm
Reply

Marsh Posté le 29-05-2007 à 12:04:14    

je pense qu'il vaut mieux poser tes questions dans la catégorie VB/VBS/VBA car à ce stade là je serais limite, et des personnes mieux qualifiés pourraient y répondre

Reply

Marsh Posté le 29-05-2007 à 13:07:06    

ok ouai bonne idée ^^
 
merci beaucoup en tout cas pour l'aide qui tu ma aporté
 
bonne journée


---------------
mon feed : http://forum.hardware.fr/hfr/Achat [...] 9799_1.htm
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed