Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] убить процессы через утилиту

Ответить
Настройки темы
PowerShell - [решено] убить процессы через утилиту

Ветеран


Сообщения: 1087
Благодарности: 224


Конфигурация

Профиль | Отправить PM | Цитировать


приветствую.
есть несколько процессов, которые нужно убить с помощью утилиты - pskill
в батнике я делаю так -
Код: Выделить весь код
for %%A IN (процесс.exe процесс.exe процесс.exe) DO %~dp0\pskill64 %%A -accepteula -t
интересует аналог этого решения для powershell.

Отправлено: 19:23, 11-03-2021

 

Аватара для DJ Mogarych

fascinating rhythm


Moderator


Сообщения: 6705
Благодарности: 1576

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
kill -name процесс,процесс,процесс

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)


Отправлено: 23:11, 11-03-2021 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Сообщения: 1087
Благодарности: 224

Профиль | Отправить PM | Цитировать


DJ Mogarych, если бы это было возможным, то я бы не прибегал к сторонней утилите.

Отправлено: 08:04, 12-03-2021 | #3


Аватара для Elven

Ветеран


Сообщения: 992
Благодарности: 268

Профиль | Сайт | Отправить PM | Цитировать


geepnozeex, а невозможно потому, что?..

Отправлено: 10:12, 12-03-2021 | #4


Ветеран


Сообщения: 1087
Благодарности: 224

Профиль | Отправить PM | Цитировать


Elven, отказано в доступе.
хочу сделать что-то вроде этого -
Код: Выделить весь код
'процесс.exe','процесс.exe' | start-process "C:\pskill64" -arg "-accepteula -t"
но данные не передаются по конвейеру.

Последний раз редактировалось geepnozeex, 12-03-2021 в 10:39.


Отправлено: 10:18, 12-03-2021 | #5


Аватара для Elven

Ветеран


Сообщения: 992
Благодарности: 268

Профиль | Сайт | Отправить PM | Цитировать


Код: Выделить весь код
(process1.exe,process2.exe) | ForEach-Object {echo $_}
echo соответственно меняем на этот пкилл, я его не юзал потому хз как там что с ним будет.
в доступе отказано вполне вероятно из-за неповышенных прав, но это нужно смотреть и ковыряться.

Последний раз редактировалось Elven, 12-03-2021 в 10:42.

Это сообщение посчитали полезным следующие участники:

Отправлено: 10:29, 12-03-2021 | #6


Ветеран


Сообщения: 1087
Благодарности: 224

Профиль | Отправить PM | Цитировать


Цитата Elven:
в доступе отказано вполне вероятно из-за неповышенных прав, но это нужно смотреть и ковыряться. »
SecurityHealthService.exe и с правами trustedinstaller не убьёшь, поэтому и использую pskill.
ещё заморочка небольшая - вот так с указанием прямого пути всё работает -
Код: Выделить весь код
'SecurityHealthService.exe','smartscreen.exe' | Foreach{C:\pskill64 -accepteula -t $_}
но стоит использовать переменную в пути к утилите
Код: Выделить весь код
Foreach{"$PSScriptRoot\pskill64 -accepteula -t $_"}
не работает.

Последний раз редактировалось geepnozeex, 12-03-2021 в 13:43.


Отправлено: 12:02, 12-03-2021 | #7


Аватара для Elven

Ветеран


Сообщения: 992
Благодарности: 268

Профиль | Сайт | Отправить PM | Цитировать


Сходу не скажу, возможно пойдет вот с таким костылем, если нужно именно использование переменной.
Код: Выделить весь код
{
Start-Process -FilePath "$PSScriptRoot\pskill64" -ArgumentList "-accepteula","-t"," $_"
}

Отправлено: 14:39, 12-03-2021 | #8


Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


Честно говоря, вообще не пойму, с чем проблемы.

Например, у меня pskill64.exe расположен по адресу C:\Program Files (x86)\Sysinternals.com\Sysinternals Suite, и, следовательно:
Код: Выделить весь код
'notepad.exe', 'calc.exe' | ForEach-Object -Process {
    Start-Process -FilePath ([System.IO.Path]::Combine([System.Environment]::GetFolderPath("ProgramFilesX86"), 'Sysinternals.com\Sysinternals Suite\pskill64.exe')) -ArgumentList @('-accepteula', '-t', $_)
}
что, собственно, ничем не отличается от кода коллеги Elven выше.

Отправлено: 21:37, 12-03-2021 | #9


Ветеран


Сообщения: 1087
Благодарности: 224

Профиль | Отправить PM | Цитировать


Цитата Iska:
Честно говоря, вообще не пойму, с чем проблемы. »
проблема была в использовании переменной $PSScriptRoot вместо указанного пути к pskill
Я так сделал -
Код: Выделить весь код
'SecurityHealthService.exe','SecurityHealthSystray.exe','smartscreen.exe' | %{&"$PSScriptRoot\pskill" "-accepteula" "-t" "$_"}
а без переменной работает так -
Код: Выделить весь код
 %{C:\pskill64 -accepteula -t $_}

Последний раз редактировалось geepnozeex, 13-03-2021 в 09:03.


Отправлено: 22:27, 12-03-2021 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] убить процессы через утилиту

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Службы - Как убить MSN через реестр в windows 8.1? igggor Microsoft Windows 8 и 8.1 10 28-07-2014 17:54
[решено] как убить процесс через autoit rocet AutoIt 11 31-01-2014 14:18
проблема обновления directx через утилиту dxwebsetup!!!! Warfalomey Хочу все знать 8 23-08-2013 23:03
[решено] Удаленный запуск скриптов через WMI... загр.в процессы но ни чего не делает. RUVATA Microsoft Windows NT/2000/2003 10 17-10-2010 20:16
Как убить процессы gtplugin и gtwm...? Den_93rus Лечение систем от вредоносных программ 1 22-01-2010 10:24




 
Переход