Фильтр услуг при вызове Get-Service - PullRequest
6 голосов
/ 05 декабря 2008

Я делал это в прошлом, и не могу вспомнить правильную команду (кажется, я использовал instring или soemthign?)

Я хочу перечислить все запущенные службы Windows, в которых есть слово «sql».

Список всех служб Windows:

Get-Service

Есть ли функция для создания экземпляров, которая делает это?

Ответы [ 3 ]

18 голосов
/ 05 декабря 2008
Get-Service -Name *sql*

Более длинная альтернатива будет:

Get-Service | where-object {$_.name -like '*sql*'}

Многие командлеты предлагают встроенную фильтрацию и поддерживают шаблоны. Если вы проверите файлы справки (Get-Help Get-Service -full), вы увидите

 -name <string[]>
     Specifies the service names of services to be retrieved. Wildcards are
     permitted. By default, Get-Service gets all of the services on the comp
     uter.

     Required?                    false
     Position?                    1
     Default value                *
     Accept pipeline input?       true (ByValue, ByPropertyName)
     Accept wildcard characters?  true

Обычно, если фильтрация встроена в командлет, это предпочтительный способ, так как он часто быстрее и эффективнее.
В этом случае может быть не слишком много выигрыша в производительности, но в V2, где вы могли бы извлекать службы с удаленного компьютера и выполнять фильтрацию, был бы предпочтительный метод (меньше данных для отправки обратно вызывающему компьютеру). 1009 *

4 голосов
/ 29 июня 2012

Вы можете получить все службы, которые работают и имеют слова sql.

 Get-Service | Where-Object {$_.Status -eq "Running"} | Where-Object {$_.Name -like "*sql*"}

Если вы хотите больше информации, посмотрите это (не большая разница) http://nisanthkv.blog.com/2012/06/29/get-services-using-powershell

Надеюсь, это поможет ...

2 голосов
/ 04 мая 2017

Пожалуйста, введите ниже команду:

Get-Service -Name '*<search string>*'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...