Показать сообщение отдельно
Старый 12.04.2005, 20:40     # 4
Premium
Junior Member
 
Регистрация: 04.04.2003
Сообщения: 181

Premium Популярный человек на этом форумеPremium Популярный человек на этом форумеPremium Популярный человек на этом форумеPremium Популярный человек на этом форумеPremium Популярный человек на этом форумеPremium Популярный человек на этом форумеPremium Популярный человек на этом форуме
Сетки у меня все равно нет сейчас ни дома, ни на работе, проверять негде, я на примере локального компа покажу, подправишь там параметры комстроки сам.
Мысль должна идти в таком направлении:
Выдернуть из того, что выдает pslist.exe, имена процессов. Я ее сейчас скачал, она в начале пишет копирайты, номер своей версии и тп, всего 8 ненужных строчек, их пропускаем (skip=8). Из каждой оставшейся строчки необходимо только первое слово(имя процесса), значит делаем tokens=1. Итого получается
Код:
@echo off
for /f "skip=8 tokens=1" %%a in ('pslist') do echo %%a>>somename.txt
Оно?

Ну в текстовой файл список процессов писать не надо, имя каждого найденного процесса(%%a) отдаем команде find, пусть find ищет его в списке разрешенных (D:\allow.txt), сделай его предварительно.
Цитата:
System
winlogon
services
lsass
svchost
и тд
А потом в батнике есть такая штука, как две палки || (два символа канала ), если после них написать команду, то она выполнится, только если предыдущая команда завершилась с ошибкой(в твоем случае find не нашла процесс в списке разрешенных. То есть получается
Код:
@echo off

for /f "skip=8 tokens=1" %%a in ('pslist') do (
 find /i "%%a" D:\allow.txt || echo %%a - net ego v allow.txt>>D:\mustkill.txt
)
Вместо записи в mustkill.txt в реале естественно убивать процесс при помощи pskill.exe.
Как запустить получившийся *.cmd на всех машинах в сетке знаешь?

Копирование по сети на все машины сразу
http://www.kv.by/index2004171106.htm
приблизительно таким же макаром.

:: Конец мысли
:еоф

Последний раз редактировалось Premium; 12.04.2005 в 21:18.
Premium вне форума