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

Créer un prog qui créer un .txt avec info complet des PC (2) - VB/VBA/VBS - Programmation

Marsh Posté le 29-05-2007 à 14:22:35    

Bonjour
 
en raison du changement de language, je créer un nouveau topik pour la suite de mon programme ...
 
pour le 1er topik voir ici
 

Citation :

On Error Resume Next
 
    Set fso = CreateObject ("Scripting.FileSystemObject" )
    Set f = fso.CreateTextFile("test.txt", True)
    f.WriteLine ("test" )
 
Const wbemFlagReturnImmediately = &h10
Const wbemFlagForwardOnly = &h20
 
arrComputers = Array("localhost" )
For Each strComputer In arrComputers
    f.WriteLine "Computer: " & strComputer
 
 
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2" )
     
 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
   
 Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_ComputerSystem", "WQL", _
                                          wbemFlagReturnImmediately + wbemFlagForwardOnly)
           
  For Each objItem In colItems  
   f.WriteLine "SystemName: " & objItem.Name
   f.WriteLine "Manufacturer: " & objItem.Manufacturer
  Next  
 
 Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_ComputerSystemProduct", "WQL", _
                                          wbemFlagReturnImmediately + wbemFlagForwardOnly)
 
  For Each objItem In colItems
   f.WriteLine "IdentifyingNumber: " & objItem.IdentifyingNumber
   f.WriteLine "Name: " & objItem.Name
  Next  
   
 Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_OperatingSystem", "WQL", _
                                          wbemFlagReturnImmediately + wbemFlagForwardOnly)
   
  For Each objItem In colItems
   f.WriteLine "Caption: " & objItem.Caption
  Next  
   
 Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_Processor", "WQL", _
                                          wbemFlagReturnImmediately + wbemFlagForwardOnly)
 
  For Each objItem In colItems
   f.WriteLine "Name: " & objItem.Name
  Next            
 
 Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_PhysicalMemory", "WQL", _
                                          wbemFlagReturnImmediately + wbemFlagForwardOnly)
   
  For Each objItem In colItems            
   f.WriteLine "Capacity ddr: " & objItem.Capacity  
  Next  
 
 Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_DiskDrive", "WQL", _
                                          wbemFlagReturnImmediately + wbemFlagForwardOnly)
 
  For Each objItem In colItems            
   f.WriteLine "Size DD: " & objItem.Size  
  Next              
 
 Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_ProgramGroup", "WQL", _
                                          wbemFlagReturnImmediately + wbemFlagForwardOnly)
 
  For Each objItem In colItems  
   f.WriteLine  
   f.WriteLine "Nom Program: " & objItem.GroupName
  Next
 Next
 f.Close


 
Donc voici mon code, et mon probleme du moment est d'ajouter l'adresse dns , la passerelle, et l'adresse WINS ...
 
j'ai remarqué avant que elles sont visible dans le Win32_NetworkAdapterConfiguration, comme pour l'adresse IP, mais comme pour l'adresse ip, ces commandes sortent plusieur adresse en boucle alors qu'il en faudrai que une.
 

Citation :

f.WriteLine "DefaultIPGateway: " & IPConfig.strDefaultIPGateway
f.WriteLine "DNSServerSearchOrder: " & IPConfig.strDNSServerSearchOrder
f.WriteLine "IPAddress: " & IPConfig.strIPAddress
f.WriteLine "IPSubnet: " & IPConfig.strIPSubnet
f.WriteLine "WINSPrimaryServer: " & IPConfig.WINSPrimaryServer


 
pour l'adresse Ip j'avai le meme probleme mais j'ai trouvé sur le net un bout de code qui fait sortir une seul fois l'adresse:
 

Citation :

If Not IsNull(IPConfig.IPAddress) Then  
    For i=LBound(IPConfig.IPAddress) _
     to UBound(IPConfig.IPAddress)
      f.WriteLine "IP :" & IPConfig.IPAddress(i)
    Next
   End If


 
j'ai voulu faire pareil avec les commande donnée juste en haut mais sa ne fonctionne pas ...
 
 
 
 
merci d'avance pour votre aide.


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

Marsh Posté le 29-05-2007 à 14:22:35   

Reply

Marsh Posté le 29-05-2007 à 14:39:33    

lol je me répond encore une fois tout seul ...
 
bon ben en fait il suffit de reprendre la meme forme que pour l'adresse IP mais il fallai modifier la ligne :

Citation :


Set IPConfigSet = objWMIService.ExecQuery _
 ("Select IPAddress from Win32_NetworkAdapterConfiguration " )


 
par  
 

Citation :

Set IPConfigSet = objWMIService.ExecQuery _
 ("Select * from Win32_NetworkAdapterConfiguration " )


 
...


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

Marsh Posté le 29-05-2007 à 14:43:33    

maintenant mon programme est presque fini, il manque plus que une chose qui va surrement etre la plus embetante a faire (enfin je ne sais pas comment faire ...)
 
enfait j'aimerai que a chaque fois que je lance mon programme .vbs, il créer un nouveau fichier .txt pour y metre les informations ...
 
et de préférance j'aimerai que il les créer dans un ordre numérique ...
 
enfait j'aimerai que le 1er s'appelle par exemple test1.txt, le 2eme test2.txt, ... le n ème testn.txt et ainsi de suite ...
 
en sachant que le programme sera lancé d'une clef usb et sera lancé a chaque fois sur un autre ordinateur .
 
merci d'avance


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

Marsh Posté le 29-05-2007 à 22:10:15    

est ce que l'ordre numérique est obligatoire ? moi perso j'aurais mis un nom de fichier accolé avec un chiffre totalement aléatoire style nomfichier_XXXXXX.txt, ou alors un nom de fichier avec la date au format YYYYMMDD_HHMISS_nomfichier.txt
 
après pour s'y retrouver, suffit de regarder la date de création du fichier, tu peux également mettre cette date dans ton rapport texte
 
si tu veux absolument un ordre numérique, il faudra stocker quelque part la dernière valeur et la lire, que ce soit dans un fichier texte ou dans le nom des fichiers précédent : c'est un peu lourd pour pas grand chose

Reply

Marsh Posté le 29-05-2007 à 23:45:39    

ouai en fait je croi que je vais faire comme tu indique avec la date...
le tout est que jarrive les traiter dans le meme ordre que quand je les aurai créer.
 
heu il y a des variable toutes pretes pour la date et heure, ou il faut les chercher soit meme?
(au pire sa je chercherai vite demain)
 
sinon je me suis rendu compte a 4 h que il me manque dans mon log, le nom de login de la session en cours, et la liste des imprimantes installé sur le pc (usb et surtout ethernet) ...


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

Marsh Posté le 30-05-2007 à 11:34:50    

bon alors cette fois il me reste le nom des fichier a regardé comment faire pour sortir la date et heure a la fin du nom de fichier.
 
et je suis entrain de voir s'il serai pas possible de suprimer des lignes commancant toujours par Accessoires ou Démarrage qui sont listé dans les logiciel et qui font plus ch*** que autre chose ^^.
 
si quelqu'un aurai une idée ...
j'ai voulu essayé de filtré, je croi me rapeller que c'est faisable de suprimer les ligne commancant par tele ou tel mot, mais je ne retrouve plus comment faire...
 
edit : jarrive pas non plus a trouver pour la date et heures enfait ... je sais pas si c'est moi aujourd'hui ou ce qui se passe mais je trouve plus rien ...
ou si je trouve des truc de VBA mais sa marche pas sans Visual Basic ...


Message édité par red24 le 30-05-2007 à 12:01:05

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

Marsh Posté le 30-05-2007 à 13:55:44    

alors là comme dit je suis vraiment coincé ...
pour avoir la date et heure j'utilise sa :
Toto = Now
sauf que ensuite j'aimerai faire sa :
monfichier = Toto(=la variable)_test.txt
 
or si je met juste monfichier = Toto, il y met bien la date et heure, mais sans l'exention
et lorsque je met monfichier = Toto.txt, sa bug
il faut que je trouve comment dire que toto c'est une variable et le reste du texte...
j'ai testé avec des ", des ', un & devant etc mais rien ne marche ...


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

Marsh Posté le 30-05-2007 à 14:20:17    

Code :
  1. Set fsi = CreateObject("Scripting.FileSystemObject" )
  2. Set fso = CreateObject ("Scripting.FileSystemObject" )
  3. dateactuelle = now()
  4. nomfichier = year(dateactuelle) & _
  5. Right("0" & Month(dateactuelle), 2) & _
  6. Right("0" & Day(dateactuelle), 2) & _
  7. Right("0" & Hour(dateactuelle), 2) & _
  8. Right("0" & Minute(dateactuelle), 2) & _
  9. Right("0" & Second(dateactuelle), 2) &_
  10. "_inventaire.txt"
  11. Set f = fso.CreateTextFile("d:\temp\" & nomfichier, True)
  12. f.WriteLine "pouet"
  13. f.Clos

Reply

Marsh Posté le 30-05-2007 à 14:21:07    

faudrait apprendre à ne pas mélanger les types de variables et à quoter les chaînes de caractères....

Reply

Marsh Posté le 30-05-2007 à 15:31:36    

merci beaucoup ^^
 
ouai j'ai compris le truc maintenant ...
sa risquai pas de fonctionner en mélangeant les type de variable ...
 
par hasard il y aura moyen de metre des séparateur entre l'anné et le mois et ainsi de suite ? (c'est gadget mais plus lisible ...)
 
encore merci


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

Marsh Posté le 30-05-2007 à 15:31:36   

Reply

Marsh Posté le 30-05-2007 à 15:59:20    

aha c'est facile de critiquer l'éducation quand on ne prend pas la peine de chercher soi-même

Reply

Sujets relatifs:

Leave a Replay

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