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 :

VBS pour desinstaller une application windows installer


Sujet :

VBScript

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mai 2015
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Belgique

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Mai 2015
    Messages : 1
    Points : 1
    Points
    1
    Par défaut VBS pour desinstaller une application windows installer
    Bonjour a tous,

    Mon nom est James et j'aurai besoin d'aide pour finaliser un script VB, c'est pour supprimer/désinstaller un soft dans Windows installer avec l'aide de la base de registre.

    Avec l'aide de google j'ai trouvé se script et j'ai essayé de le finaliser mais ça ne marche pas. Est-ce que quelqu’un pourrez m'aider?

    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
     
    Option Explicit 'all variables must be defined
     
    Dim oReg, oShell, oFSO 
    Dim UninstallString, ProductCode
    Dim strComputer, colItems, objWMIService, objItem
    Dim strKeyPath, subkey, arrSubKeys
    strComputer = "." 
     
    '********************************
    'Enter Product Code Of The Application Here That You Want To Uninstall within the Bracket 
    ProductCode = "{88C972E7-D7FC-40F3-9FE5-180957F37B45}"
     
    '********************************
     
    ' Get scripting objects needed throughout script.
    Set oShell = CreateObject("WScript.Shell")
     
    '**************************
    UninstallString = "MsiExec.exe /X{88C972E7-D7FC-40F3-9FE5-180957F37B45} /qn" & " /norestart"
     
    Const HKEY_LOCAL_MACHINE = &H80000002
     
    Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" &_ 
    strComputer & "\root\default:StdRegProv")
     
    strKeyPath = "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"
    oReg.EnumKey HKEY_LOCAL_MACHINE, strKeyPath, arrSubKeys
     
    For Each subkey In arrSubKeys 
     
     IF subkey = ProductCode Then 
     oShell.Run UninstallString, 1, True
     End If
     
    Next
     
    Set oShell = Nothing
    Set oReg = Nothing
    '************* End Code ************
    Nom : sonic.jpg
Affichages : 941
Taille : 112,0 Ko

    Si qq'un pourrais m'aider je serais éternellement reconnaissant. :-)

  2. #2
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 417
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 417
    Points : 5 816
    Points
    5 816
    Par défaut
    et Bienvenu sur DVP

    J'ai modifié un peu ton script et mis en commentaire quelques données (qui ne figurent pas dans mon registre) que j'ai dû remplacer par quelque chose qui me permet de tester le résultat et surtout la ligne exécutant la désinstallation(car je ne veux pas désinstaller quelque chose dont j'ai besoin).

    Il ne faut pas perdre de vue qu'on doit énumérer toutes les valeurs(selon un type donné) de chaque sous-clé(subKey dans le code) notamment celle qui nous concerne puis rechercher la donnée de la valeur correspondante.
    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
     
    Option Explicit 'all variables must be defined
    Const REG_EXPAND_SZ = 2 
     
    Dim oReg, oShell, sValue, sValueNames
    Dim UninstallString, ProductCode, Valeur
    Dim strComputer, OK
    Dim strKeyPath, subkey, arrSubKeys
    strComputer = "." 
    OK = False
    '********************************
    'Enter Product Code Of The Application Here That You Want To Uninstall within the Bracket 
    ProductCode = "{C6F5B6CF-609C-428E-876F-CA83176C021B}" '"{88C972E7-D7FC-40F3-9FE5-180957F37B45}"
     
    '********************************
     
    ' Get scripting objects needed throughout script.
    Set oShell = CreateObject("WScript.Shell")
     
    '**************************
    UninstallString = "MsiExec.exe /X{C6F5B6CF-609C-428E-876F-CA83176C021B}" '"MsiExec.exe /X{88C972E7-D7FC-40F3-9FE5-180957F37B45} /qn" & " /norestart"
     
    Const HKLM = &H80000002
     
    Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & _ 
                        strComputer & "\root\default:StdRegProv")
     
    strKeyPath = "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"
    oReg.EnumKey HKLM, strKeyPath, arrSubKeys
     
    For Each subkey In arrSubKeys 
      ' Enumération des valeurs de type REG_EXPAND_SZ
      oReg.EnumValues HKLM, strKeyPath & "\" & subkey, sValueNames, REG_EXPAND_SZ
     
      If subkey = "{C6F5B6CF-609C-428E-876F-CA83176C021B}" Then ' Condition sur la sous-clé
          For Each sValue In sValueNames
               ' Recherche de la donnée de la valeur "UninstallString"
                oReg.GetExpandedStringValue HKLM , strKeyPath & "\" & subkey , "UninstallString", Valeur
                 OK = LCase(Valeur) = LCase(UninstallString) ' Comparaison 
                If OK Then Exit For ' Si trouvé, on arrête la recherche
          Next
      End If
     
    Next 
     'Ligne suivante mise en commentaire pour ne pas désinstaller
     'oShell.Run UninstallString, 1, True
     
     If OK Then
       MsgBox "Trouvé " & vbcrlf & vbcrlf & valeur & "  =  " & UninstallString
     Else 
       MsgBox "Pas trouvé"
     End If
     
    Set oShell = Nothing
    Set oReg = Nothing

Discussions similaires

  1. Quelle librairie pour faire une application windows svp?
    Par BelgarionX dans le forum Langage
    Réponses: 1
    Dernier message: 01/08/2011, 13h39
  2. Rendre une application windows installable
    Par tsdia2 dans le forum VB.NET
    Réponses: 3
    Dernier message: 13/02/2008, 19h25
  3. Créer un service Windows (pour exécuter une application)
    Par drinkmilk dans le forum Windows Serveur
    Réponses: 4
    Dernier message: 16/08/2007, 11h24
  4. Quel langage pour faire une application Windows et web ?
    Par tipiweb dans le forum Langages de programmation
    Réponses: 7
    Dernier message: 30/07/2007, 13h10
  5. Réponses: 2
    Dernier message: 27/03/2007, 07h42

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