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 :

Appeler un script .vbs à partir d'un autre script .vbs


Sujet :

VBScript

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur multimédia
    Inscrit en
    Octobre 2011
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur multimédia
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 29
    Points : 33
    Points
    33
    Par défaut Appeler un script .vbs à partir d'un autre script .vbs
    Bonjour le Forum!

    J'ai déjà effectué une demande similaire il y a peu de temps, pour un problème sur la réalisation d'un batch (Qui a été pleinement satisfaite! http://www.developpez.net/.../scripts-batch), et j'aimerai vous soumettre un autre petit soucis auquel je suis confronté, mais ce coup-ci en Visual Basic Script (Car mon Batch était un peu trop casse g**le au final et on m'a conseillé de le refaire en VBS (Ce qui est en effet bien plus pratique!)

    Donc cette fois-ci, j'ai mon code qui me ressort une variable contenant un ID, et je doit ensuite mettre cette variable en paramètre dans l'appel d'un autre.vbs, comme ceci :

    (Ma variable : ChildObjectName)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set WSHShell = CreateObject("CScript.shell") 
    WSHShell.Run "CScript C:\WINDOWS\system32\iiscnfg.vbs /export /f .\ChildObjectName.xml /sp /lm/w3svc/ChildObjectName"
    Le problème c'est que ce petit bout de code me retourne :

    Erreur d'exécution Microsoft VBScript: Un composant ActiveX ne peut pas créer un objet.: 'CScript.shell'


    Une idée?

  2. #2
    Membre à l'essai
    Inscrit en
    Juillet 2010
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 13
    Points : 16
    Points
    16
    Par défaut
    Salut,

    Essai ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Set WSHShell = CreateObject("WScript.shell") 
    WSHShell.Run "CScript C:\WINDOWS\system32\iiscnfg.vbs /export /f .\ChildObjectName.xml /sp /lm/w3svc/ChildObjectName"

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Développeur multimédia
    Inscrit en
    Octobre 2011
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur multimédia
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 29
    Points : 33
    Points
    33
    Par défaut
    Oui c'est la première chose que j’avais faite, mais il me répond un truc du genre l'application n'est pas supporté par Wscript etc...

    Je te copie le message d'erreur dès que j'ai re-accès à la machine sur laquelle je fait mes Scripts

    EDIT: Ah, je n'avais pas vu la nuance, tu n'a changé que la première ligne, mais tu as laissé Cscript sur la seconde, je pensais que tu me disais de tester comme ceci :

    Set WSHShell = CreateObject("WScript.shell")
    WSHShell.Run "WScript C:\WINDOWS\system32\iiscnfg.vbs /export /f .\ChildObjectName.xml /sp /lm/w3svc/ChildObjectName"
    Et ça, ça retourne une fenêtre system "This Script does not work with WScript" puis "Would you define CScript.exe as default"

    De ta manière, ça ne me retourne pas de message d'erreur, mais une Invite de commande qui s'ouvre et se referme aussi sec, je pense que le soucis viens de ma variable, j'ai du mal la déclarer dans les paramètres la fonction ne doit pas la voire en tant que variable, qu'en pense tu?
    En tout cas merci!

    EDIT 2: En effet, lorsque je rentre mon paramètre en "dur" ça fonctionne, reste à savoir comment mette ma variable en paramètre.

    Une autre Idée?

  4. #4
    Membre à l'essai
    Inscrit en
    Juillet 2010
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 13
    Points : 16
    Points
    16
    Par défaut
    Re,

    En effet bonne analyse, essai ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WSHShell.Run("WScript C:\WINDOWS\system32\iiscnfg.vbs /export /f .\" & ChildObjectName & ".xml /sp /lm/w3svc/" & ChildObjectName")

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Développeur multimédia
    Inscrit en
    Octobre 2011
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur multimédia
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 29
    Points : 33
    Points
    33
    Par défaut
    Cool, tout marche très bien maintenant! voici mon bout de code ça aidera peut-être quelqu'un un jour!

    Il sert à exporter les configurations en .xml des sites d'un IIS, site par site.

    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
    Option Explicit
     
    Sub Main
        Dim ChildObjectName
        Dim ChildObject
        Dim IIsObject
        Dim IIsObjectPath
        Dim MachineName
        Dim ObjectPath
        Dim WSHShell
     
        ObjectPath = "W3SVC"
        MachineName = SeparateMachineName()
        IIsObjectPath = "IIS://" & MachineName
    	IIsObjectPath = IIsObjectPath & "/" & ObjectPath
        Set IIsObject = GetObject(IIsObjectPath)
        Set WSHShell = CreateObject("WScript.shell") 
     
        For Each ChildObject In IIsObject
            ChildObjectName = Mid(ChildObject.AdsPath, InStrRev(ChildObject.AdsPath, "/") + 1)
            WSHShell.Run("CScript C:\WINDOWS\system32\iiscnfg.vbs /export /f .\" & ChildObjectName & ".xml /sp /lm/w3svc/" & ChildObjectName & " /inherited /children")
        Next
     
    End Sub
     
    Function SeparateMachineName()
    	SeparateMachineName="localhost"
    End Function
    Merci beaucoup du temps passé à me répondre!

  6. #6
    Membre à l'essai
    Inscrit en
    Juillet 2010
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 13
    Points : 16
    Points
    16
    Par défaut
    Salut,

    Cool si ça fonctionne, pense à passer ton post en "Résolu".

    A+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 16/06/2011, 07h38
  2. Réponses: 1
    Dernier message: 05/10/2007, 23h15
  3. comment appeler une requete a partir d'une autre ?
    Par DjBeGi dans le forum Access
    Réponses: 2
    Dernier message: 01/06/2006, 14h39
  4. Pb d'appel d'objet a partir d'un autre objet
    Par sebastien2222 dans le forum Langage
    Réponses: 11
    Dernier message: 31/05/2006, 09h49
  5. Réponses: 7
    Dernier message: 30/09/2004, 12h19

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