Список сервисов windows

Как открыть Службы в Windows 10: как зайти в консоль и посмотреть список

Список сервисов windows

Пользователи должны знать, как самостоятельно открыть консоль «Службы» в Windows 10. На этой платформе находится список всех вспомогательных программ и отображается их активность. Остановку или, наоборот, запуск любого сервиса можно выполнить из служебной консоли. Правда, пользователь должен помнить, что большинство программ на ПК взаимосвязаны. Остановка одной отобразится на других.

Что такое «Службы» в Windows 10

Для обеспечения нормальной работы компьютера и ОС Win 10 существуют различные вспомогательные программы и сервисы. Все они запускаются, как правило, автоматически (по умолчанию) при включении ПК.

От их функционирования зависит слаженная работа компьютера. Если какие-то сервисы не открываются, вернее, не запускаются, значит, пользователь нажал на «Стоп», то есть остановил выполнение этих программ.

Иногда приложения останавливаются самостоятельно из-за сбоя или неполадок в системе.

Отображаются все эти вспомогательные сервисы в списке консоли под названием «Службы». У каждого элемента, входящего в этот перечень, своя задача и функция.

Вызвать служебное окно (площадку) удастся с помощью такой команды (набора символов): «services.msc». Любой пользователь сможет найти и посмотреть список всех программ.

Разрешается даже отключать (останавливать) некоторые из приложений.

На каждом ПК имеется стандартный и расширенный наборы софтов. Увидеть весь список вспомогательных приложений можно, например, через Панель управления. Такая фраза (опция) закреплена в контекстном меню сервиса Пуск.

Активировав Панель управления, нужно нажать мышкой один раз на слово «Администрирование». В результате таких действий появится перечень сервисов, а в их числе потребуется отыскать «Службы».

Если опять нажать на найденное слово правой кнопкой мыши, то удастся перейти в новое окошко и попасть в искомую консоль.

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

Прежде чем отключать приложение, нужно посмотреть, от каких компонентов оно зависит. Ведь если нажать на «Стоп», то работа выбранного элемента остановится. К тому же остановка такого сервиса может отобразиться на других, связанных с ним, компонентах.

Как войти в «Службы»

Каждый пользователь сможет самостоятельно активировать консоль со списком служебных компонентов. Найти этот сервис у себя на ПК можно из рабочего стола, то есть, запустив и открыв Виндовс.

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

Через поиск в системе

Способ активации через поиск:

  • перейти из рабочего стола в Пуск;
  • активировать «Поиск»;
  • написать слова: msc;
  • задать путь: Windows (C:);
  • когда появится результат поиска, то есть слово «services», кликнуть по нему единожды для открытия и просмотра полного перечня компонентов служебного окна.

Управление компьютером

Как выполнить включение служебной консоли через «Управление компьютером»:

  • зайти из рабочего стола в Пуск;
  • всплывет контекстное меню на панели задач;
  • отыскать и активировать фразу «Управление компьютером»;
  • в открывшемся окне под названием «Управление компьютером» найти и активировать «Службы».

Конфигурация системы

Способ активации через «Конфигурацию системы»:

  • найти и активировать «Выполнить»;
  • в окошке написать символы: msconfig;
  • откроется окно под названием «Конфигурация системы»;
  • активировать одну из вкладок со словом «Службы».

Через панель управления

Способ активации через Панель управления:

  • в контекстном меню отыскать и вызвать Панель управления;
  • перейти в «Администрирование»;
  • в появившемся перечне отыскать и активировать «Службы».

Вводом команды

Для вызова служебной консоли со списком есть специальная команда «services.msc». Эти символы можно вводить в командную строчку или в ее аналог PowerShell. Вызвать служебную консоль удастся и через «Выполнить».

Способ активации через командную строку:

  • запустить командную строчку;
  • выполнить активацию служебной площадки.

Способ открытия через PowerShell:

  • написать слова: services.msc;
  • запустить площадку с полным набором служебных приложений.

Способ активации через «Выполнить»:

  • в появившемся окошке написать слова: services.msc;
  • кликнуть один раз на «ОК»;
  • запустить площадку.

Папка на диске

Как посмотреть, где находится папка с содержимым «services»:

  • активировать «Мой компьютер»;
  • перейти на диск «С»;
  • отыскать папку «Windows»;
  • развернуть ветку;
  • найти «system 32» и развернуть;
  • отыскать слово «services»;
  • кликнуть по найденному слову один раз;
  • откроется служебная консоль.

Важно! Папку с «services» удастся найти через Проводник. Необходимо лишь активировать этот сервис и задать в поисковой строчке путь, то есть написать: C:\Windows\System32.

Как отключить ненужные службы

Прежде чем остановить активность конкретной программы, нужно изучить ее зависимости. Узнать такую информацию удастся из специальной консоли, на которой размещен перечень (стандартный и расширенный) всех вспомогательных приложений, работающих на ПК. Нужно лишь выбрать конкретный сервис и вызвать для него окошко «Свойства».

Как узнать о зависимых компонентах:

  • вызвать Панель управления (через Пуск);
  • отыскать и активировать «Администрирование»;
  • найти слово «Службы» и кликнуть по нему один раз;
  • появится одноименная консоль со списком (расширенным и стандартным);
  • выделить конкретное приложение и кликнуть по нему;
  • появится окошко со свойствами;
  • отыскать вкладку «Зависимости»;
  • появится два списка:
  • 1) перечень компонентов, от которых зависит данная служба;
  • 2) перечень компонентов, которые зависят от данного сервиса.

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

Как отключить конкретное приложение через Панель управления:

  • через Пуск и Панель управления вызвать консоль «Службы»;
  • в списке отыскать компонент, работу которого требуется остановить;
  • кликнуть один раз по этому элементу;
  • всплывет окошко «Свойства»;
  • открыть в нем вкладку под названием «Общие»;
  • выставить режим «Ручной» для функции «Тип запуска»;
  • если написано «работает», то нажать на кнопку «Стоп» или «Остановить»;
  • сохранить измененные функции.

Способ деактивации приложения через «Выполнить»:

  • перейти в Пуск;
  • вызвать «Выполнить»;
  • появится консоль;
  • выбрать из перечня конкретное приложение;
  • вызвать для него окошко «Свойства»;
  • в строчке «Тип запуска» выставить функцию «Отключено»;
  • «Применить» измененный параметр.

Способ деактивации из командной строки:

  • вызвать командную строчку на администраторских правах;
  • написать команду (символы): sc config “наименование компонента” start= disabled.

Способ отключения приложения через «Редактор реестра» (если в окошке «Свойства» неактивна строчка «Тип запуска»):

  • предварительно запустить «Службы» и посмотреть полное наименование отключаемой программы;
  • активировать «Выполнить»;
  • написать символы: regedit;
  • появится окно под названием «Редактор реестра»;
  • перейти в самый конец: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\;
  • в списке «services» отыскать программу для отключения;
  • кликнуть один раз по выбранному компоненту;
  • в открывшемся перечне найти параметр «Start»;
  • кликнуть дважды по этому параметру;
  • в окне «Изменение параметра» в строчке «Значение» выставить «4»;
  • нажать один раз на «ОК» и выполнить перезагрузку ПК.

Важно! При деактивации конкретной программы вначале рекомендуется убедиться, что ее отключение не повлечет изменение жизненно важных процессов на ПК. Информация о зависимых компонентах находится в окошке «Свойства» во вкладке под названием «Зависимости». Выключение конкретного сервиса может повлиять на работу компьютера или состояние ОС.



Источник: https://it-tehnik.ru/windows10/nastroyka/kak-otkryt-sluzhby.html

Управляем службами Windows с помощью PowerShell

Список сервисов windows
Начинаем серию переводов, посвященную управлению службами Windows с помощью PowerShell 2.0 и 3.0.

В данном посте будут рассмотрены следующие вопросы управления службами Windows:

  • Получаем статус службы на локальном компьютере
  • Получаем статус службы на удаленном компьютере
  • Осуществляем фильтрацию служб (например, остановленные службы)
  • Зависимые службы

Обозначим начальные условия: Вы работаете под Windows 7 и выше и у Вас имеются права администратора. Все команды рекомендуются выполнять в лабораторной или виртуальной среде, перед тем, как применять в “полевых условиях”.

Давайте начнем с того, что просто получим статус всех служб, запущенных на локальном компьютере. Используем для этого командлет Get-Service.

PS C:\> get-service PowerShell, как правило, не чувствителен к регистру. Вывод приведен на скриншоте ниже.

Каждая строка представляет собой объект службы (service object).Каждый сервисный объект, как правило, имеет свои свойства. Вы можете открыть их, просто передав эти объекты в другую команду, Get-Member.

PS C:\> get-service | get-member Результаты приведены на скриншоте ниже.

Параметр Typename сверху говорит о том, что за объект перед нами; в данном случае это System.ServiceProcess.ServiceController. На скриншоте также обведены свойства объекта. Это атрибуты, которые описывают этот тип объекта. Хотя большинство из них не используются при отображении по умолчанию, вы можете использовать их, если вы их знаете.

Например, нам интересно посмотреть информацию только о Windows Update. Через Get-Service получим информацию только о некоторых ее свойствах. PS C:\> get-service wuauserv | select Displayname,Status,Can*DisplayName : Windows UpdateStatus : StoppedCanPauseAndContinue : FalseCanShutdown : FalseCanStop : False Как я узнал, что могу напечатать имя службы? Посмотрел с помощью Get-Service. PS C:\> help get-service Вы можете получить полную справочную информацию, напечатав: PS C:\> help get-service –full Информацию о службе можно получить по ее имени или даже начальным буквам имени. PS C:\> get-service wi*Status Name DisplayName—— —- ———–Stopped WiaRpc Still Image Acquisition EventsRunning WinDefend Windows Defender ServiceRunning WinHttpAutoProx… WinHTTP Web Proxy Auto-Discovery Se…Running Winmgmt Windows Management InstrumentationRunning WinRM Windows Remote Management (WS-Manag…

Или если вам удобнее работать с отображаемыми именами, используйте параметр –Displayname.

PS C:\> get-service -DisplayName “windows a*”Status Name DisplayName—— —- ———–Stopped AllUserInstallA… Windows All-User Install AgentRunning AudioEndpointBu… Windows Audio Endpoint BuilderRunning Audiosrv Windows Audio Я должен использовать имя параметра, чтобы PowerShell воспринимал значения в качестве отображаемого имени, а не фактического имени службы. Команда будет выглядеть так: PS C:\> get-service “windows a*”

Параметр –Name можно не печатать.

До этого нас интересовало получение информации о статусе служб на локальном компьютере. Однако управление службами осуществляется на удаленных компьютерах. Если посмотреть справку по Get-Service, то можно увидеть наличие у этого командлета параметра –Computername.

В данном случае подключение к удаленным компьютерам осуществляется без включения функции удаленного управления PowerShell. Если вы можете управлять службами, используя инструменты командной строки (sc.exe или консоль управления Service Manager), вы можете использовать PowerShell.

Давайте взглянем на пример:

PS C:\> get-service spooler -ComputerName novo8Status Name DisplayName—— —- ———–Running spooler Print Spooler Любая команда, которую я демонстрировал, можно использовать для передачи удаленному компьютеру. Даже нескольким компьютерам, если у вас есть соответствующие права на удаленном компьютере. Если вы используете PowerShell v3, то можно легко выбрать одну службу на множестве компьютеров. PS C:\> get-service wuauserv -ComputerName chi-dc01,chi-dc02,chi-dc03Status Name DisplayName—— —- ———–Running wuauserv Windows UpdateStopped wuauserv Windows UpdateRunning wuauserv Windows Update Для наглядности представления отформатируем вывод. PS C:\> get-service wuauserv -ComputerName chi-dc01,chi-dc02,chi-dc03 | format-table Name,Status,Machinename -autosizeName Status MachineName—- —— ———–wuauserv Running chi-dc03wuauserv Stopped chi-dc02wuauserv Running chi-dc01 Тот же самый результат, но в PowerShell v2. PS C:\> 'chi-dc01','chi-dc02','chi-dc03'| foreach {get-service wuauserv -computername $_} | Format-Table Name,Status,Machinename -AutoSizeName Status MachineName—- —— ———–wuauserv Running chi-dc01wuauserv Stopped chi-dc02wuauserv Running chi-dc03

Фильтрация служб осуществляется с помощью командлета Where-Object (where – сокращение для командлета). Все, что нам нужно от PowerShell в этом случае, так это получить только те службы, у которых статус равен “stopped”.

PS C:\> get-service | where {$_.status -eq 'stopped'} PowerShell получает информацию обо всех службах и передает их (с помощью “|”) в следующую команду, которая осуществляет просмотр каждого объекта. Если свойство статуса объекта равно “stopped”, она остается в конвейере (pipeline), в противном случае она из него исключается. В конце выражение PowerShell отображает те объекты, которые остались в конвейере. Результаты приведены ниже. Теперь давайте попробуем найти одну службу на нескольких машинах. Вывод отформатируем в таблицу. PS C:\> get-service -computername @('chi-dc01','chi-dc02','chi-dc03') | where {$_.name -eq 'wuauserv'} | format-table Name,Status,Machinename -autosizeName Status MachineName—- —— ———–wuauserv Running chi-dc02wuauserv Running chi-dc01wuauserv Running chi-dc03 Мы даже можем комбинировать запрос отдельных служб с их фильтрацией. PS C:\> get-service “win*” -comp chi-dc03 | where {$_.status -eq 'running'}Status Name DisplayName—— —- ———–Running Winmgmt Windows Management InstrumentationRunning WinRM Windows Remote Management (WS-Manag… Эта команда находит все службы на компьютере CHI-DC03, которые начинаются с ‘WIN’, но отображает только те, которые запущены. Также можно сгруппировать объекты по свойству статуса (status property). PS C:\> $dc03 = get-service -computername chi-dc03 | Group-Object -Property Status Переменная $dc03 является объектом GroupInfo. PS C:\> $dc03Count Name Group—– —- —–64 Running {System.ServiceProcess.ServiceController, Sy…79 Stopped {System.ServiceProcess.ServiceController, Sy…

Свойство Group представляет собой коллекцию связанных служб.

PS C:\> $dc03.Get(0).group Написанное выше проще понять, если взглянуть на скриншот. Что касается меня, то я бы предпочел использовать хеш-таблицу. PS C:\> $hash = get-service -computername chi-dc03 | Group-Object -Property Status -AsHashTablePS C:\> $hashName Value—- —–Running {System.ServiceProcess.ServiceController, Sys…Stopped {System.ServiceProcess.ServiceController, Sys… Теперь каждое имя представляет собой свойство в хеш-таблице. Если у вас имеется опыт работы с PoweShell, вы, возможно, подумываете сделать сделующее: PS C:\> $hash.running.count Однако ничего не произойдет. Потому что свойство Status является просто перечислением (enumeration) для [System.ServiceProcess.ServiceControllerStatus] .NET клас и такие свойства, как Running и Stopped представляют собой целые числа. PowerShell осуществляет конвертацию, чтобы представить в более наглядной форме. PS C:\> $hash = get-service -computername chi-dc03 | Group-Object -Property Status –AsHashTable –AsString В чем суть параметра –AsString, на мой взгляд, достаточно очевидно. Теперь работать с хеш-таблицей стало проще. PS C:\> $hash.running.count62PS C:\> $hash.running[0..3]Status Name DisplayName—— —- ———–Running ADWS Active Directory Web ServicesRunning AppHostSvc Application Host Helper ServiceRunning BFE Base Filtering EngineRunning BrokerInfrastru… Background Tasks Infrastructure Ser… Следующей задачей на повестке дня является проверка зависимостей сервера (server dependencies). PowerShell позволяет просто получить статус всех служб, которые требуется для данной службы, даже на удаленном компьютере. PS C:\> get-service dns -ComputerName chi-dc03 –RequiredServicesStatus Name DisplayName—— —- ———–Running Afd Ancillary Function Driver for WinsockRunning Tcpip TCP/IP Protocol DriverRunning RpcSs Remote Procedure Call (RPC)Running NTDS Active Directory Domain Services Параметр –RequiredServices передаст объект в конвейер для каждой требуемой службы. Вы можете даже пойти дальше и проверить требуемые службы для работы данной службы.
PS C:\> get-service dns -ComputerName chi-dc03 -RequiredServices | select name,@{name=”computername”;expression={$_.machinename}} | get-service -RequiredServicesStatus Name DisplayName—— —- ———–Running RpcEptMapper RPC Endpoint MapperRunning DcomLaunch DCOM Server Process Launcher

Параметр –Computername командлета Get-Service возьмет вывод, но только для тех объектов, у которых есть объект свойство Computername – именно поэтому я использую хеш-таблицу с Select-Object. Как мы видим проблем со службой DNS на компьютере CHI-DC03 нет.

Мы можем сделать то же самое с зависимыми службами. Если таковых не имеется, в конвейер ничего передано не будет. PS C:\> get-service dns -ComputerName chi-dc03 -DependentServicesPS C:\> get-service lanmanworkstation -ComputerName chi-dc03 -DependentServicesStatus Name DisplayName—— —- ———–Stopped SessionEnv Remote Desktop ConfigurationRunning Netlogon NetlogonRunning Dfs DFS NamespaceRunning Browser Computer Browser Требуемые и зависимые службы также являются частью каждого объекта службы. PS C:\> get-service rpcss | Select *servicesRequiredServices DependentServices—————- —————–{RpcEptMapper, DcomLaunch} {WwanSvc, wuauserv, WSearch, wscsvc…} А пока Вы можете получить все зависимости для всех служб, следующая команда PS C:\> get-service –DependentServices Это не даст вам особо полезную информацию, поэтому я рекомендую осуществлять запрос по конкретным службам. Команда работает гораздо лучше PowerShell v3. PS C:\> get-service dns -comp chi-dc01,chi-dc03 -RequiredServices | Sort Machinename,Name | Format-table -GroupBy machinename Результаты видны на скриншоте ниже. Чтобы получить подобные результаты в PowerShell v2, вам придется передать имена компьютеров (computernames) в Get-Service.PS C:\> “chi-dc01″,”chi-dc03” | foreach { get-service dns -comp $_ -RequiredServices} | Sort Machinename,Name | format-table -GroupBy machinename В следующей статье будет рассмотрен запуск, остановка и перезапуск служб. Конец перевода.

Upd:

В посте приведены переводы статей с портала 4sysops.com
Managing Services the PowerShell way – Part 1
Managing Services the PowerShell way – Part 2

P.S. Хотим также поделиться нашей бесплатной программой для управления службами Windows – NetWrix Service Monitor.

Программа отслеживает все автоматически запускаемые службы на группе серверов и в случае внезапного сбоя одной или нескольких из них отправляет уведомления по электронной почте.

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

Источник: https://habr.com/ru/company/netwrix/blog/166289/

Получение списка и запуск служб Powershell Service и управление

Список сервисов windows

Для управления службами в Powershell есть восемь команд с помощью которых мы можем контролировать весь процесс работы сервисов и создавать новые. Что бы увидеть весь список команд созданных в PS для работы с сервисами нужно выполнить:

Get-Command -Noun Service

Мы увидим следующие командлеты:

  • Get-Service – получение списка служб в Powershell.
  • New-Service – создание нового сервиса.
  • Restart-Service – перезапуск службы.
  • Resume-Service – восстанавливает работу остановленного сервиса.
  • Set-Service – изменение настроек.
  • Start-Service – запуск службы в Powershell.
  • Stop-Service – остановка.
  • Suspend-Service – приостановка работы (пауза).

Учитывайте, что в виде команд делается не полное управление сервисами. Например удаление делается через WMI, которое тоже будут рассмотрены.

Получение списка служб

Узнать статус всех служб можно так:

Get-Service

Каждый результат выдаваемый командами в PS представляет собою объект. Этот объект содержит разные свойства и методы. Свойства – это например имя или статус. По умолчанию мы видим не все свойства. Что бы узнать какие еще свойства есть у команды нужно выполнить следующее:

Get-Service | Get-Member -MemberType Properties

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

Get-Service | SELECT *

Возможно вывести только имена, статус и тип запуска:

Get-Service | Ft Name, Status, StartType

Или выведем информацию по одному сервису:

Get-Service “WinRM” | Ft Name, Status, StartType

У сервисов есть короткое имя и отображаемое. Так мы выведем оба:

В именах мы можем использовать маски, а это значит что мы можем не знать полное название и использовать знак * в том месте, где не уверены в названии или написании:

Get-Service -DisplayName “Win*” | Ft Name, DisplayName, Status, StartType

Не желательно указывать отображаемое имя так как язык операционных систем может быть разным и если вы выполняете командлеты удаленно, вероятно будут ошибки:

  • Cannot find any service with service name
  • Cannot find any service with display name
  • Не удается найти службу с отображаемым именем

Кроме этого есть два ключа, которые тоже поддерживают маски:

  • Include – включают поиск по какой-то маске или точному соответствию.
  • Exclude – исключает упоминание.

Можно сравнить разницу с прошлым примером:

Get-Service -Name “Win*” -Include “*RM” -Exclude “*mgmt”,”*Http*”,”*Defend” | Ft Name, Status, StartType

У сервисов несколько статусов:

  • Running – запущен.
  • Stopped – остановлен.
  • Paused – приостановлен (пауза).

По каждому из них мы можем отфильтровать результат:

Get-Service | where -Property Status -eq Stopped

Кроме этого есть 3 типа запуска:

  • Automatic – автоматический запуск вместе с системой.
  • AutomaticDelayedStart – запуск после загрузки системы.
  • Manual – ручной запуск.
  • Disabled – отключенный.

Допустим, что у нас есть какая-то проблема в операционной системе и мы хотим проверить все сервисы, который автоматически запускаются при включении ОС. Для этого нам нужно использовать несколько условий, где статус не равен Running и тип запуска равен Automatic:

Get-Service | where -FilterScript {$_.Status -ne 'Running' -and $_.StartType -eq 'Automatic'} | ft 'Name','StartType','Status'

Службы могут быть зависимы от других и для проверки этих свойств есть два параметра:

  • DependentServices – кто зависит от этого сервиса.
  • RequiredServices – от кого зависит этот сервис.

Get-Service -DisplayName 'Windows Remote Management (WS-Management)' -RequiredServices -DependentServices

Аналогично параметрам команды выше есть свойства DependentServices и ServicesDependedOn (RequiredServices). Они выводят одно и то же.

Есть несколько свойств, которые не выведены в параметры – это:

  • CanPauseAndContinue – можно ли приостановить работу сервиса и возобновить.
  • CanShutdown – может ли быть выключен.
  • CanStop – может ли быть полностью остановлен.

Эти свойства так же можно увидеть в GUI. В командлете ниже я использую алиас gsv (короткое имя Get-Service):

gsv -ServiceName 'Winrm' | SELECT CanPauseAndContinue,CanShutdown,CanStop | fl

Каждая команда PS, где присутствует параметр ComuterName, может быть выполнена удаленно. Для удаленного управления в Powershell нужны дополнительные настройки, которые уже описывались в предыдущей статье. 

Имена всех компьютеров, с которых мы хотим получить имена сервисов, можно указать через запятую:

gsv -ComputerName 'AD1','localhost' | where Status -eq 'Stopped' | Select MachineName,Name,Status,StartType

 

Вам так же будет интересно:

Остановка, перезапуск и запуск служб

Чтобы в Powershell запустить службу и остановить достаточно указать только имя. Причем можно указывать как короткое и отображаемое имя:

Stop-Service -Name 'WinRM' Start-Service -DisplayName 'Служба удаленного управления Windows (WS-Management)'

Можно выполнить получение, остановку и запуск в одну команду:

gsv 'WinR*' | Stop-Service | Start-Service

 Во большинстве командлетах PS, которые делают изменения, можно увидеть два параметра. Первый – это WhatIf, который покажет результат выполнения командлета, но не попытается ее выполнить. Такие параметры удобно использовать при выполнении сложных задач типа кластеров. Второй параметр Confirm, который потребует подтверждение перед выполнением. Вместе эти параметры не работают:

Stop-Service -DisplayName 'Windows Remote Management (WS-Management)' -Confirm

В запуске и остановке так же можно использовать параметры фильтрации, которые вы видели при получении статусов выше. Будьте осторожны перед выполнением так как вы можете остановить все службы:

Stop-Service 'WinR*' -Include '*M' Start-Service 'WinR*' -Include '*M' Если с сервисом работает другой сервис, то мы не завершим его работу и нужно указать дополнительный ключ Force:
Stop-Service 'WinRM' -Force

Если он не стоит появится ошибка:

  • Cannot stop service 'Remote Procedure Call (RPC) (RpcSs)' because it has dependent services. It can only be stopped if the Force flag is set.
  • Не удается получить доступ к зависимым службам “Удаленный вызов процедур (RPC) (RpcSs)”.

Как уже было описано выше сервисы могут быть зависимы от других и в таком случае запуск может не получится. На примере ниже я получил все родительские сервисы (от которых зависит Spooler) и запустил их, а затем запустил требуемый:

$sub_services = Get-Service 'Spooler' $sub_services.RequiredServices | Start-Service $sub_services.Name | Start-Service

Перезапуск сервисов работает так же со всеми параметрами:

Restart-Service 'WinRM'

Удаленный запуск и остановка командлетами не предусмотрена, но это исправляется стандартными методами:

Invoke-Command -ComputerName 'AD1','localhost' -ScriptBlock {Start-Service 'WinRM'}

Восстановление и приостановка работ служб

Не каждую службу можно приостановить (Pause) и восстанавливть. Что бы увидеть все службы, у которых есть такая возможность, выполните:

Get-Service | where CanPauseAndContinue | select -Property Name,CanPauseAndContinue,DisplayName

Командой ниже мы получи, нажмем паузу и восстановим работу сервиса Winmgmt:

Get-Service -Name 'Winmgmt' | Suspend-Service | Resume-Service

Ошибки, если мы попытаемся остановить службу у которых нет такой возможности:

  • Service 'Windows Remote Management (WS-Management)' cannot be suspended because the service does not support beingsuspended or resumed. 
  • Не удается приостановить службу “Spooler”, так как этой службой не поддерживается приостановка или возобновление.

В этих командах так же можно использовать параметры Include и Exclude, с масками. 

На скрипте ниже показана проверка возможности приостановки сервиса, если у него есть такая возможность. Если ее нет, то сервис остановит свою работу:

# Закомментировано от случайностей #$srv = 'Winmgm*' $srv_suspend_on = (Get-Service $srv).CanPauseAndContinue if ($srv_suspend_on){Suspend-Service $srv} else {Stop-Service $srv}

Изменение с Set-Service

Командлетом ниже я изменил тип запуска сервиса с отключенного на автоматический:

Set-Service 'WinRM' -StartupType Automatic

В случае изменения сервисов нельзя использовать маски *. 

В документации Microsoft говориться про возможность изменения на четыре режима со следующими названиями:

  1. Automatic
  2. AutomaticDelayedStart
  3. Disabled
  4. Manual

Во первых половина называется иначе и изменение не срабатывает. Возможно изменение не срабатывает из-за багов Windows Server 2019,может из-за зависимостей (в GUI все работает), но скорее всего дело в PS. При работе с WMI все срабатывает. Реальные варианты запуска такие:

  1. Automatic
  2. Boot
  3. Disabled
  4. Manual
  5. System

Через эту команду можно так же выполнить запуск и остановку:

Set-Service 'WinRM' -Status Stopped

Все возможные значения:

Можно изменить описание сервиса:

Set-Service 'WinRM' -Description 'что вы сделали с PS'

Команды изменения можно выполнять удаленно:

Set-Service WinRM -ComputerName 'AD1' -StartupType Automatic

Создание сервисов с New-Service

Для создания сервиса необходимо указать два параметра – это имя и путь до бинарного файла:

New-Service -Name 'TestService' -BinaryPathName 'C:\test.exe'

В PS 5.1 не предусмотрена команда удаления, она появилась в версии 6.1, которая устанавливается отдельно и может работать иначе. Для удаления сервисов, а так же частичного изменения, используется WMI. Указывайте все возможные параметры, что бы в последующем не лезть в WMI.

Параметры, которые в последующем нельзя будет изменить через PS:

  • DisplayName – полное отображаемое имя.
  • Credential  – учетная запись, под которой будет происходить запуск.
  • DependsOn – от кого будет зависеть.

$credential = Get-Credential New-Service -Name 'TestService1' -BinaryPathName 'C:\test.exe' -DisplayName 'Testing Services In Powershell' -Credential $credential -DependsOn WinRM

При объявлении переменной $credential у нас запросятся учетные данные (логин/пароль). По умолчанию сервис работает под текущим аккаунтом. Я создавал сервис на доменном компьютере и пока я не ввел FQDN вид user@domain.local я получал ошибку:

  • Service 'Testing Services In Powershell (TestService1)' cannot be created due to the following error: The account name is invalid or does not exist, or the password is invalid for the account name specified

Кроме этого есть параметры, которые возможно изменить через команды выше:

  • Description – описание.
  • StartupType – тип запуска.

New-Service 'InstallService' -BinaryPathName 'C:\test.exe' -Description 'Descr' -StartupType Automatic

Получение с помощью WMI класса

За работу со службами в WMI отвечает класс win32_service. Преимущества такого подхода в том, что тут можно посмотреть и изменить все детали работы сервисов. Более подробно WMI в Powershell мы уже рассматривали.

Что бы получить список аналогичный Get-Service выполните:

Get-WmiObject -Class 'Win32_Service' | ft

В классе WMI можно увидеть больше свойств, которые можно использовать:

Get-WmiObject -Class 'Win32_Service' | Get-Member -MemberType Properties

Одно из преимуществ использования в WMI это то, что мы можем увидеть идентификатор процесса под которым работает сервис. Если сервис остановлен, то его идентификатор 0. Так мы увидим идентификатор процесса с именем WinRM и получим всю информацию по процессу:

$srv = Get-WmiObject -Class Win32_Service | Where -Property Name -eq 'WinRM' $srv.ProcessId Get-Process -Id $srv.ProcessId

О том как работать с процессами в Powershell мы писали в прошлой статье. 

С помощью WMI мы можем вернуть имя аккаунта, под которым запущена служба и ее описание. Используя параметр ComputerName это можно сделать удаленно на множестве компьютеров:

Get-WmiObject -ComputerName 'AD1','localhost' -Class Win32_Service | ft Name,StartName,Description -AutoSize

Изменение с помощью WMI класса

Для управления в WMI существую методы. Все методы класса можно получить так:

Get-WmiObject -Class 'Win32_Service' | Get-Member -MemberType Method

Удалим сервис, который создавался через New-Service:

Get-WmiObject -Class 'Win32_Service' | Get-Member -MemberType Method

Для изменения паролей нужно использовать следующую конструкцию. После выполнения команды сервис нужно перезапустить:

# Логин пользователя $user = 'ServiceUser' # Пароль пользователя $password = 'Pass0000' # Имя сервиса $srv_name = 'ServiceName' $srv = Get-WmiObject -Class win32_service | where -Property Name -eq $srv_name $srv.Change($null,$null,$null,$null,$null,$null,$null,$null,$null,$user,$password)

$null установлены у всех параметров, которые мы не хотим изменять. В нашем случае нужно изменить только логин и пароль и они указаны в переменных. Увидеть какие параметры не меняются с $null можно так:

$srv = get-wmiobject win32_service | where Name -eq Winrm $srv.GetMethodParameters(“change”)…

#powershell

Источник: https://fixmypc.ru/post/poluchenie-spiska-i-zapusk-sluzhb-powershell-service-i-upravlenie/

Получение списка служб средствами командной строки и сервера Windows Script Host

Список сервисов windows

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

Но, сначала немного лирики … рядовой пользователь ОС Windows всегда находится в самообмане: если он крякнул антивирусную программу, значит она его защитит перед всеми злодеями, если у него модная Семерка, значит он мастер, а у кого XP, так те – цифровые динозавры.

Любой программный код подвержен ошибкам и багам, так в старых версиях XP была учетная запись Администратор (Administrator), она не отображалась при загрузке, но была активной, естественно, пароль на ней не стоял, и ваш сосед по комнате мог спокойно, в момент вашего отсутствия войти в систему с правами администратора и наколдовать что угодно, для этого достаточно было в окне выбора пользователя ввести заветную комбинацию CTRL + ALT + DEL, далее ввести имя юзера Администратор (Administrator) и нажать вход, и … вуалая, вы в системе!!! Тоже относится и к сервисам, практически все они работают под системной учеткой, на которой также нет ни пароля, ни ограничений, если они активны, ну… например, telnet, или служба Удаленный реестр, то… тоже можно нашалить.

И поэтому, в этой статье мы попробуем получить список служб используя командную строку и сценарии Windows Script Host, кодить будем на языке vbscript и jscript.

Сам сервер Windows Script Host не предоставляет объекта для работы со службами системы, тут есть два пути или утилиты командной строки, или WMI. В этой статье мы рассмотрим первый способ, и так… усаживайтесь поудобней, берите пиво и тараньку, … начинаем.

Если запустить командную строку и прописать на выполнение строчку sc query, то мы получим список и параметры всех сервисов Windows, при желании, его можно импортировать в текстовый файл:

Sc query> “D:\work\service.txt”

Тут мы указали, что данные должны выводиться не на экран, а в текстовый файл service.txt в папку D:\work\. Лады, давайте взглянем, что нам наколдовала утилита sc query:

Из скрина видно, что информация о службе выводится в отдельном блоке, давайте его проанализируем:

SERVICE_NAME: AudioSrv – тут отображается сокращенный формат названия
DISPLAY_NAME: Windows Audio  – описательный формат имени службы
TYPE               : 20  WIN32_SHARE_PROCESS  – тип службы
STATE              : 4  RUNNING(STOPPABLE,NOT_PAUSABLE,IGNORES_SHUTDOWN) – состояние и параметры работы
WIN32_EXIT_CODE    : 0       (0x0)
SERVICE_EXIT_CODE  : 0    (0x0)
CHECKPOINT         : 0x0
WAIT_HINT          : 0x0

Последние четыре строки нам пока не представляют интерес.

Ладно, теперь давайте посмотрим, как можно задать параметры фильтрации:

type — определяем тип, например, driver – драйвер, service – сервис (стоит по умолчанию), all – все.
state — определяет статус, например, active – активная (значение по умолчанию), inactive – неактивная, all – все.

bufsize — размер буфера перечисления в байтах, по умолчанию 4096
ri – номер индекса, начиная с которого начинается или возобновляется перечисление, по умолчанию значение 0
group — группа служб для перечисления, по умолчанию стоит all groups.

И так, что бы задать фильтр, мы прописываем команду sc query,пробел, далее пишем имя фильтра, знак равенства, пробел и значение.

Так, что бы получить список неактивных служб, командная строка требует следующий синтаксис:

Sc query state= inactive> “D:\work\service.txt”

В свое время, на это я ставил точку и заканчивал статью, но… не на этом блоге.

Давайте сделаем так, что бы в диалоговом окне задать нужные параметры, и получить полный или отфильтрованный список, ясен пень, что в командной строке это не реализовать, то мы будет использовать сценарии сервера WSH и объект WindowSystemObject.

Вот как выглядит будущая форма для сценария:

Сперва мы напишем пример на языке vbscript, я в нем все разъясню, что бы было понятно, что к чему, а потом на его основе мы напишем пример на языке jscript.

И так, приступаем!!!

' ***********************************************************' Список служб командная строка' service.vbs' ***********************************************************Option Explicit dim WSO, WshShell, FSOdim f, t, cur_dir, temp_file, edit1dim type_f, state_f, bufsize_f, ri_fdim Button_Analice, Button_Open, Button_Clearedim data_file '*************создаем ссылки на объекты*************     set WSO = CreateObject(“Scripting.WindowSystemObject”)     set WshShell = CreateObject(“Wscript.Shell”)     set FSO = CreateObject(“Scripting.FileSystemObject”)'*************************************************************************'Задаем начальные размеры и отступыset f = WSO.CreateForm(0,0,0,0)'Задаем через свойства ширину и высотуf.ClientWidth = 600f.ClientHeight = 650'Центрируем формуf.CenterControl()'Заголовок окнаf.Text = “Список служб командная строка”'нельзя менять размерыf.SizeGrip = false'нельзя развернуть формуf.MaximizeBox = false ' Текущий каталог     cur_dir = WshShell.CurrentDirectory' путь к временному файлу     temp_file = WShShell.ExpandEnvironmentStrings(“%TEMP%”) & “\” & FSO.GetTempName 'Поле для вывода данныхset edit1 = f.CreateEdit(0,0,400,650,WSO.Translate(“ES_MULTILINE”))edit1.ScrollBars = WSO.Translate(“SS_BOTH”)edit1.ReadOnly = trueedit1.WordWrap = true '**************************** Тип ********************************************f.TextOut 410,10,”Тип:”'Списокset type_f = f.CreateComboBox(480,10,100,20,WSO.Translate(“CBS_DROPDOWNLIST”))      type_f.add(“driver”)type_f.add(“service”)type_f.add(“all”)type_f.ItemIndex=2'*****************************************************************************************'**************************** Статус ********************************************f.TextOut 410,40,”Статус:”'Списокset state_f = f.CreateComboBox(480,40,100,20,WSO.Translate(“CBS_DROPDOWNLIST”))      state_f.add(“active”)state_f.add(“inactive”)state_f.add(“all”)state_f.ItemIndex=1'*****************************************************************************************'**************************** Буфер ********************************************f.TextOut 410,70,”Буфер:”'Поле для вводаset bufsize_f = f.CreateEdit(480,70,100,20,WSO.Translate(“ES_MULTILINE”))'Задаем тип вводимых данныхbufsize_f.DataType=WSO.Translate(“DT_INTEGER”)bufsize_f.Text=”4096″'*****************************************************************************************'**************************** Номер индекса ********************************************f.TextOut 410,100,”Индекс:”'Поле для вводаset ri_f = f.CreateEdit(480,100,100,20,WSO.Translate(“ES_MULTILINE”))'Задаем тип вводимых данныхri_f.DataType=WSO.Translate(“DT_INTEGER”)ri_f.Text=”0″'*****************************************************************************************'*******************************************************************'' кнопка получения данныхset Button_Analice = f.CreateButton(480,130,100,25,”Анализировать”)Button_Analice.OnClick = getref(“Analize”) ' кнопка очистки данныхset Button_Cleare = f.CreateButton(480,160,100,25,”Очистить”)Button_Cleare.OnClick = getref(“Cleare”) 'кнопка открытия файла с даннымиset Button_Open = f.CreateButton(480,190,100,25,”Открыть”)Button_Open.OnClick = getref(“Open”) set t = f.CreateHyperLink(450,230,250,25,”www.scriptcoding.ru”) f.Show()WSO.Run() 'Очищаем поля вывода информацииfunction Cleare()     edit1.Text=””     data_file=””end function 'Отправка запросаfunction Analize()dim type_date, state_date, bufsize_date, ri_datedim get_file_data     Cleare()     type_date = ” type= ” & type_f.Text     state_date = ” state= ” & state_f.Text     bufsize_date = ” bufsize= ” & bufsize_f.Text     ri_date = ” ri= ” &  ri_f.Text     if type_f.Text = “service” then type_date = “” end if     if state_f.Text = “active” then state_date = “” end if 'запуск командной строки для получения списка служб с выводом данных в файл     WshShell.Run “cmd.exe /c sc query” & type_date & state_date & bufsize_date & ri_date & ” > ” & temp_file,1,true '***********открываем файл для считывания данных*********************     set get_file_data=FSO.OpenTextFile(temp_file, 1, false)     data_file = get_file_data.ReadAll     get_file_data.Close'***********************************************************************************     edit1.Text = data_fileend function function Open()' открываем временный файл     WshShell.Run “wordpad.exe ” & temp_fileend function

Источник: http://scriptcoding.ru/2013/08/06/spisok-sluzb-cmd/

Список служб Windows: отключаем уязвимое и тормозящее

Список сервисов windows

Список служб, которые чаще всего подвергаются внешним атакам и которые лучше отключить:

Удаленный реестр (RemoteRegistry) – позволяет удаленным пользователям изменять параметры реестра на вашем компьютере; если остановить эту службу, реестр может быть изменен только локальными пользователями, работающими на компьютере.

Службы терминалов (TermService) -предназначена для удалённого подключения к вашей машине по сети с возможностью управления ею. Она предоставляет возможность нескольким пользователям интерактивно подключаться к компьютеру и отображает рабочий стол и приложения на удаленных компьютерах.

Служба обнаружения SSDP (SSDPSRV) – включает обнаружение UPnP-устройств в домашней сети. UPnP, или Universal Plug and Play – это универсальная автоматическая настройка и подключение сетевых устройств друг к другу, в результате чего сеть (например, домашняя) может стать доступной большему числу людей.

Служба сообщений (Messenger) – служба посылает выбранным пользователям и компьютерам административные оповещения. При отсутствии сети (и соответственно администратора) абсолютно бесполезна. Отключаем для того, чтобы запретить net send сообщения для скрытия вашего компьютера от автоматизированных спам рассылок.

Планировщик заданий (Shedule) – позволяет настраивать расписание автоматического выполнения задач на компьютере. Автоматически запускает различные приложения, программы, скрипты, функцию резервного копирования в запланированное вами время.

__К тому же уязвимость этой службы используется некоторыми вирусами для автозагрузки. Но нужно знать, что некоторые антивирусы, например Symantec или McAfee, используют эту службу для обновления в определенное время и запланированных сканирований системы.

__Так что в этом случае отключать планировщик заданий не стоит.

Telnet (Telnet) – позволяет удаленному пользователю входить в систему и запускать программы, поддерживает различных клиентов TCP/IP Telnet, включая компьютеры с операционными системами UNIX и Windows. ___Если эта служба остановлена, то удаленный пользователь не сможет запускать программы.

NetMeeting Remote Desktop Sharing (mnmsrvc) – разрешает проверенным пользователям получать доступ к рабочему столу Windows через корпоративную интрасеть, используя NetMeeting.

Диспетчер сеанса справки для удаленного рабочего стола (Remote Desktop Help Session Manager) – управляет возможностями Удаленного помощника.

Браузер компьютеров — перевести вручную, если у вас нет локальной сети.

Диспетчер автоматических подключений удалённого доступа — отключаем Координатор распределённых транзакций — отключить

Модуль поддержки NetBIOS – отключаем

Настройка сервера удалённых рабочих столов — отключаем

Служба загрузки изображений Windows (WIA) — если у вас к компьютеру подключен сканер или цифровая камера, то ничего не трогаем, если нет, то отключаем

Служба поддержки Bluetooth — если не пользуемся зубом, то отключаем

Служба удалённого управления Windows — отключаем

Служба удалённых рабочих столов — отключаем

Смарткарта — отключаем

Факс — если не используем, так же отключаем.

ЕСЛИ ВЫ НЕ ЗНАЕТЕ ГДЕ НАХОДЯТСЯ ЭТИ СЛУЖБЫ:

Пуск => Выполнить => написать в командной строке следующее: services.msc => жмем ОК или Панель управления => Система и безопасность => Администрирование => Службы

Так же есть перечень служб, которые “тормозят” работу Windows:

Автоматическое обновление – включает загрузку и установку обновлений Windows). Если вы не пользуетесь этой службой, отключайте.

Вторичный вход в систему – позволяет запускать процессы от имени другого пользователя. Если в системе только ваша учётная запись (не считая записи администратора), тоже можно отключить.

Диспетчер очереди печати (Print Spooler) – отвечает за обработку, планирование и распределение документов, предназначенных для печати. Если у вас нет принтера, отключайте.

Справка и поддержка – если вы не пользуетесь справочным меню Windows, отключайте.

Обозреватель компьютеров – обслуживает список компьютеров в сети и выдает его программам по запросу. Если у вас нет локальной сети, то отключайте эту службу.

Источник бесперебойного питания – если у вас нет источника бесперебойного питания, то можно отключить и эту службу.

Источник: https://zen.yandex.ru/media/id/5b3e528a27773000a9991471/spisok-slujb-windows-otkliuchaem-uiazvimoe-i-tormoziascee-5b3e60e5cf892600a95fe134

Поделиться:
Нет комментариев

    Добавить комментарий

    Ваш e-mail не будет опубликован. Все поля обязательны для заполнения.