Запущенные приложения, которые вы видите на экране, — это лишь малая часть того, что происходит в Windows. От управления драйверами устройств до обеспечения безопасности — множество фоновых процессов поддерживают работоспособность ПК с Windows.
Для любого системного администратора, контролирующего несколько компьютеров, важно иметь возможность просматривать состояние этих критически важных служб. Подход диспетчера задач слишком медленный для этого, и вы не можете автоматизировать его с помощью сценария.
Решение? Инструменты командной строки. Используя Командная строка или PowerShell, вы можете быстро получить информацию об операционных службах Microsoft, работающих в системе, что поможет вам быстро диагностировать любые проблемы.
Вывод списка служб Windows в командной строке
Хотя он и не такой гибкий и мощный, как Windows PowerShell, Командная строка по-прежнему является отличным инструментом для системных администраторов. Вы можете использовать запросэкс команда, чтобы получить статус как активных, так и отключенных служб, а затем используйте команду taskkill положить конец неприятным процессам.
- Чтобы использовать команду queryex, запустите командную строку от имени администратора. Вы можете найти приложение, выполнив поиск cmd в меню «Пуск».
- Существует множество способов использования команды sc queryex. Тип и состояние — два наиболее часто используемых параметра. Например, введите следующую команду, чтобы просмотреть все процессы Windows:
sc queryex тип = состояние службы = все
- Представление по умолчанию может быть немного подавляющим. Вы можете отображать только имена процессов, чтобы облегчить анализ списка:
sc queryex type=state=all | найдите /i «ИМЯ_СЛУЖБЫ:»
- По умолчанию команда выводит список всех активных процессов. Чтобы найти неактивные, измените параметр состояния:
тип sc queryex = состояние службы = неактивно
- Вы также можете запросить статус конкретного процесса по его имени. Это невероятно полезно для системных администраторов, поскольку они могут настроить пакетные файлы для одновременной проверки множества процессов. Вот пример:
sc запрос DeviceInstall
Листинг служб Windows в PowerShell
PowerShell задуман как специальная оболочка командной строки для современной Windows. Таким образом, он обеспечивает доступ практически ко всем компонентам операционной системы с помощью команд, и службы Windows не являются исключением.
Преимущество PowerShell в том, что его можно легко автоматизировать. Все команды PowerShell можно скомпилировать в сложные сценарии, что позволяет без проблем настраивать задачи системного администрирования на нескольких компьютерах.
- Начните с открытия PowerShell. Вы можете найти его в меню «Пуск»; просто обязательно запустите экземпляр с повышенными правами (т. е. от имени администратора).
- Самая простая команда для вывода списка служб Windows в PowerShell: Get-Сервис. Он показывает все службы на вашем компьютере, а также их статус и названия. Единственная проблема заключается в том, что список услуг может быть довольно длинным.
- Когда используешь Get-Сервис, лучше экспортировать список в текстовый файл. Вы можете сделать это с помощью каналов, например:
Get-Сервис | Исходящий файл «C:logsAll_Services.txt»
- Чтобы просмотреть статус конкретной услуги, следуйте инструкциям Get-Сервис команда с названием службы. Вы можете запросить статус нескольких процессов, разделив их имена запятыми.
Get-Service CryptSvc, COMSysApp
- Трубы также можно использовать для объединения Get-Сервис командлет с Where-Object функцию и отфильтруйте результаты по статусу. Следующая команда иллюстрирует это, получая все запущенные службы:
Get-Сервис | Где-Объект {$_.Status -EQ «Работает»}
Проверка зависимостей службы
Любой сложный процесс разбивается на множество взаимозависимых служб. Именно поэтому просто получить статус того или иного сервиса зачастую недостаточно. Вам также необходимо проверить состояние служб, от которых зависит служба.
- Чтобы просмотреть услуги, необходимые для конкретной службы, используйте -Обязательные услуги флаг с Get-Сервис командлет. Вот пример:
Get-Service -Name CryptSvc –RequiredServices
- Аналогично, чтобы получить список служб, зависящих от конкретной службы, воспользуйтесь функцией -Зависимые службы флаг.
Get-Service -Name CryptSvc -DependentServices
Эти два флага имеют решающее значение при написании сценариев для автоматического запуска или остановки служб Windows, поскольку они дают вам возможность отслеживать все службы, связанные с затронутой службой.
Список служб Windows на удаленных компьютерах
Метод PowerShell не ограничивается локальными компьютерами. Вы также можете использовать командлет Get-Service с тем же синтаксисом, который описан выше, для запроса процессов на удаленных компьютерах. Просто добавьте -Имя компьютера флаг в конце, чтобы указать, с какого удаленного компьютера следует получать информацию.
Рассмотрим пример:
get-service CryptSvc -ComputerName Workstation7
Управление службами Windows в PowerShell
Получение статуса служб — не единственное, что вы можете сделать в Windows PowerShell. Являясь полноценной средой сценариев, он предоставляет сценарии, альтернативные всем параметрам графического интерфейса.
Командлеты Powershell могут останавливать, запускать, перезапускать или даже изменять службы. В сочетании с автоматизированным Get-Сервис команд, можно написать сценарии PowerShell для полной автоматизации повседневных задач управления системой.
- Помимо запроса состояния служб, вы также можете использовать PowerShell для управления ими. Запуск или остановка служб можно выполнить с помощью одной команды, требующей только имени службы. Например, вот как вы можете остановить службу:
Stop-Service -Диспетчер очереди имен
- Запуск службы происходит аналогично:
Пуск-Сервис-Диспетчер очереди имен
- Если служба работает неправильно, вы также можете перезапустить ее:
Перезапустить-Служба-Диспетчер очереди имен
- Существует также командлет Set-Service, который можно использовать для изменения свойств службы. Здесь отключаем автоматический запуск службы Print Spooler:
Set-Service 'Spooler' -StartupType отключен
Как лучше всего составить список служб Windows?
Независимо от того, используете ли вы Windows 10 или Windows Server, возможность просмотра списка всех служб Windows может быть удобной. Вы можете диагностировать проблемы с критическими функциями системы или остановить ненужные службы Microsoft для повышения производительности.
Для этой цели PowerShell — лучший вариант. Хотя вы можете получить список служб в командной строке, дополнительные функции, предоставляемые PowerShell, более полезны.
Вы можете использовать командлеты PowerShell для получения статуса служб процессов Windows, фильтруя их по статусу или другим параметрам. Также легко определить зависимые службы и запускать или останавливать их по мере необходимости.