LISTER,DETRUIRE,LANCER PROCESSUS & SERVICES A DISTANCE

thesaib - 12 juin 2001 à 13:03
bnisaid Messages postés 24 Date d'inscription samedi 31 décembre 2005 Statut Membre Dernière intervention 3 novembre 2007 - 7 juin 2007 à 20:45
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/1311-lister-detruire-lancer-processus-services-a-distance

bnisaid Messages postés 24 Date d'inscription samedi 31 décembre 2005 Statut Membre Dernière intervention 3 novembre 2007
7 juin 2007 à 20:45
ce quoi un WMI ?!!
bnisaid Messages postés 24 Date d'inscription samedi 31 décembre 2005 Statut Membre Dernière intervention 3 novembre 2007
7 juin 2007 à 20:43
erorrrrrrrrrrr
"winmgmts://EZ-NET/SERVEUR"
gbob Messages postés 7 Date d'inscription samedi 15 février 2003 Statut Membre Dernière intervention 18 juillet 2004
15 mars 2007 à 20:45
Dans ton code ne faudrait il pas remplacer ceci

# Else
# On Error GoTo error
# Set services = Locator.ConnectServer(txtserv.Text)
# Set ServiceObject = services.Get("Win32_Service='" & service & "'")
# 'L'arrete
# ServiceObject.Stopservice
# error:
# MsgBox "Le service n'a pu etre stoppé"
# End If
# maj (cmdstop.Visible)
# End Sub

par cela pour eviter d'afficher à chaque fois le message : "Le service n'a pu être stoppé"

# Else
# On Error GoTo error
# Set services = Locator.ConnectServer(txtserv.Text)
# Set ServiceObject = services.Get("Win32_Service='" & service & "'")
# 'L'arrete
# ServiceObject.Stopservice
# End If
# maj (cmdstop.Visible)
# Exit sub
# error:
# MsgBox "Le service n'a pu etre stoppé"
# End Sub

@+
nerix27 Messages postés 86 Date d'inscription jeudi 23 octobre 2003 Statut Membre Dernière intervention 21 juin 2007 2
25 oct. 2006 à 11:00
Bravo pour ton code...

Même question que SEBASH : comment exécuter un processus à distance ?
Ta procédure cmdadproc_Click démarrera le processus sur la machine locale...
Azwinek Messages postés 13 Date d'inscription lundi 26 juin 2006 Statut Membre Dernière intervention 18 avril 2007
2 oct. 2006 à 23:47
c'est cool ton programme
ma question c'est est ce qu'on peut installer le WMI dans WIN98
dans le cas contraire s'il y a une autre methode s'éxecutant a partir de la plupart des versions de windows surtout win98 et xp
et merci....
violent_ken Messages postés 1812 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 26 octobre 2010 2
10 déc. 2005 à 23:30
Salut TheSaib. Très bon programme ! Serait-il possible que je l'utilise dans mon code (sans le modifier) en te citant ? Merci d'avance.
@+
cs_ultimafight Messages postés 22 Date d'inscription jeudi 7 octobre 2004 Statut Membre Dernière intervention 4 août 2006
29 juil. 2005 à 00:30
PAs mal cette source :p
Par contre j'ai un peut pres la meme chose sauf fait sous un formulaire ACCESS
JE recup les Services de machine selectionné sa remplis ma table
Puis j'ai implémenté un liste de choix pour :
l'etat du service
le mode de démarrage
quand je change l'etat du service, aucun probleme sa stop ou démarre le service
par contre je n'arrive pas a changer le mode de démarrage
donc d'où ma question :
la propriete StartMode est elle modifiable ou en lecture seule,
ou y a t'il autre chose que cette fonction ?

mon bout de code :

Private Sub ModeDemarre_Change()
strComputer = Nomordinateur
Set objSWbemServices = GetObject("winmgmts:\" & strComputer & "\root\cimv2")

Set colSWbemObjectSet = objSWbemServices.ExecQuery("Select * from Win32_Service where Name=" & "'" & [IDservices] & "'" & "")
If ModeDemarre = "Auto" Then
For Each objSwbemObject In colSWbemObjectSet
objSwbemObject.startmode = "Auto"
ee = objSwbemObject.Put_()
Next
End If

Merci de votre aide :p
cs_hijodelaluna Messages postés 1 Date d'inscription vendredi 22 juillet 2005 Statut Membre Dernière intervention 22 juillet 2005
22 juil. 2005 à 16:24
soit je suis aveugle, soit il n y est plus, mais ou trouver l executablre direct svp ?
je ne voi que les sources ...
et ce petit logiciel m intéresse ^_^
merki ^_^
webdesignasp Messages postés 29 Date d'inscription jeudi 10 avril 2003 Statut Membre Dernière intervention 19 avril 2005
14 sept. 2004 à 14:08
Pareil que dionysos6868,

"y'a t'il moyen de le fair marche via internet ?"

car moi aussi je voudrais pouvoir lancer des services sur mon poste perso.
pjouy Messages postés 110 Date d'inscription mardi 8 juillet 2003 Statut Membre Dernière intervention 18 mai 2009
19 août 2004 à 23:48
Bonjour,

J'ai repris une partie de votre code pour vérifier si mon programme est déjà lancé dans les processus, afin qu'il ne puisse pas être lancé une 2ème fois.
Le code marche parfaitement sous XP, mais pas sous 2000 : je peux lancer mon programme autant de fois que je le veux.
Voici le code que j'ai repris :
Dim liste 'Collection de processus
Dim element 'Un element de la collection

Set liste = GetObject("winmgmts:").InstancesOf("Win32_Process") 'Récupération des processus en cours d'exécution

For Each element In liste
'Insertion dans la listview
Set Item = ListView.ListItems.Add(, , element.Name)
If element.Name = "monprog.exe" Then
Label_CompteurProcess.Caption = Val(Label_CompteurProcess.Caption) + 1
If Val(Label_CompteurProcess.Caption) = 2 Then
MsgBox "Le programme est déjà lancé."
Unload Me
Exit Sub
End If
End If
Next element
ManDeq59 Messages postés 55 Date d'inscription dimanche 12 mai 2002 Statut Membre Dernière intervention 6 juillet 2004
30 juin 2004 à 11:36
Je suis en NT4 et quand j'essai de lister les process d'un poste XP, il me marque toujours permission refusée.

Quelqu'un aurati-il une idée ???

merci d'avance
sebash Messages postés 1 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 23 avril 2004
23 avril 2004 à 16:52
Je n'arrive pas à comprendre comment on peut ajouter un processus à distance avec ce bout de code :
"Private Sub cmdadproc_Click()
cd.Filter = "Application (*.exe)|*.exe|" 'Filtre pour la boite de diag ouvrir
cd.ShowOpen 'Ouvre la boite de dialogue
test = cd.FileName 'Recupere le chemin
If test <> "" Then Shell (test) 'Lance le processus
End Sub" (extrait du projet dans le .zip)

Automatiquement, le processus sera lancé en local.... comment modifier ce bout de code pour que le processus se lance sur le poste distant ???

Merci pour votre aide ;)

Seb
cs_trifouille Messages postés 1 Date d'inscription vendredi 9 janvier 2004 Statut Membre Dernière intervention 26 mars 2004
26 mars 2004 à 15:33
Voici une petite extrapolation du code précedent:

Ce VB permet de lister les taches executées sur une machine distante d'un autre domaine.
Bien evidement il vous faut un compte dans le domaine cible.
Accessoirement, le pgm VB kill le process Notepad, au passage ...






Private Sub Command8_Click()

Dim Locator As SWbemLocator 'Objet de connexion
Dim services As SWbemServices 'Objet services
Dim ListeProcess
Dim Process

Set Locator = New SWbemLocator 'Nouvelle insatance d'une connexion

'Connexion au serveur

Set services = Locator.ConnectServer("Nom_de_la_Machine ou @Ip ", , "DOMAINE\CompteUtilisateur", "MotdePasse_du_CompteUtilisateur")

Set ListeProcess = services.ExecQuery("select * from Win32_Process")
For Each Process In ListeProcess
If Process.Properties_.Item("Name") = "notepad.exe" Then
Process.Terminate
End If

List1.AddItem Process.Properties_.Item("Name") + " is " + str$(Process.Properties_.Item("ProcessId"))
Next



'Le kill a reussi
If p <> 0 Then
MsgBox "Suppression du process impossible"
'Le kill a echoué
Else
MsgBox "Suppression terminé "
End If



End Sub
dionysos6868 Messages postés 310 Date d'inscription jeudi 4 septembre 2003 Statut Membre Dernière intervention 9 juin 2005 1
5 mars 2004 à 06:46
bon boulot, code bien commenter ca fait plaisir car c'est rare de nos jour lol.

parcontre y'a t'il moyen de le fair marche via internet , et ceux n'est pas a des fin de piratage mais a des fin de surveiller mon ordi a distance car je bosse a 70 km de chez moi.

Merci
cs_evilo Messages postés 5 Date d'inscription lundi 18 août 2003 Statut Membre Dernière intervention 10 février 2004
10 févr. 2004 à 12:18
Salut,
Super ! vraiment...plus ça va et plus je me dis que tu dois passer la majeure partie de ton temps sur VB6 ! ou alors tu bosses dans le dev (ça aide :o) ) Merci pour ce prog qui va m'aider à gérer le service Messenger pour mon prog de netsend...bon boulot, bonne matière grise, et surtout bonne continutation...
Evilo.
blazman34 Messages postés 9 Date d'inscription lundi 24 novembre 2003 Statut Membre Dernière intervention 10 juillet 2008
21 janv. 2004 à 13:21
Ce que je veu faire est simplement un petit script dans un notepad, ce n'est pas un application compiler...
Je c pas si tu l'aver bien compris.DOnc c peut etre pour ca que ta ligne me fait remonter une erreur. Tout comme ton script (plus haut dans le forum) lorsque je le copier dans le blo cnote et ke je l'enregistre en .vbs, il me remonte pas mal d'erreur.
Désoler pour mon ignorance.....
jattend de toute facon la modification de mon script avec impatience, je pense ke ca te prendra 3h de toute facon.
Merci encore
TheSaib Messages postés 2367 Date d'inscription mardi 17 avril 2001 Statut Membre Dernière intervention 26 décembre 2007 23
21 janv. 2004 à 00:32
la ou je suis je ne peux pas tester de code pour le moment :)

mais txtserv.text correspond a la textbox comportant le nom du serveur distant

telecharge le zip tu verras
blazman34 Messages postés 9 Date d'inscription lundi 24 novembre 2003 Statut Membre Dernière intervention 10 juillet 2008
21 janv. 2004 à 00:02
un dernier truc kan j'ai essayer par curiosité d'insérer ta ligne dans mon script.Un message apparait : "Objet recquis :txtserv.Text"
Je me poser justement la question en lisant ta ligne à koi correspond cela???
VOila jesper ke tu pourrait mexpliquer cela en plus, de la modification de mon script
merci d'avance
blazman34 Messages postés 9 Date d'inscription lundi 24 novembre 2003 Statut Membre Dernière intervention 10 juillet 2008
20 janv. 2004 à 23:54
oui en effet c ce ke jai fait mais bon pour l'instant je ne trouve pas de site explicant bien ce thème.Je c juste ke WMI sert à avoir des information ou a faire certaine action sur une machine distante de technolie WIn200
Pour ne rien te cacher je suis étudiant et donc ce petit script donas le cadre d'un cours sur l'étude de WIN2000/XP et W2000server.
Je n'est pas compris si Il suffit juste que j'insere la ligne de code que tu m'as fourni dans mon code...
Pourrais tu modifier le petit script que j'ai ecrit afin qu'il puisse faire ce ke souhaite???
(En conservant les meme nom de variables comme ca je pourrais mieux voir la différence et mieu comprendre)
je te remercie de ta patience.
TheSaib Messages postés 2367 Date d'inscription mardi 17 avril 2001 Statut Membre Dernière intervention 26 décembre 2007 23
20 janv. 2004 à 21:51
oui on peut mettre autre chose que administrator.

Je vous conseille de faire des recherches sur le thème WMI , car cette syntaxe n'appartien pas au langage VB mais bien à la technologie WMI !
blazman34 Messages postés 9 Date d'inscription lundi 24 novembre 2003 Statut Membre Dernière intervention 10 juillet 2008
20 janv. 2004 à 20:16
Est ce ka la place de "administrator" je peux mettre un autre nom d'utlisateur.
En gros je m'explique sur ce script, jaimerai kil faire ce ki la a faire sur une machine distante ou l'utilisateur administrateur peut etre different que sur ma machine.
VOila
blazman34 Messages postés 9 Date d'inscription lundi 24 novembre 2003 Statut Membre Dernière intervention 10 juillet 2008
20 janv. 2004 à 20:11
escuse moi mais je suis tout nouveau dans la programmation en visual et je doit dire que ca me parait assez diffent du C,C++, java et delphi que je conner mieu.
Le script que je veu utiliser est le suivant :

dim OWmi
set OWmi=getobject("winmgmts://127.0.0.1/root/cimv2")
Set Les_IExplore=OWmi.ExecQuery("Select * from Win32_Process Where Name='IExplore.exe'")
for Each Process in Les_IExplore
Process.Terminate(0)
Next

Donc la ligne de code que tu m'a donner je doit simplement la rajouter au script ou bien il faut faire quelques choses avec la variable OWmi???
merci d'avance.
TheSaib Messages postés 2367 Date d'inscription mardi 17 avril 2001 Statut Membre Dernière intervention 26 décembre 2007 23
19 janv. 2004 à 19:07
Set services = Locator.ConnectServer(txtserv.Text,"root/cimv2","lamachine\administrator", "Password")
)

CA devrait fonctionner
blazman34 Messages postés 9 Date d'inscription lundi 24 novembre 2003 Statut Membre Dernière intervention 10 juillet 2008
19 janv. 2004 à 19:01
J'ai bien compris qu'il faut avoir accés à la machine distante.Mais ya til moyen de rajouter à la commande le nom et le mot de passe de l'utilisateur avec lequel on se connecte.
Par exemple dans cette commande ou peut on spécifier cela :

"set OWmi=
getobject("winmgmts://217.128.46.111/root/cimv2")"

merci d'avance
TheSaib Messages postés 2367 Date d'inscription mardi 17 avril 2001 Statut Membre Dernière intervention 26 décembre 2007 23
9 juin 2003 à 19:41
cs_Hobby Messages postés 116 Date d'inscription mercredi 5 juin 2002 Statut Membre Dernière intervention 17 septembre 2008
22 avril 2003 à 01:15
Et bien cela ne fonctionne pas correctement:
Je veux lancer (par exmple notepad.exe) sur un serveur distant mais dans le réseau local sur le domaine (le domaine controleur justement) mais l'application ce lance localement. Donc pour être claire en tant que adminstrateur je lance d'un client (win2000) un soft sur le serveur win2000. (attention j'ai pas dit que le client était logé sur le compte administateur, mais avec un compte administrateur).

Il y a un truc docteur ?

Merci
Olivier
TheSaib Messages postés 2367 Date d'inscription mardi 17 avril 2001 Statut Membre Dernière intervention 26 décembre 2007 23
8 mars 2003 à 16:02
Source MISE A JOUR
cs_madVinz Messages postés 48 Date d'inscription lundi 22 octobre 2001 Statut Membre Dernière intervention 6 août 2002
24 juil. 2002 à 03:27
ok ;-)
TheSaib Messages postés 2367 Date d'inscription mardi 17 avril 2001 Statut Membre Dernière intervention 26 décembre 2007 23
7 juil. 2002 à 13:31
no parcequ'il te faut des droits sur la machines distantes
cs_madVinz Messages postés 48 Date d'inscription lundi 22 octobre 2001 Statut Membre Dernière intervention 6 août 2002
7 juil. 2002 à 02:35
Bien joué !!!!! mais je me demande si ca n'incite pas un peu a des pratiques douteuses ???
keopsk Messages postés 96 Date d'inscription jeudi 18 avril 2002 Statut Membre Dernière intervention 9 mars 2007
26 avril 2002 à 10:51
lorsque je demande la liste des services ou des process qui tournent sur un serveur distant j'ai l'erreur suivante :
Erreur d’exécution –2147217405(80041003)
Erreur automation

- le WinMgmts tourne bien sur le serveur
- j'ai exécuté le prog directement sur le serveur, il marche
- j'ai demandé l'affichage en mettant le nom de ma machine (locale) entant que serveur, le programme marche

mais j'ai toujours la même erreur lorsque j'essaye d'accéder à un serveur distant

Merci pour votre réponse
Sur la MSDN du C++ :-)
Dommage que l'ajout de process
ne marche pas à distance...
Par contre où est-ce que
tu as trouvé la déclaration
de l'objet style :
"WinMgmts://" ...
Génial ton truc,
çà c'est du codage !!!
Encore bravo !
Les killer a partir de 98 ou killer sur un 98 ?
pekinio {just a question;}
17 juin 2001 à 05:28
et ya pas moyens de lister des process a distance, de les killer et tout le tralala sous 98?
Meme principe que memere je crois, mais prise en charge a distance et marche sous 2000 !
A vos remarques!!
Rejoignez-nous