Назад | Перейти на главную страницу

Убейте все экземпляры program.exe, открытые в общей сетевой папке из Windows

Как мне убить всех program.exe экземпляры, которые в настоящее время открыты через общий сетевой ресурс Windows?

Я знаю, как составить список открытых файлов net files | Findstr "program.exe" но как тогда его убить?

В Linux я бы набрал:

kill -9 `pidof program.exe`

Что эквивалентно этому в Windows?

Если в вашей версии Windows есть powershell (если нет, вы можете загрузить и установить с сайта Microsoft), это тоже очень просто

get-process "program.exe" | stop-process -force -confirm:$false

Смотри сюда: http://support.microsoft.com/kb/290585/en-us

Я считаю, что это все еще применимо к текущим версиям Windows или, по крайней мере, должно направить вас в правильном направлении.

Командная строка:

for /f "skip=4 tokens=1" %a in ('net files') do net files %a /close

Пакетный файл:

for /f "skip=4 tokens=1" %%a in ('net files') do net files %%a /close

tskill.exe (встроенный или, возможно, в комплекте ресурсов) или pskill.exe из sysinternals, который, как администратор Windows, должен иметь на USB-ключе и в общей сетевой папке.

Кроме того, не забудьте указать, над какой версией Windows вы работаете - это может повлиять на чей-то ответ - хотя, скорее всего, не для этого вопроса.