Squeak.ru - шаблоны программирования

Убить второстепенную задачу данного процесса

Я пытаюсь убить второстепенную задачу процесса, используя powershell, пакет, python... все, что я могу сохранить как скрипт и запустить его удаленно. Изображение TaskManager выглядит следующим образом:

Диспетчер задач

Я хотел бы убить тот, у кого более длинный заголовок, оставив открытым «SAP Logon 740». Каждая задача дерева имеет один и тот же PID, поэтому я не могу просто убить процесс.

Я предполагаю, что это возможно, потому что я могу сделать это вручную, перейдя в диспетчер задач, развернув процесс и завершив эту конкретную задачу, но все, что я нашел, состоит в том, чтобы убить процесс, что невозможно в моем случае.

До сих пор я пытался использовать tasklist/taskkill, powershell (Get-Process, Get-Object Win32_Process...), но не смог найти, как это сделать.

Здесь у вас есть вывод TaskList (Status=Running)

Вывод

Там показывается только одна из задач (та, что спереди).


  • Stop- Процесс 30.05.2019
  • Ваше изображение показывает группировку отдельных задач диспетчера задач в их работающем родительском приложении, это не означает, что они используют один и тот же идентификатор процесса. У вашего снимка экрана GUI нет причин быть частью этого вопроса, что было бы более полезным для нас, так это репрезентативный отформатированный вывод из TaskList /V /Fi "Status Eq Running". 30.05.2019
  • добавил в вопрос 30.05.2019
  • Вы заметите, что тот, который вы не показали, не имеет PID из 2612, как я уже говорил. Теперь откройте окно командной строки, введите TaskKill /? и прочитайте информацию об использовании. Вы заметите, что можете фильтровать его выбор, используя такую ​​информацию, как имя изображения и заголовок окна! 30.05.2019
  • Если я попытаюсь использовать Taskkill /F /FI "WINDOWTITLE eq ABAP*", он закроет оба окна, одно с заголовком окна ABAP* и одно с SAP LOGON 740. 30.05.2019
  • Вы вырезали столбец PID из изображения диспетчера задач. Обратите внимание, что элементы с PID показывают другое контекстное меню, чем элементы без PID (и это так). Я не знаю, как программно убить эти подзадачи. Даже метод Terminate класса Win32_Process завершает процесс и все его потоки. Я не вижу способа завершить конкретный поток… 31.05.2019

Ответы:


1

Поскольку вы использовали тег powershell и даже запустили ваша команда tasklist использует powerhell.exe, я решил привести примеры с ее использованием.

Если вы хотите остановить процесс saplogon с самой длинной строкой заголовка окна:

GPs saplogon|Sort{$_.mainWindowTitle.Length}|Select -L 1|SpPs -Wh

Если вы хотите остановить все процессы с именем saplogon, кроме того, у которого самая короткая строка заголовка окна:

GPs saplogon|Sort{$_.mainWindowTitle.Length}|Select -Skip 1|SpPs -Wh`

Если вы довольны результатом, вы можете удалить  -Wh, (-WhatIf), чтобы фактически выполнить задачу. При необходимости вы даже можете заменить его опцией  -F, (-Force), при необходимости.

30.05.2019
  • Пожалуйста, используйте полные командлеты в своих ответах вместо псевдонимов. Использование командлетов делает код более понятным и согласованным при совместном использовании с другими людьми. (Да, я знаю, что использование алиасов в интерактивной консоли полезно для ускорения, но делает код менее понятным. Кроме того, некоторые алиасы не слишком интуитивно понятны, и бывает сложно запомнить их все… если вы не Linux выродок [усмехается]...) 31.05.2019
  • Перед выполнением всей команды я пытался указать только то, что получается (без выбора и SpP), и появляется только одна строка. Тем не менее, я попробовал оба. С первым (Убейте того, у кого более длинное название) в результате были закрыты оба. Со вторым ничего не происходит (думаю, это потому, что Skip 1 пропускает единственную существующую строку). 31.05.2019
  • @iVrLx, я не был уверен, что вы пробовали это, потому что я не умею читать мысли, и вы не были достаточно уважительны, чтобы предоставить минимально воспроизводимый пример вашего кода, как указано в правилах для хороших вопросов. В следующий раз, когда у вас возникнет проблема, не тратьте время и усилия других участников, пройдя тур и прочитав Как спросить перед публикацией. 31.05.2019
  • Новые материалы

    Угловая структура архитектуры
    Обратите внимание, что эта статья устарела, я решил создать новую с лучшей структурой и с учетом автономных компонентов: https://medium.com/@marekpanti/angular-standalone-architecture-b645edd0d54a..

    «Данные, которые большинство людей используют для обучения своих моделей искусственного интеллекта, поставляются со встроенным…
    Первоначально опубликовано HalkTalks: https://hacktown.com.br/blog/blog/os-dados-que-a-maioria-das-pessoas-usa-para-treinar-seus-modelos-de-inteligencia-artificial- ja-vem-com-um-vies-embutido/..

    Сильный ИИ против слабого ИИ: различия парадигм искусственного интеллекта
    В последние годы изучению и развитию искусственного интеллекта (ИИ) уделяется большое внимание и прогресс. Сильный ИИ и Слабый ИИ — две основные парадигмы в области искусственного интеллекта...

    Правильный способ добавить Firebase в ваш проект React с помощью React Hooks
    React + Firebase - это мощная комбинация для быстрого и безопасного создания приложений, от проверки концепции до массового производства. Раньше (знаете, несколько месяцев назад) добавление..

    Создайте API с помощью Python FastAPI
    Создание API с помощью Python становится очень простым при использовании пакета FastAPI. После установки и импорта вы можете создать приложение FastAPI и указать несколько конечных точек. Каждой..

    Веселье с прокси-сервером JavaScript
    Прокси-серверы JavaScript — это чистый сахар, если вы хотите создать некоторую общую логику в своих приложениях, чтобы облегчить себе жизнь. Вот один пример: Связь клиент-сервер Мы..

    Получить бесплатный хостинг для разработчиков | Разместите свой сайт за несколько шагов 🔥
    Статические веб-сайты — это веб-страницы с фиксированным содержанием и его постоянным содержанием. Но теперь статические сайты также обрабатывают динамические данные с помощью API и запросов...