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 :

Aide à la compréhension d'un petit script


Sujet :

VBScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Octobre 2013
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Octobre 2013
    Messages : 108
    Par défaut Aide à la compréhension d'un petit script
    Bonjour,

    Je galère pour comprendre le script ci dessous. Je n'avais jamais fait de VBA jusqu'à présent !

    Mes problèmes commence à la ligne 4.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Option Explicit
    Dim fso,strFilename,strSearch,strReplace,objFile,oldContent,newContent
    Set fso=CreateObject("Scripting.FileSystemObject")
    set objFile=fso.OpenTextFile(WScript.Arguments.Item(0),1)
    newContent=replace(objFile.ReadAll,WScript.Arguments.Item(1),WScript.Arguments.Item(2),1,-1,0)
    set objFile=fso.OpenTextFile(WScript.Arguments.Item(0),2)
    objFile.Write newContent
    objFile.Close
    Puis il s’exécute via les commandes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    cscript //Nologo "%tmp%\FindReplace.vbs" "%tmp%\uninstaller_temp.txt" ^& \and\
    cscript //Nologo "%tmp%\FindReplace.vbs" "%tmp%\uninstaller_temp.txt" ^= \equal\
    Ce que j'ai pu comprendre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    ' On indique à Visual Basic que toutes les variables utilisées à l'intérieur de ce module devront être préalablement déclarées.
    Option Explicit
    ' Déclaration des variables.
    Dim fso,strFilename,strSearch,strReplace,objFile,oldContent,newContent
    ' Crée un lien objet COM vers FileSystemObject qui permet de manipuler le système de fichiers de Windows et est défini dans la variable fso
    Set fso=CreateObject("Scripting.FileSystemObject") 
    ' Via l'objet FileSystemObject on ouvre un fichier texte . WScript.Arguments.Item(0) retourne le premier paramètre de la ligne de commande soit  "%tmp%\uninstaller_temp.txt", le 1 à la fin représente l'iomode soit "ouverture en lecture" et est défini dans objFile
    ' Soit j'ouvre le fichier "%tmp%\uninstaller_temp.txt" en lecture
    set objFile=fso.OpenTextFile(WScript.Arguments.Item(0),1)
    'Recherche une sous-chaîne dans une chaîne de caractères dans tout "%tmp%\uninstaller_temp.txt", en utilisant le second argument de la commande soit "^&" et la remplace par le 3eme argument /and/, commence au premiere caractere, pas de limite de substitution, la comparaison est binaire.
    newContent=replace(objFile.ReadAll,WScript.Arguments.Item(1),WScript.Arguments.Item(2),1,-1,0)
    Si quelqu’un peut me donner une explication rapide.

    Merci.

  2. #2
    Membre confirmé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Octobre 2013
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Octobre 2013
    Messages : 108
    Par défaut
    J'ai quand même fini par comprendre.
    En fait le script remplace les caractères & par /and/ et les caractères = par \equal\ dans le fichier txt.

    Par contre je ne trouve pas à quoi correspond le symbole ^ vant le & et le =.

    Si quelqu'un sait.

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

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 844
    Par défaut
    Citation Envoyé par Ti-EN Voir le message
    J'ai quand même fini par comprendre.
    En fait le script remplace les caractères & par /and/ et les caractères = par \equal\ dans le fichier txt.
    Par contre je ne trouve pas à quoi correspond le symbole ^ vant le & et le =.
    Si quelqu'un sait.

    Pour le caractère " ^ " , je crois que c'est caractère d'échappement utilisé pour la ligne de commande et pour le reste vous avez bien raison c'est tout simplement un script de recherche et de remplacement & par /and/ et les caractères = par \equal\ dans un fichier txt.

  4. #4
    Membre confirmé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Octobre 2013
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Octobre 2013
    Messages : 108
    Par défaut
    Ok merci.
    Pas mal ta petite application érificateur de Processus + VirusTotal Uploader . Ça me sera bien utile !

    Pour infos le code sur lequel je travail est celui de l'application CrapKiller qui supprime automatiquement les applications "merdi..." à partir d'une liste.

  5. #5
    Expert confirmé
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 844
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 844
    Par défaut
    Citation Envoyé par Ti-EN Voir le message
    Ok merci.
    Pas mal ta petite application vérificateur de Processus + VirusTotal Uploader . Ça me sera bien utile !
    Pour infos le code sur lequel je travail est celui de l'application CrapKiller qui supprime automatiquement les applications "merdi..." à partir d'une liste.

    CrapKiller est en vbscript ? ou autre langage ?

    EDIT : Je crois je l'ai trouvé c'est un script batch qui génère quelques vbscript pour les utiliser après lors d'une désinfection


  6. #6
    Expert confirmé
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 844
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 844
    Par défaut [VBS] Wscript_Killer_Selector.vbs

    Si vous êtes intéressé sur les "Killers", Je vous présente un "Killer Sélectif de Wscript.exe"

    [VBS] Wscript_Killer_Selector.vbs
    <==> "pondu" dans cette discussion

    C'est un nouveau script très intéressant, car tout simplement il peut sélectionner et choisir quel processus Wscript.exe doit-être arrêter tout en mentionnant le chemin et le nom du Vbscript déjà lancé. (Chose que vous ne pouvez pas le faire avec le simple gestionnaire de tâches de windows)
    Il peut être intéressant dans le cas ou vous avez plusieurs scripts qui tournent, alors vous pouvez choisir lequel vous allez arrêter et aussi s'il y a processus douteux par exemple un Virus de type vbscript, vous pouvez facilement le localiser (son chemin et son nom) et l'arrêter
    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
    Option Explicit
    Dim Titre,Copyright,fso,ws,NomFichierLog,temp,PathNomFichierLog,OutPut,Count,strComputer
    Copyright = "[© Hackoo © 2014 ]"
    Titre = " Processus "& DblQuote("Wscript.exe") &" en cours d'exécution "
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set ws = CreateObject( "Wscript.Shell" )
    NomFichierLog="Processus WScript.txt"
    temp = ws.ExpandEnvironmentStrings("%temp%")
    PathNomFichierLog = temp & "\" & NomFichierLog
    Set OutPut = fso.CreateTextFile(temp & "\" & NomFichierLog,1)
    Count = 0 
    strComputer = "."
    Call Find("wscript.exe")
    Call Explorer(PathNomFichierLog)
    '***************************************************************************************************
    Function Explorer(File)
        Dim ws
        Set ws = CreateObject("wscript.shell")
        ws.run "Explorer "& File & "\",1,True
    end Function
    '***************************************************************************************************
    Sub Find(MyProcess)
        Dim colItems,objItem,Processus,Question
        Set colItems = GetObject("winmgmts:").ExecQuery("Select * from Win32_Process " _
        & "Where Name like '%"& MyProcess &"%' AND NOT commandline like '%" & wsh.scriptname & "%'",,48)
        For Each objItem in colItems
            Count= Count + 1
            Processus = Mid(objItem.CommandLine,InStr(objItem.CommandLine,""" """) + 2) 'Extraction du chemin du script en ligne de commande
            Processus = Replace(Processus,chr(34),"")
            Question = MsgBox ("Voulez-vous arrêter ce script : "& DblQuote(Processus) &" ?" ,VBYesNO+VbQuestion,Titre+Copyright)
            If Question = VbYes then
                objItem.Terminate(0)'Tuer ce processus
                OutPut.WriteLine DblQuote(Processus)
            else
                Count= Count - 1 'décrementer le compteur de -1
            End if
        Next
    OutPut.WriteLine String(100,"*")
    OutPut.WriteLine count & Titre & "ont été arrêtés"
    End Sub
    '**********************************************************************************************
    Function DblQuote(Str)
        DblQuote = Chr(34) & Str & Chr(34)
    End Function
    '**********************************************************************************************

Discussions similaires

  1. Aide pour petit script de download
    Par csseur22 dans le forum Réseau/Web
    Réponses: 7
    Dernier message: 28/12/2008, 16h06
  2. Aide pour réaliser un petit script vbs
    Par gogéta91 dans le forum VBScript
    Réponses: 1
    Dernier message: 04/08/2008, 13h33
  3. Petite aide et compréhension à mon problème
    Par swirtel dans le forum Boost
    Réponses: 5
    Dernier message: 10/09/2007, 14h24
  4. [C] Aide petit script c pour linux
    Par Jopzeut dans le forum Linux
    Réponses: 3
    Dernier message: 04/03/2007, 11h42
  5. Aide pour un petit script
    Par perldebutant dans le forum Langage
    Réponses: 4
    Dernier message: 28/03/2006, 21h27

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