Google search feed for 15 September 2018:
Инструмент PsSuspend
от PsTools
(пакет утилит Microsoft sysinternals
)
Поскольку это какой-то официальный инструмент, он может быть лучшим выбором для простых скриптов и автоматизации.
Запуск PsSuspend с идентификатором процесса заставляет его приостановить или возобновить процесс с этим идентификатором на локальном компьютере. Если вы укажете имя процесса, PsSuspend приостановит или возобновит все процессы с таким именем. Укажите ключ -r для возобновления приостановленных процессов.
Использование: pssuspend [- ] [-r] [\\computer [-u username] [-p password]] <process name | process id>
Простая программа , использующая Windows API: SuspendThread
и ReasumeThread
В Windows есть некоторые функции, предназначенные для приостановки и возобновления потоков (так что процесс какой-то другой). kernel32.dll
библиотека предоставляет SuspendThread
и ReasumeThread
. Предупреждение! Есть также 64-битные аналоги для этих функций Wow64SuspendThread
и Wow64ResumeThread
(которые не имеют официальной документации).
Есть хорошее небольшое приложение, которое использует эту технику и версию на C/C++, также на CodeProject (доступен исходный код).
Использование: pausep PID [/r]
(ключ /r
возобновляет процесс).
Существует версия на C # .NET также на CodeProject.
Более удобный для пользователя метод командной строки (Powershell) из этого ответа:
Как я уже говорил, в командной строке Windows нет никакой утилиты для этого, но вы можете вызывать функцию Windows API из PowerShell. Сначала установите скрипт Invoke-WindowsApi, затем вы можете написать это:
Invoke-WindowsApi "kernel32" ([bool]) "DebugActiveProcess" @([int]) @(process_id_here)
Подобная техника была использована для создания этого скрипта PowerScript, созданного для приостановки процесса.