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 :

execution d'un script (excel) depuis serveur


Sujet :

VBScript

  1. #21
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Je pencherais pour un problème de droit. Dans le genre tu utilises un utilisateur qui n'a pas le droit de faire se genre de connexion.

  2. #22
    Membre averti
    Inscrit en
    Août 2007
    Messages
    302
    Détails du profil
    Informations personnelles :
    Âge : 57

    Informations forums :
    Inscription : Août 2007
    Messages : 302
    Points : 341
    Points
    341
    Par défaut
    Salut,

    as-tu essayé avec un moniker ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set ObjService = GetObject("WinMgmgts://" & Machine & "/root/cimv2")
    A++

  3. #23
    Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 125
    Points : 46
    Points
    46
    Par défaut
    avec l'utilisation du Moniker la connexion se fait, cependant l'execution du fichier.vbs ne ce fait pas


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set objWMIService = GetObject ("winmgmts:\\D:\repertoire\fichier.vbs" & machine.domaine & "\root\cimv2:Win32_Process")
    processus = objWMIService.Create ("WScript.exe", null, "2588")
    message d'erreur "Erreur d'exécution Microsoft VBScript: Objet requis: '' "

    quel objet attent il ?

    Merci

  4. #24
    Membre averti
    Inscrit en
    Août 2007
    Messages
    302
    Détails du profil
    Informations personnelles :
    Âge : 57

    Informations forums :
    Inscription : Août 2007
    Messages : 302
    Points : 341
    Points
    341
    Par défaut
    Salut,

    Question idiote, ce ne serait pas la config du firewall qui te bloque ?
    Je n'ai jamais eu l'occasion d'essayer, mais peut etre que WinRm peux t'aider...

    http://www.microsoft.com/technet/scr...ire/winrm.mspx

    A++

  5. #25
    Membre averti
    Inscrit en
    Août 2007
    Messages
    302
    Détails du profil
    Informations personnelles :
    Âge : 57

    Informations forums :
    Inscription : Août 2007
    Messages : 302
    Points : 341
    Points
    341
    Par défaut
    Cette syntaxe ne me dit rien à cause du fichier Vbs juste après le winmgmts et avant la déclaration de ta machine :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set objWMIService = GetObject ("winmgmts:\\D:\repertoire\fichier.vbs" & machine.domaine & "\root\cimv2:Win32_Process")
    Il ne manquerait pas un double slash ou un espace ou une virgule ou une apostrophe entre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ...\fichier.vbs" & machine.....
    A++

  6. #26
    Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 125
    Points : 46
    Points
    46
    Par défaut
    ce doit etre les securités réseau qui m'empeche la connexion du serveur vers mon poste.

    meme un net use ne passe pas

    il me reste toujours le double click sur mon fichier en local

    Merci à tous de m'avoir aidé
    A++

  7. #27
    Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 125
    Points : 46
    Points
    46
    Par défaut
    si quelqu'un rencontre un probleme similaire au mien

    Voici un lien utile http://techtasks.com/code/viewbookcode/365

  8. #28
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Et dans ton cas, cette solution (le lien sur la page) marche ?

    Comme RadPAT, j'emet de fort doute sur la validité de la ligne de code suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set objWMIService = GetObject ("winmgmts:\\D:\repertoire\fichier.vbs" & machine.domaine & "\root\cimv2:Win32_Process")
    Je crois que l'utilisation du moninoker est mauvaise. Un lien sur la construction d'un moninoker :
    http://msdn2.microsoft.com/en-us/library/Aa389292.aspx
    Una utre lien sur la sécurité des objets COM :
    http://msdn2.microsoft.com/en-us/library/ms693319.aspx

    Je te conseille de fouillé un peu se lien, tu résoudras peut être ton problème avec

  9. #29
    Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 125
    Points : 46
    Points
    46
    Par défaut
    bonjour,

    apparement le moniker fonctionne, mais je me eurt à l'execution du process.
    lors de la declaration de l'objet process.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Set objProcesses = objService.Get("Win32_Process")
    j'ai un retour d'erreur "objet requis"
    il me semble pourtant correct.
    voici la totalité de mon code.

    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
    Const CommandLine = "Cmd /c CScript fichier.Vbs"
    Const Computer    = "mon poste"
    Const UserName    = "loggin"
    Const Password    = "pwd"
     
    Dim lngRet
     
    lngRet = CreateProcess(CommandLine, Computer, UserName, Password)
     
     
     
    Function CreateProcess(CommandLine, Computer, UserName, Password)
     
       Dim objProcesses
       Dim objLocator
       Dim objService
       Dim lngRet
       Dim lngPID
       Dim MesStr
     
       Set WshNetwork = WScript.CreateObject("WScript.Network" )
       WScript.Echo "Domain = " & WshNetwork.UserDomain
       WScript.Echo "Computer Name = " & WshNetwork.ComputerName
       WScript.Echo "User Name = " & WshNetwork.UserName
     
     
    Set objWMIService = GetObject("Winmgmts:{impersonationLevel=delegate," _
        & "authority=kerberos:MON DOMAINE\POSTE}" _
        & "!//POSTE/root/default:__cimomidentification=@")
     
     
     
       Set objProcesses = objService.Get("Win32_Process")
     
     
      lngRet = objProcesses.Create(CommandLine, Null, Null, 2588)
     
     
       Set objProcesses = Nothing
       Set objService   = Nothing
       Set objLocator   = Nothing
     
       CreateProcess = lngPID
    End Function
    merci pour votre aide, je continu à chercher

  10. #30
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator")
    Set objWMIService = objSWbemLocator.ConnectServer(PID, "root\CIMV2") 'PID est le process ID d'un process
    Set colProcessList = objWMIService.ExecQuery("SELECT * FROM Win32_Process WHERE Name = 'notepad.exe'" ' j'ai mis notepad, mais bon cela peut être ce que tu veux
    For Each objet in colProcessList
         Objet.Terminate()
    Next
    J'utilisais cela me récup la liste des process sur un pc distant et tué le process que je voulais. Si cela peut t'aider ....

    As tu eu le temps de regarder les liens que je t'ai passé.

    Ceci pour lancer un process sur un pc distant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Set objWMIService = GetObject("winmgmts:\\" & Adresse_IP & "\root\cimv2:Win32_Process") 'Adresse_IP est une variable qui contient une adresse IP ;)
    objWMIService.Create(path_executable & "\Mon prog à lancer", null, PID) ' Si je me souviens bien, le Process ID sera stocké dans PID
    Set objWMIService = Nothing
    Je récupère la liste des processus java sur une machine avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator")
    Set objWMIService = objSWbemLocator.ConnectServer(Adresse_IP, "root\CIMV2")
    Set colProcessList = objWMIService.ExecQuery("SELECT * FROM Win32_Process WHERE Name = 'java.exe'")

  11. #31
    Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 125
    Points : 46
    Points
    46
    Par défaut
    Oui j'ai regardé c'est très bien expliqué et avec pas mal d'options différentes et de cas différents merci.
    Je l'ai même placé en favoris.

    Merci

  12. #32
    Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 125
    Points : 46
    Points
    46
    Par défaut
    bonjour

    merci car j'ai du mieux dans cette avanture.
    Cependant à l'execution du script(d'execution à distance du second), le Process "Cscript" se cré furtivement une seconde environ dans le gestionnaire de tache.
    mais il n'execute pas mon fichier.VBS.

    d'autre par la variable PID est vide à l'affichage.

    code

    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
     
      Const Adresse_IP = "mon ip"
      Const path_executable = "Cmd /c WinScript.exe fichier.Vbs"
     
      Dim PID
      Dim Processus
     
       Set WshNetwork = WScript.CreateObject("WScript.Network")
       WScript.Echo "Domain = " & WshNetwork.UserDomain
       WScript.Echo "Computer Name = " & WshNetwork.ComputerName
       WScript.Echo "User Name = " & WshNetwork.UserName
     
    Set objWMIService = GetObject("winmgmts:\\" & Adresse_IP & "\root\cimv2:Win32_Process") 'Adresse_IP est une variable qui contient une adresse IP ;)
    Processus = objWMIService.Create(path_executable & "\WinScript.exe", null, PID)
    Set objWMIService = Nothing
     
     
     
     
    Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator")
    Set objWMIService = objSWbemLocator.ConnectServer(Adresse_IP, "root\CIMV2")
    Set colProcessList = objWMIService.ExecQuery("SELECT * FROM Win32_Process WHERE Name = 'cscript.exe'")
    WScript.Echo "le process"&PID
    voici mon resultat avec un retour d'erreur à 0

    Domain = ok
    Computer Name = ok
    User Name = ok
    le process
    Exit code: 0 , 0000h

    Merci de votre aide

  13. #33
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Juste comme ça essayes avec notepad

  14. #34
    Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 125
    Points : 46
    Points
    46
    Par défaut
    il ouvre bien notepad avec un message "le chemein d'acces specifie est introuvable"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Const path_executable = "notepad.exe c:\file.txt"

  15. #35
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Bon j'essaye ton script.
    Mais une chose connais tu la concaténation de chaine de caractère ?

    Je te laisse devener ce que tu obtiens avec c'est deux lignes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Const path_executable = "Cmd /c WinScript.exe fichier.Vbs"
    .....
    Processus = objWMIService.Create(path_executable & "\WinScript.exe", null, PID)

  16. #36
    Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 125
    Points : 46
    Points
    46
    Par défaut
    la concaténation est représenté par le signe "&"

    donc les deux lignes que tu viens de me présenter me donneront
    Cmd /c WinScript.exe fichier.Vbs\winscript.exe en résultat donc un bug.

    Je pense devoir obtenir
    Cmd /c WinScript.exe\fichier.Vbs

    Donc

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     Const path_executable = "Cmd /c winscript.exe"
    Processus = objWMIService.Create(path_executable & "\fichier.Vbs", null, PID)
    J’ai juste ou je me plante ?

  17. #37
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    tu es sur que tu dois faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WinScript.exe\fichier.Vbs
    et non :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WinScript.exe fichier.Vbs
    N'oublie pas de mettre le chemin complet du vbs c plus sur.

    Tu peut directement tester dans une console dos pour voir ce qui marche et ce qui marche pas

  18. #38
    Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 125
    Points : 46
    Points
    46
    Par défaut
    je viens de faire tout une batterie de test

    l'interpreteur de commandes apparait bien, mais la commande, ne se lance pas

    cmd = "c:\w_xppro\system32>"

    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
    Const Adresse_IP = "mon_ip"
      Const path_executable = "Cmd WScript.exe"
      Dim PID
      Dim Processus
     
       Set WshNetwork = WScript.CreateObject("WScript.Network")
       WScript.Echo "Domain = " & WshNetwork.UserDomain
       WScript.Echo "Computer Name = " & WshNetwork.ComputerName
       WScript.Echo "User Name = " & WshNetwork.UserName
     
     
    Set objWMIService = GetObject("winmgmts:\\" & Adresse_IP & "\root\cimv2:Win32_Process") 'Adresse_IP est une variable qui contient une adresse IP ;)
    Processus = objWMIService.Create(path_executable & "c:\fichier.Vbs", null, PID)
    Set objWMIService = Nothing
    WScript.Echo "le process"&PID
     
     
     
    Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator")
    Set objWMIService = objSWbemLocator.ConnectServer(Adresse_IP, "root\CIMV2")
    Set colProcessList = objWMIService.ExecQuery("SELECT * FROM Win32_Process WHERE Name = 'Wscript.exe'")
    WScript.Echo "le process"&PID
    cependant à la main dans mon cmd il s'execute bien, je seche

  19. #39
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Const path_executable = "Cmd WScript.exe"
    j'aurais plutot fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Const path_executable = "Cmd /c WScript.exe"
    ou :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Const path_executable = "Cmd /k WScript.exe"
    pour des explications tape dans la console dos :

  20. #40
    Membre averti
    Inscrit en
    Août 2007
    Messages
    302
    Détails du profil
    Informations personnelles :
    Âge : 57

    Informations forums :
    Inscription : Août 2007
    Messages : 302
    Points : 341
    Points
    341
    Par défaut
    c'est pas ce que j'ai dit d'essayer il y a un certain temps ???


    Citation Envoyé par RadPAT Voir le message
    Tu as mis quoi dans ta variable szCommande ?

    As tu fait ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    szCommande  = "Cmd /c CScript nom_du_Vbs.Vbs"
    Attention par rapport à la réponse de CED600 on est bien sur du CScript (et pas WScript)...

    A++

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 3 PremièrePremière 123 DernièreDernière

Discussions similaires

  1. Execution d'un script .sh sur serveur.
    Par Nemesium dans le forum Langage
    Réponses: 3
    Dernier message: 17/04/2014, 08h25
  2. execution d'un script bash depuis PHP
    Par eki33 dans le forum Langage
    Réponses: 2
    Dernier message: 18/06/2012, 13h40
  3. [MySQL] temps d'execution d'un script sur un serveur web
    Par cerco1 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 29/10/2011, 18h30
  4. Execution d'un script VBA depuis un lien HTML
    Par Mattius007 dans le forum VBA Outlook
    Réponses: 2
    Dernier message: 07/02/2008, 16h58
  5. Execution d'un script shell depuis un code C
    Par aproust dans le forum C
    Réponses: 6
    Dernier message: 12/05/2006, 13h53

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