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
    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.

      :)