Сценарий PowerShell для определения и остановки одной конкретной службы

Я пытаюсь создать сценарий PowerShell для следующих действий:
Я хочу идентифицировать антивирус, работающий на моем ПК.

Я использую команду для этого:

$AntiVirusProduct = Get-WmiObject -Namespace root\SecurityCenter2 -Class AntiVirusProduct 
Write-Output $AntiVirusProduct.DisplayName

Здесь я получаю имя антивируса, но я не знаю, как найти имя антивируса и поместить его в следующую команду. Следующая команда:

Stop-Service -Force "$Antivirus Name"

Или если есть лучший способ для этого?

Изменить

Get-WmiObject -Namespace root\SecurityCenter2 -Class AntiVirusProduct |
    Select DisplayName
DisplayName
-----------
AVG Antivirus
Windows Defender

person Skyn3t    schedule 01.07.2018    source источник
comment
Stop-Service $AntiVirusProduct.DisplayName -Force? Конечно, это будет работать только в том случае, если возвращаемое отображаемое имя на самом деле является именем службы.   -  person Ansgar Wiechers    schedule 01.07.2018
comment
Это не работает, потому что вывод такой: Защитник Windows AVG Antivirus, и я не знаю, как выполнить grep только AVG Antivirus без Защитника Windows. Stop-Service: не удается найти службу с именем службы «Защитник Windows».   -  person Skyn3t    schedule 01.07.2018
comment
Имя службы не обязательно совпадает с зарегистрированным именем AntiVirusProduct. Здесь он не совпадает с Avira. Я бы попробовал Get-Service *AVG* | Stop-Service -Confirm или какой у вас антивирус. Пожалуйста, отредактируйте ваш вопрос, чтобы он содержал дополнительную информацию.   -  person    schedule 01.07.2018


Ответы (1)


Если вывод вашего отображаемого имени представляет собой список имен служб, вы можете удалить запись Защитника Windows из списка примерно так:

$svc = $AntiVirusProduct.DisplayName |
       Where-Object { $_ -notlike '*Windows Defender*' }

а затем остановите службу следующим образом:

$svc | Stop-Service -Force
person Ansgar Wiechers    schedule 01.07.2018