Как получить список всех служб Windows с помощью PowerShell или командной строки

Запущенные приложения, которые вы видите на экране, представляют собой лишь часть того, что происходит в Windows . Множество фоновых процессов, от управления драйверами устройств до обеспечения безопасности, поддерживает работоспособность ПК с Windows .

Для любого системного администратора, контролирующего несколько компьютеров, важно иметь возможность просматривать состояние этих критически важных служб. Подход диспетчера задач(Task Manager) слишком медленный для этого, и вы не можете автоматизировать его с помощью сценария.

Решение? Инструменты командной строки. Используя командную строку или PowerShell(Command Prompt or PowerShell) , вы можете быстро получить информацию о работающих службах Microsoft , работающих в системе, что поможет вам быстро диагностировать любые проблемы. 

Список служб (Services)Windows в командной строке(Command Prompt)

Хотя командная строка не такая гибкая и мощная, как (the Command Prompt)Windows PowerShell , она по- прежнему является отличным инструментом для системных администраторов. Вы можете использовать команду queryex , чтобы получить статус как активных, так и отключенных служб, а затем использовать команду taskkill(use the taskkill command) для завершения надоедливых процессов.

  1. Чтобы использовать команду queryex, запустите командную строку(Command Prompt) от имени администратора(Administrator) . Вы можете найти приложение, выполнив поиск cmd в меню «Пуск».

  1. Есть много способов использования команды sc queryex. Тип и состояние(State) — два наиболее часто используемых параметра. Например, введите следующую команду, чтобы просмотреть все  процессы Windows :

sc queryex type=service state=all

  1. Представление по умолчанию может быть немного ошеломляющим. Вы можете отображать только имена процессов, чтобы упростить анализ списка:

sc queryex type=service state=all | find /i “SERVICE_NAME:”

  1. По умолчанию команда выводит список всех активных процессов. Чтобы найти неактивные, измените параметр состояния:

sc queryex type=service state=inactive

  1. Вы также можете запросить статус конкретного процесса по его имени. Это невероятно полезно для системных администраторов, поскольку они могут настроить пакетные файлы для одновременной проверки множества процессов. Вот пример:

sc запрос DeviceInstall(sc query DeviceInstall)

Список служб (Services)Windows в PowerShell

PowerShell предназначен для использования в качестве специальной оболочки командной строки для современной Windows . Таким образом, он обеспечивает доступ практически ко всем компонентам операционной системы с помощью команд, и службы Windows не являются исключением.

Преимущество PowerShell(PowerShell) в том, что его можно легко автоматизировать. Все команды PowerShell могут быть скомпилированы в сложные сценарии, что позволяет без проблем настраивать задачи системного администрирования на нескольких ПК.

  1. Начните(Start) с открытия PowerShell . Вы можете найти его в меню « Пуск»(Start Menu) ; просто убедитесь, что вы запускаете экземпляр с повышенными правами (т . е. от имени администратора(Administrator) ).

  1. Самая простая команда для вывода списка служб Windows в (Windows)PowerShellGet-Service . Он показывает все службы на вашем компьютере, а также их статус и имена. Единственная проблема заключается в том, что список услуг может быть довольно длинным.

  1. При использовании Get-Service рекомендуется экспортировать список в текстовый файл. Вы можете сделать это с помощью каналов, например:

Get-Service | Out-File “C:\logs\All_Services.txt”

  1. Чтобы просмотреть статус конкретной службы, выполните команду Get-Service с именем службы. Вы можете запросить статус нескольких процессов, разделив их имена запятыми.

Get-Service CryptSvc, COMSysApp

  1. Каналы также можно использовать для объединения командлета Get-Service с функцией (Get-Service)Where-Object и фильтрации результатов по Status . Следующая команда иллюстрирует это, получая все запущенные(Running) службы:

Get-Service | Where-Object {$_.Status -EQ “Running”}

Проверка зависимостей службы

Любой сложный процесс разбивается на несколько взаимозависимых сервисов. Вот почему часто недостаточно просто получить статус той или иной службы. Вам также необходимо проверить статус служб, от которых зависит служба.

  1. Чтобы просмотреть службы, необходимые для конкретной службы, используйте флаг -RequiredServices с командлетом Get-Service . Вот пример:

Get-Service -Name CryptSvc –RequiredServices

  1. Точно так же, чтобы получить список служб, зависящих от конкретной службы, воспользуйтесь флагом -DependentServices .

Get-Service — имя CryptSvc — DependentServices(Get-Service -Name CryptSvc -DependentServices)

Эти два флага имеют решающее значение при написании сценариев для автоматического запуска или остановки служб Windows , поскольку они дают вам возможность отслеживать все службы, связанные с затронутой службой.

Список служб (Services)Windows на удаленных(Remote) компьютерах

Метод PowerShell не ограничивается локальными компьютерами. Вы также можете использовать командлет Get-Service с тем же синтаксисом, что описан выше, для запроса процессов удаленных компьютеров. Просто(Just) добавьте флаг -ComputerName в конце, чтобы указать, с какого удаленного компьютера следует получать информацию. 

Вот пример:

get-service CryptSvc -ComputerName Workstation7

Управление службами (Services)Windows в PowerShell

Получение состояния служб — не единственное, что вы можете сделать в Windows PowerShell . Как полноценная среда сценариев, она предоставляет сценарии, альтернативные всем параметрам графического интерфейса(GUI)

Командлеты Powershell(Powershell) могут останавливать, запускать, перезапускать или даже изменять службы. В сочетании с автоматизированными командами Get-Service сценарии (Get-Service)PowerShell могут быть написаны для полной автоматизации повседневных задач управления системой.

  1. Помимо запроса состояния служб, вы также можете использовать PowerShell для управления ими. Запуск или остановка служб может быть выполнена с помощью одной команды, требующей только имени службы. Например, вот как вы можете остановить службу:

Stop-Service -Name Spooler

  1. Запуск службы происходит аналогично:

Start-Service -Name Spooler

  1. Если служба работает неправильно, вы также можете перезапустить ее:

Restart-Service -Name Spooler

  1. Существует также командлет Set-Service , который можно использовать для изменения свойств службы. Здесь мы отключаем автоматический запуск службы диспетчера очереди печати(Print Spooler) :

Set-Service 'Диспетчер очереди' -StartupType отключен(Set-Service ‘Spooler’ -StartupType Disabled)

Как лучше всего составить список служб (Services)Windows(List Windows) ?

Независимо от того, используете ли вы Windows 10 или Windows Server , возможность просмотра списка всех служб Windows может быть удобной. Вы можете диагностировать проблемы с критически важными функциями системы или остановить ненужные службы Microsoft для повышения производительности.

Для этой цели лучше всего подойдет PowerShell(PowerShell) . Хотя вы можете получить список служб в командной строке(Command Prompt) , дополнительные функции, предоставляемые PowerShell , более полезны.

Вы можете использовать командлеты PowerShell для получения статуса службы процессов Windows , фильтруя их по статусу или другим параметрам. Также легко определить зависимые службы и запустить или остановить их по мере необходимости.



About the author

Я профессиональный аудиотехник и клавишник с опытом работы более 10 лет. Я работал в корпоративном мире в качестве консультанта и менеджера по продуктам, а в последнее время — инженером-программистом. Мои навыки и опыт позволяют мне работать над различными типами проектов от малого бизнеса до крупных компаний. Я также являюсь экспертом по Windows 11 и работаю над новой операционной системой уже более двух лет.



Related posts