Если вы ищете такие процессы, как SearchIndexer - это должно быть довольно просто сделать с PowerShell
Get-Process
покажет вам список запущенных процессов. В этом случае я передал его в Select -first 1
потому что вас интересуют заголовки столбцов, а не список из 100+ процессов на моем ПК:
Далее - теперь вы знаете, как получить процессы, вам нужно сузить это до конкретного процесса. Ниже я показал 4 способа сделать это: Get-Process Search*
вернет все процессы, начинающиеся с поиска
Get-Process SearchIndexer
вернет только этот процесс, если он существует
Get-Process | Where {$_.Name -eq "SearchIndexer"}
найдет все процессы и затем выберет только тот, который называется SearchIndexer
Get-Process | Where {$_.ProcessName -Like "SearchIn*"}
получит все процессы и сузит до тех процессов, которые начинаются с "SearchIn".
В качестве примечания: вы можете использовать подстановочные знаки на любом конце, поэтому ` rchInde 'также вернет нужный вам процесс.
Теперь - чтобы убить процесс - направьте его в Stop-Process: ..Но это не сработало!
Чтобы остановить это - как и в некоторых процессах - вам нужно запустить PowerShell от имени администратора: ..но вы все еще получаете подсказку!
... игнорируем ошибку внизу, мы только что доказали, что процесс больше не существует
Добавьте переключатель -Force
и приглашение исчезнет!
Но нам не нравятся ошибки, когда мы пытаемся делать это снова и снова: ... поэтому мы должны обращаться с этим немного по-другому. Вместо того, чтобы явно останавливать этот один процесс, захватите все их, отфильтруйте их до тех, которые мы хотим (если есть), а затем убейте их (если они существуют):
Последнее - добавьте это как запланированное действие задачи (если вам нужно), так как Windows любит перезапускать определенные службы / процессы, и все готово.