IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBScript Discussion :

Inventorier les fichiers NSF sur le disque et remonter la taille de chaque fichier


Sujet :

VBScript

  1. #1
    Futur Membre du Club
    Inscrit en
    Janvier 2009
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 14
    Points : 7
    Points
    7
    Par défaut Inventorier les fichiers NSF sur le disque et remonter la taille de chaque fichier
    Bonjour à tous,

    Pour commencer, je tiens à dire que je suis un newbie en VBS. Je n'ai
    pas vraiment l'esprit d'un développeur.

    Pour un grand projet, je dois identifier les archives Lotus Notes
    (NSF) sur mes postes de travail (près de 6000).
    Pour cela, j'ai un script qui recherche les fichiers NSF et renvoi
    dans un fichier txt. Il fonctionne.
    Toutefois, je veux que le script me remonte la taille de chaque
    fichier.
    J'ai essayé avec des fonctions du type "objFile.FileSize" Que je
    n'arrive pas à intégrer correctement.

    Si vous avez une idée, voici mon script
    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
    Option Explicit
    Call ShowFilesLotus
     
    Private Sub ShowFilesLotus()
    Const HARD_DISK = 3
    Dim objWMIService, colDisks, colFiles
    Dim objDico, objTabExt, objDisk, objFile
    Dim wshShell
    Dim strComputer, i
    Dim cles, strList
    Dim ObjRapport, ObjFilerapport
    Const ForWriting = 2, ForAppending = 8
     
    strComputer = "."
    objTabExt = "nsf"
     
    Set wshShell = Wscript.CreateObject ("Wscript.Shell")
     
    Set ObjRapport = CreateObject("Scripting.FileSystemObject" )
    Set ObjFileRapport = ObjRapport.OpenTextFile("c:\Lotus.txt",
    ForAppending, True)
     
    Set objDico = CreateObject("Scripting.Dictionary")
    objDico.CompareMode = VBBinaryCompare
     
    Set objWMIService = GetObject("winmgmts:" _
     & "{impersonationLevel=impersonate}!\\" _
     & strComputer & "\root\cimv2")
     
    Set colDisks = objWMIService.ExecQuery _
     ("Select * from Win32_LogicalDisk Where DriveType = " & HARD_DISK &
    "")
     
    For Each objDisk in colDisks
     Set colFiles = objWMIService.ExecQuery _
     ("Select * from CIM_DataFile where Drive = '" &_
     objDisk.Name & "' And Extension = '" & objTabExt &"'")
     For Each objFile in colFiles
     '
     '
     If Mid(LCase(objFile.Path),2, 13) <> "program files" And _
     Mid(LCase(objFile.Path),2, 7) <> "windows" Then
     objDico.Add objFile.Name ,""
     End if
     Next
    Next
    Set colFiles =  Nothing
    Set colDisks =  Nothing
    Set objWMIService = Nothing
     
    cles = objDico.Keys
    For i = 0 To objDico.Count-1
     ObjFileRapport.Writeline wshShell.ExpandEnvironmentStrings
    ("%COMPUTERNAME%") _
     &vbTab& cles(i) &vbCr
    Next
    ObjFileRapport.WriteBlankLines(2)
    ObjFileRapport.close
    Set objDico = Nothing
    Set wshShell = Nothing
    End Sub
    Merci !

    Je précise que le script sera exécuté à distance à l'aide de
    LANDesk...

    NB : En plus de la taille, j'aimerais rajouter le nom de la machine,
    ainsi que le nom de l'utilisateur réel Lotus (j'ai un autre VBS pour
    aller piocher dans le notes.ini. Avec un peu de chance j'arriverais à
    imbriquer les deux !!)

    Kreg

  2. #2
    Expert éminent
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 840
    Points : 9 225
    Points
    9 225
    Par défaut Recherche des fichiers par leurs extensions

    il faut utiliser et non Voila inspire-toi de ce script peut-être il va t'aider un peu dans ton projet.
    C'est un Vbscript pour rechercher des fichiers par leurs extensions et générer le Résultat de recherche dans un Tableau en HTML en citant les informations sur ces fichiers tels que leurs Chemins ,la date de création,la date de modification,la Taille et leurs attributs et affichage des miniatures de diffrentes types d'images lors de la recherche ; Càd si la Recherche comporte des fichiers images elles seront affichées en miniatures.
    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
    94
    95
    96
    97
    98
    'SearchFileByExt.vbs © Hackoo Le 05/06/2011 : C'est un Vbscript pour rechercher des fichiers par leurs extensions
    'et générer le Résultat de recherche dans un Tableau en HTML en citant les informations
    'sur ces fichiers tels que leurs Chemins ,la date de création,la date de modification,la Taille et leurs attributs 
    'et affichage des miniatures de diffrentes types d'images lors de la recherche
    'Càd si la Recherche comporte des fichiers images elles seront affichées en miniatures
    Dim fso, OutFile, sDrv, sFName, sReport, sFile, sTitle ,strHTML
    sTitle = "Recherche des Fichiers Par leurs Extensions © Hackoo"
    Set fso = CreateObject("Scripting.FileSystemObject")
    OutFile = "Recherche.html"
    If fso.FileExists(OutFile) Then fso.DeleteFile(OutFile)
     
    Set sReport = fso.OpenTextFile(OutFile, 8, True)
    sDrv = InputBox("Entrez la lettre du lecteur à la recherche (lettre seulement)" & vbcrlf&_
    "ou bien " & vbcrlf & "(Saisissez * pour rechercher dans toutes les lettres de lecteur local)", sTitle)
    If sDrv = "" Then WScript.Quit
     
    sFName = InputBox ("Entrez l'extension du fichier à rechercher exemple JPG ou bien GIF ou bien DOC ou bien XLS etc ....", sTitle)
    If sFName = "" Then WScript.Quit
     
    strHTML="<html><style type='text/css'>"&_
    "a:link {color: #F19105;}"&_
    "a:visited {color: #F19105;}"&_
    "a:active {color: #F19105;}"&_
    "a:hover {color: #FF9900;background-color: rgb(255, 255, 255);}"&_
    "</style>"
     
    strHTML=strHTML &"<center><h2><B> <font color=Red>[COUNT] </font>Fichiers Trouvés dont l'extension est <font color=red>"""& sFName &""" </font> sur le lecteur <font color=red>"& UCase(sDrv) & ":</B></font></h2></center>"&_
    "<center><body text=white bgcolor=#1234568><table border='3' cellpadding='1' style='border-collapse: collapse; font size:11pt' bordercolor='#CCCCCC' width='100%' id='Table1'></center>" & _
    "<td><center><strong>Chemin</strong></center></td>"&_
    "<td><center><strong>Date de Création</strong></center></td>"& _
    "<td><center><strong>Date de Modification</strong></center></td>"&_
    "<td><center><strong>Taille</strong></center></td>"&_
    "<td><center><strong>Attributs</strong></center></td>"
     
    If sDrv = "*" Then
    Dim  d,dc,racine
    	Set fso = CreateObject("Scripting.FileSystemObject")
    	Set dc = fso.Drives
    	For Each d in dc
    		racine = d.Driveletter & ":"
    		If d.IsReady Then
    		GetResults racine , sFName	
    		End If
    	Next
    Else
    GetResults sDrv & ":", sFName
    End If
    sReport.WriteLine strHTML &"</table></body></html>"
    Wscript.CreateObject("WScript.Shell").Run OutFile
     
    Sub GetResults(drv, fname)  
    Dim sWQL, oFile, sAttrib,sFilePath,size
    ext = Array("png","jpg","jpeg","gif","bmp","psd","tif")
    sWQL = "select * from cim_datafile where Drive='" & _
    drv & "' AND Extension = '" & fname & "'" 
    Results = 0
    For Each oFile In GetObject("winmgmts:").execquery(sWQL)
    Results = Results + 1
    sFile = oFile.Name
    Set f = fso.GetFile(sFile)
     
    SizeKo = Round(FormatNumber(f.Size)/(1024),0) & " Ko" 'Taille en Ko 
    SizeMo = Round(FormatNumber(f.Size)/(1048576),0) & " Mo" 'Taille en Mo 
    SizeGo = Round(FormatNumber(f.Size)/(1073741824),0) & " Go" 'Taille en Go 
     
    If f.size < 1024 Then 
    Size = f.size & " Octets"
    elseif f.size < 1048576 Then 
    Size = SizeKo
    elseif f.size < 1073741824 Then 
    Size = SizeMo
    else
    Size = SizeGo
    end if
    sFilePath = f.Path
    If oFile.Archive Then sAttrib = "Archive "
    If oFile.Compressed Then sAttrib = sAttrib & " Compressé "
    If oFile.Encrypted Then sAttrib = sAttrib & " Crypté "
    If oFile.Hidden Then sAttrib = sAttrib & " Caché "
    If oFile.System Then sAttrib = sAttrib & " Système "
    If oFile.Readable Then sAttrib = sAttrib & " Lecture "
    If oFile.Writeable Then sAttrib = sAttrib & " Ecriture "
     
    If UCase(ext(0)) = UCase(fso.GetExtensionName(oFile.Name)) or UCase(ext(1)) = UCase(fso.GetExtensionName(oFile.Name))or UCase(ext(2)) = UCase(fso.GetExtensionName(oFile.Name)) or UCase(ext(3)) = UCase(fso.GetExtensionName(oFile.Name)) or UCase(ext(4)) = UCase(fso.GetExtensionName(oFile.Name)) or UCase(ext(5)) = UCase(fso.GetExtensionName(oFile.Name)) or UCase(ext(6)) = UCase(fso.GetExtensionName(oFile.Name)) Then
     
    ImgFileName = oFile.Name
    strHTML=strHTML & "<tr><td><center><a target=_Blank href='"& sFilePath &"'>"&ImgFileName&"<br><img src='"& sFilePath &"' border=1 height=50 width=80></center></td><td><center>" & f.DateCreated & "</center></td>" & _
    "<td><center>" & f.DateLastModified & "</center></td><td><center>"& Size & "</center></td>"&_
    "<td><center>" & sAttrib & "</center></td></tr>"
    else
    strHTML=strHTML & "<tr><td><a target=_Blank href='" & sFilePath & "'>" & _
    sFilePath & "</a></td><td><center>" & f.DateCreated & "</center></td>" & _
    "<td><center>" & f.DateLastModified & "</center></td><td><center>"& Size & "</center></td>"&_
    "<td><center>" & sAttrib & "</center></td></tr>"
    end if
    Next
    strHTML = Replace(strHTML, "[COUNT]", Results)
    End Sub

  3. #3
    Futur Membre du Club
    Inscrit en
    Janvier 2009
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    C'est super !! Un grand merci, bien pratique ton script
    Je devrais pouvoir l'adapter pour mon usage.
    Merci !

    On conseil / méthode pour que mes clients enregistre les logs sur un chemin réseau ?
    J'entends par la, via un compte system... Ca passera ?
    Vais tester rapidement, mais on sait jamais, je suis preneur de bonnes pratiques !!

    Merci
    Kreg

Discussions similaires

  1. Code source pour rechercher des fichiers Mp3 sur le disque
    Par specta61 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 28/02/2007, 20h49
  2. Réponses: 3
    Dernier message: 05/12/2005, 15h17
  3. Trouver les secteurs endommagés sur un disque dur.
    Par Michaël dans le forum Composants
    Réponses: 2
    Dernier message: 05/11/2005, 08h44
  4. Fichiers .nsf sur site web, c'est quoi ?
    Par vanmouniren dans le forum Général Conception Web
    Réponses: 1
    Dernier message: 16/10/2005, 11h04
  5. Réponses: 29
    Dernier message: 28/07/2005, 14h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo