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 :

Installer Msi avec parametres via un vbs


Sujet :

VBScript

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 8
    Points : 3
    Points
    3
    Par défaut Installer Msi avec parametres via un vbs
    Bonjour,
    Je cherche à installer un .msi via un script vbs avec des paramètres pour cette installation.
    Jusque la pas de problème, le soucis est que ces paramètres ne sont pas tous défini et doivent être récupéré auparavant dans ce même script.

    Voici le code de l'installation:
    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
    Dim WshShell, oExec
    Dim install1, install2
     
    Set WshShell = CreateObject("WScript.Shell")
     
    install1="msiexec.exe /i "
    install2="""C:\toto.msi"""
     
    install1=install1+install2+"SERVER=VALUE1 CONFIG=VALUE2 AM_CONTROL=Full REQUIRE_AUTH_COMMN=1"
     
    'install
    Set oExec = WshShell.Exec(install1)
    Do While oExec.Status = 0
         WScript.Sleep 100
    Loop
    Les paramètres d'installation SERVER et CONFIG doivent être défini par des variables VALUE1 et VALUE2 qui auront été récupéré via une autre action auparavant (cette action fonctionne bien)

    Si quelqu'un avait une idée de comment écrire cette ligne de paramètres

  2. #2
    Membre actif
    Inscrit en
    Mai 2008
    Messages
    189
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 189
    Points : 212
    Points
    212
    Par défaut
    Eh bien, si j'ai bien compris tu as juste à stocker en variables les différents paramètres, et a les ajouter dans ta ligne de commande install1 ou install2.

    Est ce que tu peux poster l'intégralité de ton code ?

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    Oui tout à fait, mais mon problème est de savoir comment définir ces variables dans mes paramètres, j'ai essayé plusieurs choses mais sans réel succès.

    Voici le code complet:
    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
    'job id=" Recherche du serveur FCS du site">
     
                    'script language="VBScript">
     
    Dim arg, serveur_fcs, VALUE1, VALUE2
     
    on error resume next 
     
    'wscript.echo "corp  recherche alias serveur" 
     
    arg = "spot-fcs-srv"
     
    serveur_fcs = nsname(arg)
     
    VALUE1=Ucase(serveur_fcs)
     
     wscript.echo "Valeur1 : " & VALUE1
     
     VALUE2 = VALUE1 & "_MOM"
     
     wscript.echo "valeur 2 : " & VALUE2
     
    function nsname (alias)
     
    Dim Shell, comd, Pipe, ligne, regEx, OkResult
     
    Set Shell = CreateObject("WScript.Shell")
     
    okresult=False
     
    set regEx = New RegExp
     
    'extract "name:"
     
    regEx.Pattern = "([a-z]-[\w]+)." ' Set pattern.
     
    regEx.IgnoreCase = True   ' Set case insensitivity.
     
    regEx.Global = True   ' Set global applicability.
     
    comd = "ping -n 1 " & alias 
     
    comd = "nslookup " & alias
     
    Set Pipe = Shell.Exec("%comspec% /c " & comd )
     
    while not Pipe.StdOut.AtEndOfStream and not OkResult
     
                    ligne = Pipe.StdOut.ReadLine()
     
    wscript.echo ligne  
     
                    if regEx.test(ligne) then OkResult = True
     
                    Wend
     
    nsname=""
     
    if okResult then
     
                    nsname=(regex.execute(ligne))(0).submatches(0)
     
    end If 
     
    end function
     
    Dim WshShell, oExec
    Dim install1, install2
     
    Set WshShell = CreateObject("WScript.Shell")
     
    install1="msiexec.exe /i "
    install2="""C:\toto.msi"""
     
    install1=install1+install2+"SERVER=VALUE1 CONFIG=VALUE2 AM_CONTROL=Full REQUIRE_AUTH_COMMN=1"
     
    'install
    Set oExec = WshShell.Exec(install1)
    Do While oExec.Status = 0
    WScript.Sleep 100
    Loop

  4. #4
    Membre actif
    Inscrit en
    Mai 2008
    Messages
    189
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 189
    Points : 212
    Points
    212
    Par défaut
    Essaie de mettre ton code dans la balise code.

    Après mise en page et légère modification ca donne :

    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
     
    'job id=" Recherche du serveur FCS du site">
    'script language="VBScript">
    Dim arg, serveur_fcs, VALUE1, VALUE2
    on error resume next
    'wscript.echo "corp recherche alias serveur"
    arg = "spot-fcs-srv"
    serveur_fcs = nsname(arg)
    VALUE1=Ucase(serveur_fcs)
    wscript.echo "Valeur1 : " & VALUE1
    VALUE2 = VALUE1 & "_MOM"
    wscript.echo "valeur 2 : " & VALUE2
    Dim WshShell, oExec
    Dim install1, install2
    Set WshShell = CreateObject("WScript.Shell")
    install1="msiexec.exe /i"
    install2="""C:\toto.msi" 'modifié
    '___________________________________________________________________________________________
    'La ligne à surveiller
    'install1=install1+install2+"SERVER=VALUE1 CONFIG=VALUE2 AM_CONTROL=Full REQUIRE_AUTH_COMMN=1"
    install3=install1 & " " & install2 & " SERVER=" & VALUE1 & " CONFIG=" & VALUE2 & " AM_CONTROL=Full REQUIRE_AUTH_COMMN=1"""
    '___________________________________________________________________________________________
    Set oExec = WshShell.Exec(install3) 'modifié
    Do While oExec.Status = 0
    	WScript.Sleep 100
    Loop
     
    '___________________________________________________________________________________________
    function nsname (alias)
    	Dim Shell, comd, Pipe, ligne, regEx, OkResult
    	Set Shell = CreateObject("WScript.Shell")
    	okresult=False
    	set regEx = New RegExp
    	'extract "name:"
    	regEx.Pattern = "([a-z]-[\w]+)." ' Set pattern.
    	regEx.IgnoreCase = True ' Set case insensitivity.
    	regEx.Global = True ' Set global applicability.
    	comd = "ping -n 1 " & alias
    	comd = "nslookup " & alias
    	Set Pipe = Shell.Exec("%comspec% /c " & comd )
    		while not Pipe.StdOut.AtEndOfStream and not OkResult
    			ligne = Pipe.StdOut.ReadLine()
    			wscript.echo ligne
    		if regEx.test(ligne) then OkResult = True
    	Wend
    	nsname=""
    	if okResult then
    		nsname=(regex.execute(ligne))(0).submatches(0)
    	end If
    end function

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    OUi c'est ce que je venais de faire quand j'ai vu l'horreur de la mise en page

    Je suis en train de regarder tes modifications, je vais tester cela.
    Je te remercie

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    Alors desormais, lorsque l'on arrive au moment du lancement du msi on voit la fenêtre qui apparait mais se referme aussitot , il semblerait qu'il y ait un problème lors de ce lancement, j'ai fait quelques tests pour voir en modifiant certaines ligne mais rien n'y fait...

    As tu une idée d'ou cela pourrait provenir?
    (Le .msi fonctionne bien)

  7. #7
    Membre actif
    Inscrit en
    Mai 2008
    Messages
    189
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 189
    Points : 212
    Points
    212
    Par défaut
    essaie un :

    et lance le résultat à la main pour voir...

    sinon, possible qu'il y ait un problème dans ta temporisation (sleep), auquel cas on pourrait remplacer l'exec par un run avec en parametre l'attente de la fin d'install...

    Si je me souviens bien ca donne un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Set oExec = WshShell.Run install3,,true

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    Bon avec la messagebox de la ligne de commande j'ai vite compris d'ou venait le problème... Il manquait des espaces entre chaque paramètre

    Desormais la ligne de commande ressemble à quelque chose
    Voici la modification

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    install3=install1 & " " & install2 & " "& " SERVER=" & VALUE1 & " " & " CONFIG=" & VALUE2 & " " & " AM_CONTROL=Full REQUIRE_AUTH_COMMN=1"
    Merci beaucoup pour ton aide


Discussions similaires

  1. passer plusieurs parametres avec Ireport via java
    Par edyyy dans le forum iReport
    Réponses: 2
    Dernier message: 12/05/2010, 22h52
  2. Réponses: 9
    Dernier message: 24/08/2009, 16h32
  3. Pb d'installation d'un msi avec vbscript
    Par renoelectro dans le forum VBScript
    Réponses: 1
    Dernier message: 20/02/2008, 15h11
  4. Package MSI avec ancienne appli VB6 ayant déjà une install Wise
    Par EMC51 dans le forum Installation, Déploiement et Sécurité
    Réponses: 0
    Dernier message: 23/08/2007, 11h07

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