VBS sur poste distant

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. 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
    1. Personne n'a d'idée?
      0
      1. Bon ben je crois que je vais devoir laisser tomber.
        0
        1. 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