VBS sur poste distant

Boulette67 Messages postés 54 Date d'inscription   Statut Membre Dernière intervention   -  
selrak Messages postés 10 Date d'inscription   Statut Membre Dernière intervention   -
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

4 réponses

Boulette67 Messages postés 54 Date d'inscription   Statut Membre Dernière intervention   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
Boulette67 Messages postés 54 Date d'inscription   Statut Membre Dernière intervention   6
 
Personne n'a d'idée?
0
Boulette67 Messages postés 54 Date d'inscription   Statut Membre Dernière intervention   6
 
Bon ben je crois que je vais devoir laisser tomber.
0
selrak Messages postés 10 Date d'inscription   Statut Membre Dernière intervention  
 
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