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