VBS sur poste distant

Boulette67 Messages postés 56 Statut Membre -  
selrak Messages postés 16 Statut Membre -
Bonjour à toutes et à tous,

A lire tous les post portant sur sujet, je suis rassuré je ne suis pas le seul à rencontrer ce problème.
Je suis administrateur du domain (donc niveau droit c'est ok)
Sur les postes clients (en XP), j'ai un script vbs qui fait certaines modifications de la base de registre, ainsi que la sauvegarde de certains fichiers. Ce script fonctionne parfaitement en local. Le souci c'est de l'exécuter à distance.

J'ai trouvé un morceau de code :
Set objWMIService = GetObject("winmgmts:\\" & NomOrdi & "\root\cimv2:Win32_Process")
Error = objWMIService.Create(CheminScript, null, null, intProcessID)
If Error = 0 Then
	Wscript.Echo "PID : " & intProcessID & "."
Else
	Wscript.Echo "Erreur : " & Error & "."
End If


NomOrdi : renseigné par un fichier texte qui contient les noms d'ordinateurs
CheminScript me pose déjà un soucis. Est ce que je dois mettre :
"\\" & NomOrdi & "\C$\Windows\monscript.vbs" ou
"C:\Windows\monscript.vbs"
Dans ma logique ce serai plus la 2ème vu qu'on tape directe sur le poste distant.

Mon 2ème souci est que ce l'un ou l'autre des chemins j'obtiens l'erreur 8
Configuration: Windows XP Internet Explorer 7.0

4 réponses

  1. Boulette67 Messages postés 56 Statut Membre 6
     
    Me revoilou :)

    Je viens de tomber sur un truc en me disant "Tiens avec un peu de chance ce qui me cause l'erreur ca vient de la" :
    Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & NomOrdi & "\root\cimv2:Win32_Process")
    Error = objWMIService.Create(CheminScript, null, null, intProcessID)
    If Error = 0 Then
    	Wscript.Echo "PID : " & intProcessID & "."
    Else
    	Wscript.Echo "Erreur : " & Error & "."
    End If


    Même avec l'ajout (en gras ci-dessus), j'ai toujours la même erreur 8 et je n'arrive pas à identifier cette erreur.

    Ca ne se voit pas mais je suis a genoux en train de vous supplier :) AIDER MOI!!!!!

    Merci d'avance
    0
  2. Boulette67 Messages postés 56 Statut Membre 6
     
    Personne n'a d'idée?
    0
  3. Boulette67 Messages postés 56 Statut Membre 6
     
    Bon ben je crois que je vais devoir laisser tomber.
    0
  4. selrak Messages postés 16 Statut Membre
     
    tu peux connaitre ton erreur avec ce script:

    on error resume next
    err.raise 8
    msgbox("Error:" & err.description)

    chez moi, ca donne "Erreur d'execution inconnue" alors je crois que c'est peine perdu.

    info :

    Par le passer, j'ai cree un serveur avec des script vbs et des fichier .txt par lequel les script communicai . a savoir qu'il falait relier les ordi sur le groupe residentiel et partager les fichier txt sur le mode "read and write".les prog ecrivait sur le fichier .txt :

    Date() & " " & Time()
    CommandeAExecuter

    #########

    en vbs, la commande "ExecuteGlobal" sert a executer une commande de la valeur de la chaine a sa droite EX:

    dim a, b
    a = "msgbox(""Ca "
    b = "marche"")"
    executeglobal(a & b)

    fera un msgbox "Ca marche" sans guillemet.Pour optenir le mot-de-passe du groupe residentiel tu fait click-droit sur l'onglet qui est a gauche sur le File Explorer. Dans ton prog, tu fait un executeglobal de la deuxieme chaine du .txt et sa te permetera de fait n'importequoi a distance.le script suivant est le script de mon serveur et il
    est consu pour traiter les heures vbs ET Batch puisque les batch rajoute les centieme de sec. :

    ########## debut

    '''''''Plusieur ligne sont trop longue pour la page internet fac elle se trouve sur 2 ligne comme celle-ci

    dim ofso
    dim file
    dim start
    set start = WScript.createobject("WScript.shell")
    set ofso = WScript.createobject("scripting.filesystemobject")

    dim temps' //contien l'envoie de la commande
    dim commande' //commande qui etait dans le fichier text
    dim analy' //reserver aux analyse
    dim file2
    dim file3
    dim file4'//utiliser pour dire que la commande a ete recu

    Dim Excel, GetMessagePos

    do'//boucle continu
    on error resume next
    set file = ofso.opentextfile("\\#######PC\D\CommandeADistance\Commande.txt", 1)
    do
    on error resume next
    analy = file.readline
    if analy = "HOUR" then

    set file4 = ofso.opentextfile("C:\Users\######\TrucA#######\Prog\CommandeADistance\Text.txt", 2)
    file4.writeline(date() & " " & time())
    file4.close
    set file4 = nothing
    end if

    temps = left(analy, 19)
    temps = replace(temps, " ", " 0")
    if temps <> (date() & " " & time()) then
    exit do
    end if
    on error resume next
    commande = file.readline
    '////debut de l'analyse des commande///////////////////////////////////////////////////////////
    analy = left(commande, 14)
    if analy = "import-module " then
    analy = replace(commande, "import-module ", "")
    import("C:\Users\######\TrucA#######\Prog\CommandeADistance\Module\" & analy)
    set file4 = ofso.opentextfile("C:\Users\######\TrucA#######\Prog\CommandeADistance\Text.txt", 2)
    file4.writeline(temps)
    file4.close
    set file4 = nothing
    exit do
    end if

    on error resume next
    executeglobal commande

    set file4 = ofso.opentextfile("C:\Users\######\TrucA#######\Prog\CommandeADistance\Text.txt", 2)
    file4.writeline(temps)
    file4.close
    set file4 = nothing

    WScript.sleep 800
    '//////////////////////////////////////////////////////////////////
    exit do
    loop

    if err.number <> 0 then
    'msgbox err.number & chr(13) & err.description
    err.clear
    end if

    file.close
    set file = nothing
    WScript.sleep 100
    loop

    Sub Import(strFile)
    dim wshshell
    set wshshell = createobject("WScript.shell")
    Set objFs = CreateObject("Scripting.FileSystemObject")
    strFile = WshShell.ExpandEnvironmentStrings(strFile)
    strFile = objFs.GetAbsolutePathName(strFile)
    Set objFile = objFs.OpenTextFile(strFile)
    strCode = objFile.ReadAll
    objFile.Close
    'msgbox strcode
    ExecuteGlobal strCode
    End Sub

    function ExitCar(chaine, car)
    analy = left(chaine, car)
    analy = right(analy, 1)
    ExitCar = analy
    end function

    sub SetMousePosition(x, y)
    Set Excel = Wscript.CreateObject("Excel.Application")
    GetMessagePos = Excel.ExecuteExcel4Macro("CALL(""user32"",""GetMessagePos"",""J"")")
    Excel.ExecuteExcel4Macro("CALL(""user32"",""SetCursorPos"",""JJJ"",""" & x & """,""" & y & """)")
    end sub

    ################# fin du script

    l'heure de l'ordi client doit etre devancer de 2 sec comparer a l'ordi serveur. C'est pour ca que lorsque "HOUR" est ecrit a la premiere ligne le script renvoie
    Date() & " " & Time() dans un segon fichier txt afin que l'on puisse connaitre l'heure a distance.Pour ensuite recolter l'heure, tu fait un script PowerShell ".ps1" avec :

    set -name ffgf -value 1
    while($ffgf = 1) {
    clear-host
    get-content "C:\Users\######\TrucA#######\Prog\CommandeADistance\Text.txt" | set -name heure
    write-host $heure
    }

    n'oublie pas de debloquer les script PowerShell en demarent une invite (click droit et reclick droit puis sur "run as administrator") puis tu tape:

    />set-executionpolicy unrestrited

    j'espere que tu as reussi a me suivre sur se gros commentaire de 2 KM.

    :)
    0