Tuer un processus d'une liste de machine distante sur un domaine
wombo27
Messages postés2Date d'inscriptionmercredi 10 octobre 2012StatutMembreDernière intervention 5 septembre 2013
-
Modifié par wombo27 le 5/09/2013 à 17:10
cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 2018
-
6 sept. 2013 à 13:29
Bonjour,
Je travaille depuis quelques jours en vain sur un moyen de tuer un processus sur plusieurs machines de mon domaine.
Je souhaite faire un script qui permet de faire ceci en utilisant les noms des machines du domaine, et le nom du processus à stopper, et sans avoir à installer un script client sur chaque machine.
J'ai déjà réussi à modifier un script trouvé sur le Net pour pouvoir générer dans un fichier .txt une liste des machines de mon Active Directory.
j'ai ensuite trouvé sur la toile ce script que j'ai modifié, afin qu'il permet (normalement^^") de démarrer un processus donné dans une liste de machine distante.
processname = "NOTEPAD.EXE"
query = "SELECT * FROM Win32_Process WHERE Name='" & processname & "'"
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile("C:\list.txt")
Do Until f.AtEndOfStream
skipServer = False
server = f.ReadLine
On Error Resume Next
Set wmi = GetObject("winmgmts://" & server &"/root/cimv2")
If Err Then
WScript.Echo "Error " & Err.Number & " connecting to " & server & ": " _
& Err.Description
On Error Goto 0
skipServer = True
End If
On Error Goto 0
If Not skipServer Then
For Each process in wmi.ExecQuery(query)
objProcess.Terminate()
Next
WScript.Echo processname & "kill on " & server & "."
End If
Loop
f.Close
Malheureusement le script n'arrive pas à trouver le PC distant.
Toutes les modifications que j'ai tentées n'ont malheureusement pas abouti, c'est pourquoi je fais appel à vos connaissances.
cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 201826 6 sept. 2013 à 13:24
Bonjour Wombo,
Avant de tester avec un fichier contenant la liste des serveurs, je te propose de tester ces quelques lignes de code en remplaçant le nom du serveur.
Option Explicit
Dim objProcess, strComputer, strProcessName, strQuery
strComputer = "MyServer"
strProcessName = "notepad.exe"
strQuery = "SELECT * FROM Win32_Process WHERE Name='" & strProcessName & "'"
For Each objProcess In GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\" &_
strComputer & "rootcimv2").ExecQuery(strQuery)
WScript.Echo objProcess.Name & Space(5) & objProcess.ProcessID
Next
jean-marc
cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 201826 6 sept. 2013 à 13:29
La saisie dans la balise "code" est erronée avec les anti-slashs.
Option Explicit
Dim objProcess, strComputer, strProcessName, strQuery
strComputer = "MyServer"
strProcessName = "notepad.exe"
strQuery = "SELECT * FROM Win32_Process WHERE Name='" & strProcessName & "'"
For Each objProcess In GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" &_
strComputer & "\root\cimv2").ExecQuery(strQuery)
WScript.Echo objProcess.Name & Space(5) & objProcess.ProcessID
Next
6 sept. 2013 à 13:29
Option Explicit
Dim objProcess, strComputer, strProcessName, strQuery
strComputer = "MyServer"
strProcessName = "notepad.exe"
strQuery = "SELECT * FROM Win32_Process WHERE Name='" & strProcessName & "'"
For Each objProcess In GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" &_
strComputer & "\root\cimv2").ExecQuery(strQuery)
WScript.Echo objProcess.Name & Space(5) & objProcess.ProcessID
Next