Google search feed for 15 September 2018:
PsSuspend
инструмент от PsTools
( sysinternals
пакет утилит Microsoft )
Поскольку это какой-то официальный инструмент, он может быть лучшим выбором для простых скриптов и автоматизации.
Запуск 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.
Также посмотрите на этот ответ Stackoverflow
Более удобный для пользователя метод командной строки (Powershell) из этого ответа:
Как я уже сказал, в командной строке Windows нет никакой утилиты для этого, но вы можете вызывать функцию Windows API из PowerShell. Сначала установите скрипт Invoke-WindowsApi, затем вы можете написать это:
Invoke-WindowsApi "kernel32" ([bool]) "DebugActiveProcess" @([int]) @(process_id_here)
Подобная техника была использована для создания этого скрипта PowerScript, созданного для приостановки процесса.