Как удалить службу в windows
Перейти к содержимому

Как удалить службу в windows

  • автор:

Практическое руководство. Установка и удаление служб Windows

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

  • Службы рабочей роли в .NET
  • Создание службы Windows с использованием BackgroundService

Если вы разрабатываете службу Windows, используя .NET Framework, можно быстро установить приложение службы с помощью служебной программы командной строки InstallUtil.exe или PowerShell. Если вы являетесь разработчиком и хотите создать службу Windows, которую пользователи могут устанавливать и удалять, можно использовать бесплатный набор инструментов WiX Toolset или коммерческие средства, такие как Advanced Installer, InstallShield и другие. См. сведения о создании пакета установщика (классическое приложение Windows).

Если вы хотите удалить службу на своем компьютере, не выполняйте процедуру, описанную в этой статье. Вместо этого определите, какая программа (или программный пакет) установила эту службу, а затем выберите Приложения в параметрах, чтобы удалить эту программу. Многие службы являются составной частью ОС Windows. Если их удалить, это может привести к нестабильной работе системы.

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

Проекты служб Windows нельзя запускать напрямую из среды разработки Visual Studio путем нажатия клавиши F5 . Перед запуском проекта необходимо установить службу в проекте.

Запустите обозреватель сервера и убедитесь, что служба установлена или удалена.

Установка с помощью программы InstallUtil.exe

  1. В меню Пуск выберите каталог Visual Studio версия> , а затем выберите Командная строка разработчика для VS версия> . Появится командная строка разработчика для Visual Studio.
  2. Откройте каталог, где находится скомпилированный исполняемый файл вашего проекта.
  3. Запустите InstallUtil.exe из командной строки, указав исполняемый файл проекта в качестве параметра:
installutil .exe 
  • Для 32-разрядной версии .NET Framework 4 или 4.5 и более поздних версий: если каталог установки Windows — C:\Windows, по умолчанию используется путь C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe.
  • Для 64-разрядной версии .NET Framework 4 или 4.5 и более поздних версий: по умолчанию используется путь C:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe.

Удаление с помощью служебной программы InstallUtil.exe

  1. В меню Пуск выберите каталог Visual Studio версия> , а затем выберите Командная строка разработчика для VS версия> . Появится командная строка разработчика для Visual Studio.
  2. Запустите InstallUtil.exe из командной строки, указав выходные данные проекта в качестве параметра:
installutil /u .exe 

Установка с помощью PowerShell

  1. В меню Пуск выберите Каталог Windows PowerShell и Windows PowerShell.
  2. Откройте каталог, где находится скомпилированный исполняемый файл вашего проекта.
  3. Запустите командлет New-Service, используя имя службы и выходные данные проекта в качестве аргументов.
New-Service -Name "YourServiceName" -BinaryPathName .exe 

Удаление с помощью PowerShell

  1. В меню Пуск выберите Каталог Windows PowerShell и Windows PowerShell.
  2. Выполните командлет Remove-Service, указав в качестве аргумента имя службы.
Remove-Service -Name "YourServiceName" 

Примечание Чтобы использовать этот командлет, требуется PowerShell 6 или более поздней версии. Дополнительные сведения см. в статье Установка PowerShell в Windows.

sc.exe delete "YourServiceName" 

См. также

  • Знакомство с приложениями служб Windows
  • Практическое руководство. Создание служб Windows
  • Практическое руководство. Добавление установщиков в приложение-службу
  • Installutil.exe (установщик)

Совместная работа с нами на GitHub

Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.

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

date

27.07.2020

user

itpro

directory

PowerShell, Windows 10, Windows Server 2016

comments

комментариев 12

В Windows вы можете управлять службами не только из графической консоли services.msc или утилиты командной строки Sc.exe (первоначальна включалась в пакет ресурсов Resource Kit), но и с помощью PowerShell. В этой статье мы смотрим различные сценарии управления службами Windows с помощью PowerShell.

Основные командлеты PowerShell для управления службами Windows

Существует восемь основных командлетов Service, предназначенных для просмотра состояния и управления службами Windows.

Чтобы получить весь список командлетов Service, введите команду:

управление службами windows из powershell

  • Get-Service — позволяет получить службы на локальном или удаленном компьютере, как запущенные, так и остановленные;
  • New-Service – создать службу. Создает в реестре и базе данных служб новую запись для службы Windows;
  • Restart-Service – перезапустить службу. Передает сообщение об перезапуске службы через Windows Service Controller
  • Resume-Service – возобновить службы. Отсылает сообщение о возобновлении работы диспетчеру служб Windows;
  • Set-Service — изменить параметры локальной или удаленной службы, включая состояние, описание, отображаемое имя и режим запуска. Этот командлет также можно использовать для запуска, остановки или приостановки службы;
  • Start-Service – запустить службу;
  • Stop-Service – остановить службу (отсылает сообщение об остановке диспетчеру служб Windows);

Получить подробное описание и примеры использования конкретного командлета можно через Get-help:

Get-Help Start-Service

Get-Service: получаем список служб и их состояние

Получить список и состояние (Running/Stopped) службы на локальном или удаленном компьютере можно с помощью командлета Get-Service. Параметр -Name позволяет делать отбор по имени службы. Имя службы можно задать с использованием подстановочного символа *.

Get-Service просмотр состояния служб

Если вы не знаете точное имя службы, есть возможность найти службы по отображаемому имени с помощью параметра –DisplayName. Можно использовать список значений и подстановочные знаки.

Get-Service поиск по имени службы

.

Командлет Get-Service можно использовать для получения состояния служб на удаленных компьютерах, указав параметр -ComputerName. Можно опросить статус службы сразу на множестве удаленных компьютеров, их имена нужно перечислить через запятую. Например, приведенная ниже команда получает состояние службы Spooler на удаленных компьютерах RM1 и RM2.

Get-Service spooler –ComputerName RM1,RM2

Status Name DisplayName ------ ---- ----------- Running spooler Print Spooler Stopped spooler Print Spooler

Вывести все свойства службы позволит командлет Select-Object:

Get-Service spooler | Select-Object *

вывести все свойства службы windows

Командлет Select-Object позволит вывести определенные свойства службы. Например, нам нужно вывести имя, статус и доступные возможности службы Spooler:

Get-Service Spooler | Select DisplayName,Status,ServiceName,Can*

Get-Service - можно ли перезапускать, приостаналивать службу windows

Командлет Get-Service имеет два параметра, которые позволяют получить зависимости служб:

  • Параметр -DependentServices позволяет вывести службы, которые зависят от данной службы;
  • Параметр -RequiredServices позволяет вывести службы, от которых зависит данная служба.

Приведенная ниже команда выводит службы, необходимые для запуска службе Spooler:

Get-Service –Name Spooler -RequiredServices

Get-Service RequiredServices зависимости служб в windows

Следующая команда выводит службы, которые зависят от службы Spooler:

Get-Service –Name Spooler -DependentServices

Get-Service DependentServices

При необходимости найти службы с определенным состоянием или параметрами, используйте командлет Where-Object. Например, получим список запущенных служб со статусом Running:

Get-Service | Where-Object status -eq

Для вывода служб с типом запуска Manual, выполните команду

Get-Service | Where-Object <<img decoding=

.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.

Командлет Stop-Service - остановит службу

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

Cannot stop service because it has dependent services. It can only be stopped if force flag set.

Stop-Service - ошибка Cannot stop service because it has dependent services. It can only be stopped if force flag set

Для принудительной остановки используйте параметр –Force. Вы должны помнить, что остановятся также все зависимые службы:

Stop-Service samss –Force -Passthru

Следующая команда остановит перечисленные службы (bits,spooler) со статусом ”Running”:

get-service bits,spooler | where | stop-service –passthru

остановить несколько служб из powershell

Иногда службы зависают в статусе Stopping и их процессы приходится завершать принудительно.

Командлет Start-Service запускает остановленные службы:

Start-Service -Name spooler -PassThru

Start-Service -запуск службы

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

get-service samss | Foreach

Start-Service запустить службу и все зависимые службы

Командлет Suspend-Service может приостанавливать службы, допускающие временную приостановку и возобновление. Для получения сведений о возможности временной приостановки конкретной службы используйте командлет Get-Service со свойством «CanPauseAndContinue«.

Get-Service samss | Format-List name, canpauseandcontinue

Get-Service canpauseandcontinue

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

список служб, разрешающих приостановку

Приостановим службу SQLBrowser:

Suspend-Service -Name SQLBrowser

Suspend-Service

Для возобновления работы приостановленной службы служит командлет Resume-service:

Resume-Service -Name SQLBrowser

Resume-Service

Следующая команда возобновляет работу всех приостановленных служб:

get-service | where-object | resume-service

Командлет Restart-Service перезапускает службу:

Restart-Service -Name spooler

Restart-Service - перезапуск службы windows

Эта команда запускает все остановленные сетевые службы компьютера:

get-service net* | where-object | restart-service

Параметр —ComputerName у этих командлетов отсутствует, но их можно выполнить на удаленном компьютере с помощью командлета Invoke-Command или через пайп:

Например, чтобы перезапустите очередь печати на удаленном компьютере RM1, выполните команду:
Get-Service Spooler -ComputerName RM1 | Start-Service

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

Set-Service – изменение настроек службы Windows

Командлет Set-Service позволяет изменить параметры или настройки служб на локальном или удаленном компьютере. Так как состояние службы является свойством, этот командлет можно использовать для запуска, остановки и приостановки службы. Командлет Set-Service имеет параметр -StartupType, позволяющий изменять тип запуска службы.

Изменим тип запуска службы spooler на автоматический:

Set-Service spooler –startuptype automatic –passthru

Set-Service включить автозапуск для службы

Можно перевести службу на ручной (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»

New-Service создать новую службу в windows

С помощью параметра Get-WmiObject получим информацию о режиме запуска и описание службы

get-wmiobject win32_service -filter «name=’testservice'»

get-wmiobject win32_service -filter

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

Set-Service -Name TestService -Description ‘My Service’ -StartupType Manual

Set-Service - изменить тип запуска службы

Чтобы удалить службу используйте команду

(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.GetMethodParameters

$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 аккаунта. Пароль при этом не указывается.

Invoke-WmiMethod - запуск службы из под другого пользователя

Как видите, PowerShell позволяет легко управлять службами Windows. Можно создавать, останавливать, запускать и возобновлять службы, менять их свойства. Большинство командлетов позволяют управлять службами на удаленных компьютерах.

Предыдущая статьяПредыдущая статья Следующая статья Следующая статья

sc.exe delete

Deletes a service subkey from the registry. If the service is running or if another process has an open handle to the service, the service is marked for deletion.

We don’t recommend you to use this command to delete built-in operating system services such as DHCP, DNS, or Internet Information Services. To install, remove, or reconfigure operating system roles, services and components, see Install or Uninstall Roles, Role Services, or Features

Syntax

sc.exe [] delete [] 

Parameters

Parameter Description
Specifies the name of the remote server on which the service is located. The name must use the Universal Naming Convention (UNC) format (for example, \myserver). To run SC.exe locally, don’t use this parameter.
Specifies the service name returned by the getkeyname operation.
/? Displays help at the command prompt.

Examples

To delete the service subkey NewServ from the registry on the local computer, type:

sc.exe delete NewServ 

Related links

Как удалить службу в Windows 10

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

Прежде чем удалить службу, необходимо уяснить несколько моментов:

  • При удалении службы она навсегда исчезнет из системы, и восстановить ее непросто, а в ряде случаем просто невозможно.
  • Удаление определенных служб может вызвать неработоспособность тех или иных программ. Поэтому не стоит удалять службу, если вы на 100% не уверены за что она отвечает.
  • Не удаляйте системные службы Windows 10, так как это может привести к неработоспособности всей системы.

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

  • Зачастую программы при удалении из системы оставляют свои службы нетронутыми, и каждый раз при загрузке компьютера система пытается запустить такую службу, однако из-за отсутствия исполняемых или библиотечных файлов сделать этого не может, генерируя ошибку.
  • Некоторые вирусы и трояны для маскировки своих деструктивных действий могут создать в системе новую службу. И даже если, ваш антивирус удалит тело вируса, служба может остаться, и ее придется удалять вручную.
  • Возможно также ситуация, когда производительность системы снижается вследствие наличия большого количества процессов, работающих в виде служб, и вы решили удалить (а не просто остановить) ряд ненужных более служб в Windows 10.

Как узнать имя службы

Чтобы удалить службу в Windows 10, нужно знать её имя. Посмотреть информацию о службах можно в окне управления службами, для этого нажмите сочетание клавиш + R, в открывшемся окне Выполнить введите (скопируйте и вставьте) services.msc и нажмите клавишу Enter ↵.

В открывшемся окне «Службы», найдите ту службу, которую вы планируете удалить (в данном примере это служба «SynTPEnh Caller Service”).

Дважды щелкните по выбранной службе и в появившемся окне свойств службы, в поле Имя службы: будет отображено ее имя (в данном случае имя службы — SynTPEnhService, т.е. оно не совпадает с именем в списке служб, но бывает что имя службы совпадает с отображаемым именем), скопируйте его в буфер обмена.

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

Как удалить службу в командной строке

Чтобы удалить службу в Windows, откройте окно командной строки с правами администратора, и далее воспользуемся системной командой sc средства настройки диспетчера служб sc.exe. Команда SC используется для конфигурирования, опроса состояния, остановки, запуска, удаления и добавления системных служб в командной строке Windows.

Синтаксис команды удаления службы выглядит так:

где вместо ServiceName указывается имя удаляемой службы.

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

В данном случае команда выглядит так:

В случае успешного выполнения команды sc delete в командной строке должно появиться сообщение:

[SC] DeleteService: успех.

Теперь, если в консоли управления службами нажать клавишу F5, вы увидите, что служба удалена и в списке не значится.

Как удалить службу в редакторе реестра

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

Откройте редактор реестра, для этого нажмите сочетание клавиш + R, в открывшемся окне Выполнить введите (скопируйте и вставьте) regedit и нажмите клавишу Enter ↵.

В открывшемся редакторе реестра перейдите по следующему пути:

В ней содержится список всех служб, установленных в системе.
Найдите имя раздела реестра, соответствующее имени удаляемой службы.
Удостоверьтесь, что в значениях DisplayName и ImagePath содержатся, соответственно имя и путь к исполняемому файлу службы, которую вы планируете удалить.

Щелкните правой кнопкой мыши по имени найденного раздела реестра с именем службы и выберите Удалить .

После этих действий служба будет удалена из системы. Данная инструкция применима не только к операционной системе Windows 10, но и также к Windows 8.1, Windows 8.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *