[Catégorie modifiée VB6 --> VBS] Inventaire ComputerName & UserName vers Excel [Résolu]

Messages postés
5
Date d'inscription
lundi 31 octobre 2005
Dernière intervention
15 septembre 2010
- - Dernière réponse : cs_JMO
Messages postés
1855
Date d'inscription
jeudi 23 mai 2002
Dernière intervention
24 juin 2018
- 17 sept. 2010 à 23:56
Bonjour a tous ceux qui liront mon message,
voila, sur mon AD j'ai besoin de collecter les informations suivantes le "computername" et le "username" chose étant faite comme ceci: via une GPO machine, un batch lance le script vb (ci dessous) et enfin sort le resultat dans un fichier text . Compte tenu du nombre important de client. j'aimerais que les informations aille s'inscrire dans un fichier Excel ligne par ligne.
Merci de votre aide

Set WshNetwork = WScript.CreateObject("WScript.Network")
WScript.Echo "Domain = " & WshNetwork.UserDomain
WScript.Echo "Computer Name = " & WshNetwork.ComputerName
WScript.Echo "User Name = " & WshNetwork.UserName

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\" & strComputer & "\root\cimv2")

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

For Each IPConfig in IPConfigSet
If Not IsNull(IPConfig.IPAddress) Then
For i=LBound(IPConfig.IPAddress) to UBound(IPConfig.IPAddress)
WScript.Echo "Adresse IP = " & IPConfig.IPAddress(i)
Next
End If
Next



soulparty
Afficher la suite 

Votre réponse

10 réponses

Meilleure réponse
Messages postés
672
Date d'inscription
mercredi 22 janvier 2003
Dernière intervention
2 juin 2016
3
Merci
bonjour

Un script qui ferait:

Se positionner sur le dossier qui réceptionne les
Faire une boucle sur tous les fichiers ayant un nom d'un certain format
récupérer l'information
Enregistrer l'information en fin d'un fcihier CSV qui sera ensuite lu directement par Excel
FIn de boucle

Confirme tu le type de script ci-dessus nécessaire qui me semble relativement simple


Attention, Je ne sais pas si je resterai connecté les prochains jours cause départ en congé et nombreux déplacements prévus .

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 98 internautes ce mois-ci

Commenter la réponse de cs_loulou69
Messages postés
672
Date d'inscription
mercredi 22 janvier 2003
Dernière intervention
2 juin 2016
3
Merci
il manque avant ces lignes des déclarations
Il faut passer le dossier à la variable strFolder
Il faut ajouter en début l'initialiation de oFso

Set oFso = CreateObject("Scripting.FileSystemObject")

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 98 internautes ce mois-ci

Commenter la réponse de cs_loulou69
Messages postés
672
Date d'inscription
mercredi 22 janvier 2003
Dernière intervention
2 juin 2016
0
Merci
bonjour
Autant remonter un fichier par poste et ensuite fusionner les résultats
Commenter la réponse de cs_loulou69
Messages postés
5
Date d'inscription
lundi 31 octobre 2005
Dernière intervention
15 septembre 2010
0
Merci
c'est que je fais actuellement mais manuellement et ça me prends trop de temps (copie du contenu pour chaque fichier texte dans fichier excel). connaissez vous un script qui ferait ça automatiquement?

soulparty
Commenter la réponse de soulparty
Messages postés
5
Date d'inscription
lundi 31 octobre 2005
Dernière intervention
15 septembre 2010
0
Merci
Bonjour,

c'est exactement ça. un script de connexion en vb. qui collecte les informations suivantes: username, computername et @ip. Ensuite les informations vont s'ecrire dans un csv par exemple.

Merci de votre aide

soulparty
Commenter la réponse de soulparty
Messages postés
672
Date d'inscription
mercredi 22 janvier 2003
Dernière intervention
2 juin 2016
0
Merci
Donc tu as pensé au transfert des fichiers sur un espace de stockage centralisé : ftp ou autre.

un script à adapter écrit à la volée mais pas testé
De la concaténation de fichier en script

set fw = oFso.OpenTextFile("Resultat", ForWriting, True)
Set oFolder= objFso.GetFolder(sFolder)
set colFiles= oFolder.Files
For Each oFile in colFiles
if oFile.Name like "*.*" Then
Set fr = oFso.OpenTextFile(oFile.Name, ForReading)
while Not fr.AtEndOfStream
call fw.WriteLine (fr.ReadLine)
Wend
fr.Close
End if
Next
fw.Close
end if
Next
Commenter la réponse de cs_loulou69
Messages postés
5
Date d'inscription
lundi 31 octobre 2005
Dernière intervention
15 septembre 2010
0
Merci
je la colle ou la dernière ligne de code que tu a posté?
j'ai testé le 1er script (voir ci dessous) et il y a une erreur a la ligne 14. désolé mais je suis novice en dev.je creer le script dans le dossier courant (la ou sont mes fichiers textes). j'imagine que "resultat" est egale au nom de mes fichiers. puis je lance le script. c'est bien ça?

set fw = oFso.OpenTextFile("Resultat", ForWriting, True)
Set oFolder= objFso.GetFolder(sFolder)
set colFiles= oFolder.Files
For Each oFile in colFiles
if oFile.Name like "*.*" Then
Set fr = oFso.OpenTextFile(oFile.Name, ForReading)
while Not fr.AtEndOfStream
call fw.WriteLine (fr.ReadLine)
Wend
fr.Close
End if
Next
fw.Close
end if
Next


soulparty
Commenter la réponse de soulparty
Messages postés
672
Date d'inscription
mercredi 22 janvier 2003
Dernière intervention
2 juin 2016
0
Merci
Merci d'avoir validé un script qui ne fonctionnait pas
Celui là je l'ai teste sous VBA d'Excel en mode pas à pas et le résultat est bon

Const ForReading = 2
Dim fw
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set fw = oFSO.CreateTextFile("c:\Resultat.csv", True)
Set oFolder = oFSO.GetFolder("C:\MonDossier")
'Set colFiles = oFolder.Files
For Each oFile In oFolder.Files
If oFile.Name Like "*.*" Then
'Set fr = oFso.OpenTextFile(oFolder.Path & "" & oFile.Name, ForReading)
Set fr = oFSO.GetFile(oFile.Path).OpenAsTextStream(1)
If fr.AtEndOfStream = False Then
Dim s As String
s = fr.ReadAll()
Call fw.WriteLine(s)
fr.Close
End If
End If
Next
fw.Close
Commenter la réponse de cs_loulou69
Messages postés
5
Date d'inscription
lundi 31 octobre 2005
Dernière intervention
15 septembre 2010
0
Merci
Bonsoir,

j'ai testé le script il y a une erreur a la ligne 12 caractère 7.


soulparty
Commenter la réponse de soulparty
Messages postés
1855
Date d'inscription
jeudi 23 mai 2002
Dernière intervention
24 juin 2018
0
Merci
 Bonsoir,

Dim s As String
Const ForReading 1, ForWriting 2, ForAppending = 8

Il n'y a pas de fonction Like en vbs,
la fonction Instr permet de rechercher une chaine de caractère.

exemple avec la méthode OpenTextFile

   
FnExcelImportTextFiles "C:\MonDossier", "*.*", "c:\Resultat.csv"

Sub ExcelImportTextFiles(ArgPath, ArgFile, ArgFileOutput)
   Const ForReading = 1 
   Dim oFso, oFolder, oFileExcel
   Set oFso = CreateObject("Scripting.FileSystemObject")
   
   On Error Resume Next 
   Set oFileExcel = oFso.CreateTextFile(ArgFileOutput, True)
   If Err.Number <> 0 Then 
      WScript.Echo "Fichier " & ArgFileOutput & " déjà ouvert" : Err.Clear
      Else
      Set oFolder = oFso.GetFolder(ArgPath)
      For Each oFile In oFolder.Files
          If InStr(1, oFile.Name, CStr(ArgFile)) And oFile.Size <> 0 Then
             Call oFileExcel.WriteLine(oFso.OpenTextFile(oFolder.Path & "" & oFile.Name, ForReading).ReadAll)
          End If
      Next
      oFileExcel.Close 
   End If

   Set oFolder = Nothing
   Set oFso = Nothing
   Set oFileExcel = Nothing     
End Sub

 





jean-marc
Commenter la réponse de cs_JMO

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.