Как посмотреть службы windows 2008
Обновлено: 03.07.2024
Давайте начнем с того, что просто получим статус всех служб, запущенных на локальном компьютере. Используем для этого командлет Get-Service.
PowerShell, как правило, не чувствителен к регистру. Вывод приведен на скриншоте ниже.
Каждая строка представляет собой объект службы (service object).Каждый сервисный объект, как правило, имеет свои свойства. Вы можете открыть их, просто передав эти объекты в другую команду, Get-Member.
Результаты приведены на скриншоте ниже.
Параметр Typename сверху говорит о том, что за объект перед нами; в данном случае это System.ServiceProcess.ServiceController. На скриншоте также обведены свойства объекта. Это атрибуты, которые описывают этот тип объекта. Хотя большинство из них не используются при отображении по умолчанию, вы можете использовать их, если вы их знаете.
Например, нам интересно посмотреть информацию только о Windows Update. Через Get-Service получим информацию только о некоторых ее свойствах.
Как я узнал, что могу напечатать имя службы? Посмотрел с помощью Get-Service.
PS C:\> help get-service
Вы можете получить полную справочную информацию, напечатав:
Информацию о службе можно получить по ее имени или даже начальным буквам имени.
Или если вам удобнее работать с отображаемыми именами, используйте параметр –Displayname.
Я должен использовать имя параметра, чтобы PowerShell воспринимал значения в качестве отображаемого имени, а не фактического имени службы. Команда будет выглядеть так:
Параметр –Name можно не печатать.
ПОЛУЧАЕМ СТАТУС СЛУЖБЫ НА УДАЛЕННЫХ КОМПЬЮТЕРАХ
До этого нас интересовало получение информации о статусе служб на локальном компьютере. Однако управление службами осуществляется на удаленных компьютерах. Если посмотреть справку по Get-Service, то можно увидеть наличие у этого командлета параметра –Computername. В данном случае подключение к удаленным компьютерам осуществляется без включения функции удаленного управления PowerShell. Если вы можете управлять службами, используя инструменты командной строки (sc.exe или консоль управления Service Manager), вы можете использовать PowerShell. Давайте взглянем на пример:
Любая команда, которую я демонстрировал, можно использовать для передачи удаленному компьютеру. Даже нескольким компьютерам, если у вас есть соответствующие права на удаленном компьютере. Если вы используете PowerShell v3, то можно легко выбрать одну службу на множестве компьютеров.
Для наглядности представления отформатируем вывод.
Тот же самый результат, но в PowerShell v2.
ОСУЩЕСТВЛЯЕМ ФИЛЬТРАЦИЮ (ИСПОЛЬЗУЯ WHERE-OBJECT)
Фильтрация служб осуществляется с помощью командлета Where-Object (where – сокращение для командлета). Все, что нам нужно от PowerShell в этом случае, так это получить только те службы, у которых статус равен “stopped”.
PowerShell получает информацию обо всех службах и передает их (с помощью “|”) в следующую команду, которая осуществляет просмотр каждого объекта. Если свойство статуса объекта равно “stopped”, она остается в конвейере (pipeline), в противном случае она из него исключается. В конце выражение PowerShell отображает те объекты, которые остались в конвейере.
Результаты приведены ниже.
Теперь давайте попробуем найти одну службу на нескольких машинах. Вывод отформатируем в таблицу.
Мы даже можем комбинировать запрос отдельных служб с их фильтрацией.
Эта команда находит все службы на компьютере CHI-DC03, которые начинаются с ‘WIN’, но отображает только те, которые запущены.
Также можно сгруппировать объекты по свойству статуса (status property).
Переменная $dc03 является объектом GroupInfo.
Свойство Group представляет собой коллекцию связанных служб.
Написанное выше проще понять, если взглянуть на скриншот.
Что касается меня, то я бы предпочел использовать хеш-таблицу.
Теперь каждое имя представляет собой свойство в хеш-таблице. Если у вас имеется опыт работы с PoweShell, вы, возможно, подумываете сделать сделующее:
В чем суть параметра –AsString, на мой взгляд, достаточно очевидно. Теперь работать с хеш-таблицей стало проще.
Следующей задачей на повестке дня является проверка зависимостей сервера (server dependencies).
Требуемые службы
PowerShell позволяет просто получить статус всех служб, которые требуется для данной службы, даже на удаленном компьютере.
Параметр –RequiredServices передаст объект в конвейер для каждой требуемой службы. Вы можете даже пойти дальше и проверить требуемые службы для работы данной службы.
Параметр –Computername командлета Get-Service возьмет вывод, но только для тех объектов, у которых есть объект свойство Computername – именно поэтому я использую хеш-таблицу с Select-Object. Как мы видим проблем со службой DNS на компьютере CHI-DC03 нет.
ЗАВИСИМЫЕ СЛУЖБЫ
Мы можем сделать то же самое с зависимыми службами. Если таковых не имеется, в конвейер ничего передано не будет.
Требуемые и зависимые службы также являются частью каждого объекта службы.
А пока Вы можете получить все зависимости для всех служб, следующая команда
Это не даст вам особо полезную информацию, поэтому я рекомендую осуществлять запрос по конкретным службам. Команда работает гораздо лучше PowerShell v3.
Результаты видны на скриншоте ниже.
Чтобы получить подобные результаты в PowerShell v2, вам придется передать имена компьютеров (computernames) в Get-Service.
В следующей статье будет рассмотрен запуск, остановка и перезапуск служб.
Конец перевода.
В Windows вы можете управлять службами не только из графической консоли services.msc или утилиты командной строки Sc.exe (первоначальна включалась в пакет ресурсов Resource Kit), но и с помощью PowerShell. В этой статье мы смотрим различные сценарии управления службами Windows с помощью PowerShell.
Основные командлеты PowerShell для управления службами Windows
Существует восемь основных командлетов Service, предназначенных для просмотра состояния и управления службами Windows.
Чтобы получить весь список командлетов Service, введите команду:
Получить подробное описание и примеры использования конкретного командлета можно через Get-help:
Get-Service: получаем список служб и их состояние
Получить список и состояние (Running/Stopped) службы на локальном или удаленном компьютере можно с помощью командлета Get-Service. Параметр -Name позволяет делать отбор по имени службы. Имя службы можно задать с использованием подстановочного символа *.
Если вы не знаете точное имя службы, есть возможность найти службы по отображаемому имени с помощью параметра –DisplayName. Можно использовать список значений и подстановочные знаки.
.
Командлет Get-Service можно использовать для получения состояния служб на удаленных компьютерах, указав параметр -ComputerName. Можно опросить статус службы сразу на множестве удаленных компьютеров, их имена нужно перечислить через запятую. Например, приведенная ниже команда получает состояние службы Spooler на удаленных компьютерах RM1 и RM2.
Get-Service spooler –ComputerName RM1,RM2
Вывести все свойства службы позволит командлет Select-Object:
Get-Service spooler | Select-Object *
Командлет Select-Object позволит вывести определенные свойства службы. Например, нам нужно вывести имя, статус и доступные возможности службы Spooler:
Get-Service Spooler | Select DisplayName,Status,ServiceName,Can*
Командлет Get-Service имеет два параметра, которые позволяют получить зависимости служб:
- Параметр -DependentServices позволяет вывести службы, которые зависят от данной службы;
- Параметр -RequiredServices позволяет вывести службы, от которых зависит данная служба.
Приведенная ниже команда выводит службы, необходимые для запуска службе Spooler:
Get-Service –Name Spooler -RequiredServices
Следующая команда выводит службы, которые зависят от службы Spooler:
Get-Service –Name Spooler -DependentServices
При необходимости найти службы с определенным состоянием или параметрами, используйте командлет Where-Object. Например, получим список запущенных служб со статусом Running:
Для вывода служб с типом запуска Manual, выполните команду
.starttype -eq " width="" />
.starttype -eq " width="" />
Проверить, что в системе имеется указанная служба:
if (Get-Service "ServiceTest" -ErrorAction SilentlyContinue)
Write-host "ServiceTest exists"
>
Остановка, запуск, приостановка и перезапуск служб из PowerShell
Остановить службу можно с помощью командлета Stop-Service. Чтобы остановить службу печати, выполните команду:
Stop-Service -Name spooler
Командлет Stop-Service не выводит никаких данных после выполнения. Чтобы увидеть результат выполнения команды, используйте параметр -PassThru.
Обратите внимание, что не каждую службу можно остановить. Если есть зависимые службы, то получите ошибку
Для принудительной остановки используйте параметр –Force. Вы должны помнить, что остановятся также все зависимые службы:
Stop-Service samss –Force -Passthru
Следующая команда остановит перечисленные службы (bits,spooler) со статусом ”Running”:
get-service bits,spooler | where | stop-service –passthru
Командлет Start-Service запускает остановленные службы:
Start-Service -Name spooler -PassThru
Служба не запустится, если есть остановленные зависимые службы. Чтобы их найти и включить:
get-service samss | Foreach
Get-Service samss | Format-List name, canpauseandcontinue
Чтобы отобразить список всех служб, работа которых может быть приостановлена, введите команду:
Приостановим службу SQLBrowser:
Suspend-Service -Name SQLBrowser
Для возобновления работы приостановленной службы служит командлет Resume-service:
Resume-Service -Name SQLBrowser
Следующая команда возобновляет работу всех приостановленных служб:
get-service | where-object | resume-service
Командлет Restart-Service перезапускает службу:
Restart-Service -Name spooler
Эта команда запускает все остановленные сетевые службы компьютера:
get-service net* | where-object | restart-service
Например, чтобы перезапустите очередь печати на удаленном компьютере RM1, выполните команду:
Get-Service Spooler -ComputerName RM1 | Start-Service
Set-Service – изменение настроек службы Windows
Командлет Set-Service позволяет изменить параметры или настройки служб на локальном или удаленном компьютере. Так как состояние службы является свойством, этот командлет можно использовать для запуска, остановки и приостановки службы. Командлет Set-Service имеет параметр -StartupType, позволяющий изменять тип запуска службы.
Изменим тип запуска службы spooler на автоматический:
Set-Service spooler –startuptype automatic –passthru
Можно перевести службу на ручной (manual) запуск:
Set-Service spooler –startuptype manual –passthru
Создание и удаление служб Windows c помощью PowerShell
New-Service – командлет для создания новой службы в Windows. Для новой службы требуется указать имя и исполняемый файл (вы можете запустить PowerShell скрипт как службу Windows).
В примере создадим новую службу с именем TestService.
new-service -name TestService -binaryPathName "C:\WINDOWS\System32\svchost.exe -k netsvcs"
С помощью параметра Get-WmiObject получим информацию о режиме запуска и описание службы
get-wmiobject win32_service -filter "name='testservice'"
Изменить параметры новой службы можно командой
Set-Service -Name TestService -Description ‘My Service’ -StartupType Manual
Чтобы удалить службу используйте команду
(Get-WmiObject win32_service -Filter ″name=′TestService′″).delete()
Изменение учетной записи для запуска службы
Вы можете изменить учетную запись, из-под которой запускается служба. Получим имя учетной записи, которая используется для запуска службы TestService
get-wmiobject win32_service -filter "name='TestService'" | Select name,startname
Для изменения имени и пароля учетной записи выполняем команды.
$svc = get-wmiobject win32_service -filter "name='TestService'"
$svc.GetMethodParameters("change")
В результате получаем список параметров метода Change(). Считаем на каком месте находятся параметры StartName и StartPassword – 20 и 21 место соответственно.
$svc | Invoke-WmiMethod -Name Change –ArgumentList @ ($null,$null,$null,$null,$null,$null,$null, $null,$null,$null,$null,$null,$null,$null,$null,$null, $null,$null,$null,"Administrator","P@ssw0rd")
Либо вы можете указать имя gMSA аккаунта. Пароль при этом не указывается.
Как видите, PowerShell позволяет легко управлять службами Windows. Можно создавать, останавливать, запускать и возобновлять службы, менять их свойства. Большинство командлетов позволяют управлять службами на удаленных компьютерах.
порт 22 в частности. Я установил freeSSHd на Windows Server 2008 коробка, которая работает только IIS. Когда я пытаюсь запустить службу SSH, он говорит мне, что порт уже используется. Как узнать, какая служба использует этот порт?
Sysinternals TCPView покажет вам TCP / UDP порты, которые используются и процессы, которые их используют.
netstat -b в командной строке также будет работать. Sysinternals TCPView в основном красивее GUI версия, netstat - это инструмент, который поставляется с Windows.
netstat -an покажет все порты, которые сейчас с их адреса в числовой форме.
Для поиска информации о конкретном порте используйте netstat -an | grep PORTNO .
netstat в Windows 2008:
Запустите командную строку с "Запуск от имени администратора", затем введите netstat -anb .
команда работает быстрее в числовой форме ( -n ), и -b опция требует высоты.
для фильтрации выходных данных и проверки только udp-портов: используйте netstat -anb -p udp
принять его на следующий уровень с CurrPorts от NirSoft:
CurrPorts отображает список всех открытые порты TCP / IP и UDP на локальном компьютере. Для каждого порта в списке, информация о процесс, который открыл порт, также отображается, включая имя процесса, полный путь процесса, версия информация о процессе (продукте название, описание файла, и так далее), время, когда процесс был создан, и пользователь, который его создал.
не только это, но:
кроме того, CurrPorts позволяет закрыть нежелательные TCP соединения, убить процесс, который открыл порты, и сохраните информацию о портах TCP / UDP в HTML-файл, XML-файл или текстовый файл с разделителями табуляции. Currports также также автоматически маркируйте с пинком цвет подозрительных TCP / UDP портов по неопознанным заявкам (Приложения без версии информация и иконки)
Иногда вам может потребоваться открыть и управлять вашими службами Windows. Вы можете остановить какую-либо службу, запустить ее, отключить службу, отложить ее запуск, возобновить или приостановить службу Windows. В это время вам поможет Services Manager , который является встроенным инструментом в операционной системе Windows. Этот пост покажет вам, как открыть ваши службы Windows, используя диспетчер служб, а также командную строку.
Как открыть диспетчер служб Windows
Чтобы открыть службы Windows, запустите services.msc , чтобы открыть диспетчер служб. Здесь вы сможете запускать, останавливать, отключать, задерживать службы Windows.
Давайте посмотрим, как это сделать, более подробно.
Щелкните правой кнопкой мыши по кнопке «Пуск», чтобы открыть меню WinX. Выберите Run. Это открывает окно Run. Теперь введите services.msc и нажмите Enter, чтобы открыть диспетчер служб.
Типы запуска служб Windows
Windows 10 предлагает четыре типа запуска:
- автоматическая
- Автоматический (отложенный запуск)
- Руководство
- Инвалид.
Запуск, остановка, отключение служб Windows
Чтобы запустить, остановить, приостановить, возобновить или перезапустить любую службу Windows, выберите службу и щелкните ее правой кнопкой мыши. Вам будут предложены эти варианты.
Если вы хотите управлять дополнительными опциями, дважды щелкните Сервис, чтобы открыть окно его свойств.
Здесь в раскрывающемся меню Тип запуска вы сможете выбрать тип запуска для Службы.
В разделе Статус службы вы увидите кнопки «Пуск», «Стоп», «Пауза», «Возобновить службу».
После внесения изменений вам нужно будет нажать «Применить» и перезагрузить компьютер, чтобы изменения вступили в силу.
Управление службами с помощью командной строки
Вы также можете использовать командную строку для запуска, остановки, приостановки, возобновления обслуживания. Чтобы использовать его, из меню WinX откройте командную строку (Admin) и выполните одну из следующих команд:
Чтобы запустить сервис:
Чтобы остановить службу:
Чтобы приостановить услугу:
Чтобы возобновить услугу:
Чтобы отключить службу:
Рекомендуется не изменять настройки по умолчанию, если вы не знаете, что делаете, поскольку это может привести к тому, что некоторые части вашей операционной системы перестанут работать. Когда вы останавливаете, запускаете или перезапускаете службу, это также влияет на все зависимые службы, поэтому вы должны быть осторожны.
Читайте также: