1

Тема: VBS: Удаление процессов с условием

Необходимо:
Создать скрипт который:
"Убивает" все процессы, которые висят в памяти и не упомянуты в файле со списком имен процессов.
Прошу не кидать в меня тряпки, я в этом новичок.

2

Re: VBS: Удаление процессов с условием

xrom8 пишет:

Прошу не кидать в меня тряпки, я в этом новичок.

А тряпок нет, есть только кирпичи и гири.

Возник встречный вопрос - какие шаги были Вами сделаны на пути к решению задачи ?

Передумал переделывать мир. Пашет и так, ну и ладно. Сделаю лучше свой !

3

Re: VBS: Удаление процессов с условием

Xameleon
Копаюсь в синтаксе, получилось пока только остановить процессы которые в файле, но мне нужен обратный результат...

strcomputer="."
set FSO=CreateObject("Scripting.filesystemobject")
set readfile=FSO.openTextFile("C:\users\Scriptman\kill.txt")
set wmi=GetObject("winmgmts:{impersonationlevel=impersonate}!\\" _
&strcomputer&"\root\cimv2")
do until readfile.atEndOfStream
	processname=readfile.readline
		set colprocesses=wmi.execquery("Select * from win32_process where name = '" _
		&processname&"'")
			if colprocesses.count>0 then
					for each obj in colprocesses
						If obj.GetOwner (Username) = 0 Then
							if username="Scriptman" then
							'wscript.echo "killing "&obj.name
							obj.terminate()
							end if
						end if
					next
			end if
		
loop

4

Re: VBS: Удаление процессов с условием

Отлично ! Это уже большой шаг. У Вас в коде указан запрос

"Select * from win32_process where name = '" _
&processname&"'"

Т.е отбор по условию. Если от условия избавиться, то будут возвращаться все процессы.

"Select * from win32_process" 

А дальше уже можете выбрать, что с ними делать.

Передумал переделывать мир. Пашет и так, ну и ладно. Сделаю лучше свой !

5

Re: VBS: Удаление процессов с условием

Xameleon

А если вот так упростить?

List = "C:\IgnoreListProcesses_ANSI.txt"
List = vbLf & CreateObject("Scripting.FileSystemObject").OpenTextFile(List).ReadAll & vbCr
For Each Pr In GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\CIMV2").ExecQuery("Select Name from Win32_Process")
  If InStr(List, vbLf & Pr.Name & vbCr) = 0 Then Pr.Terminate
Next

только оно выдает ошибку

Post's attachments

Screenshot_1.jpg 120.91 kb, file has never been downloaded. 

You don't have the permssions to download the attachments of this post.

6

Re: VBS: Удаление процессов с условием

Думаю вот так можно. Строку с уничтожением процессов я закомментировал. Кстати в список надо внести WScript.exe / CScript.exe, иначе процесс "грохнет" сам себя.

Post's attachments

terminator.zip 1.15 kb, 1 downloads since 2019-03-15 

You don't have the permssions to download the attachments of this post.
Передумал переделывать мир. Пашет и так, ну и ладно. Сделаю лучше свой !