- Remove-Service
- Syntax
- Description
- Examples
- Example 1: Remove a service
- Example 2: Remove a service using the display name
- Parameters
- Inputs
- Outputs
- Notes
- Как удалить службу в Windows 10
- Удаление служб Windows 10 через командную строку
- Удаление служб Windows 10 через PowerShell
- Удаление служб Windows 10 через Редактор реестра
- Управление службами Windows с помощью PowerShell
- Основные командлеты PowerShell для управления службами Windows
- Остановка, запуск, приостановка и перезапуск служб из PowerShell
- Set-Service – изменение настроек службы Windows
- Создание и удаление служб Windows c помощью PowerShell
- Изменение учетной записи для запуска службы
Remove-Service
Removes a Windows service.
Syntax
Description
The Remove-Service cmdlet removes a Windows service in the registry and in the service database.
The Remove-Service cmdlet was introduced in PowerShell 6.0.
Examples
Example 1: Remove a service
This removes a service named TestService.
Example 2: Remove a service using the display name
This example removes a service named TestService. The command uses Get-Service to get an object that represents the TestService service using the display name. The pipeline operator ( | ) pipes the object to Remove-Service , which removes the service.
Parameters
Prompts you for confirmation before running the cmdlet.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Specifies ServiceController objects that represent the services to remove. Enter a variable that contains the objects, or type a command or expression that gets the objects.
Type: | ServiceController |
Position: | Named |
Default value: | None |
Accept pipeline input: | True |
Accept wildcard characters: | False |
Specifies the service names of the services to remove. Wildcard characters are permitted.
Type: | String |
Aliases: | ServiceName, SN |
Position: | 0 |
Default value: | None |
Accept pipeline input: | True |
Accept wildcard characters: | True |
Shows what would happen if the cmdlet runs. The cmdlet is not run.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Inputs
System.ServiceProcess.ServiceController, System.String
You can pipe a service object or a string that contains the name of a service to this cmdlet.
Outputs
None
This cmdlet does not return any output.
Notes
To run this cmdlet, start PowerShell by using the Run as administrator option.
Как удалить службу в Windows 10
В процессе использования Windows 10 в системе неизбежно накапливается большое количество служб. Обычно они появляются при установке программ и постоянно висят в памяти расходуя ресурсы компьютера. Обычно такие ненужные службы просто останавливают и переводят в ручной режим запуска. Но, если вы уверены, что какая-то из служб вам точно не понадобится, то вы можете полностью удалить ее из Windows 10. В этой статье мы рассмотрим, сразу три способа, как удалить службу в Windows 10. Это будут способы с использование командной строки, редактора реестра и PowerShell.
Удаление служб Windows 10 через командную строку
Первый способ удаления служб из операционной системы Windows 10 заключается в использовании командной строки и команды « sc delete ». Данная команда выполняет удаление раздела реестра, который отвечает за работу указанной службы, что приводит к удалению службы из системы. Если в момент удаления служба все еще работает, то она помечается для удаления в будущем.
Для того чтобы удалить службу при помощи данной команды необходимо знать имя службы, под которым она зарегистрирована в системе. Чтобы узнать это имя можно воспользоваться встроенной программой «Службы». Чтобы запустить программу «Службы» нажмите комбинацию клавиш Window-R и выполните команду « services.msc ». Также эту программу можно найти в « Панели управления », а разделе « Система и безопасность – Администрирование – Службы ».
В программе « Службы » нужно найти службу, которую вы хотите удалить из Windows 10, кликнуть по ней правой кнопкой мышки и перейти в « Свойства ».
В результате появится небольшое окно с информацией о выбранной вами службе. Здесь, на вкладке « Общее », в самом верху окна будет указано « Имя службы ». То именно то имя, которое нам и нужно для удаления.
После этого нужно открыть командную строку с правами администратора. Для этого проще всего воспользоваться поиском в меню «Пуск». Откройте меню « Пуск », введите команду « cmd » и запустите ее от имени админа.
После запуска командной строки можно приступать к удалению службы. Для этого сначала желательно остановить работу службы. Это можно сделать при помощи команды « sc stop ServiceName », где « ServiceName » — это название службы, которое вы узнали на предыдущем этапе.
После остановки службы ее можно удалить. Для этого используйте команду « sc delete ServiceName ». Как и в предыдущем случае, « ServiceName » нужно заменить на название нужной вам службы.
После этого в командной строке должно появиться сообщение об успешном удалении службы. Но, если что-то не сработало, то вы можете попробовать другой способ удаления.
Удаление служб Windows 10 через PowerShell
Также для удаления службы в Windows 10 вы можете воспользоваться PowerShell. Как и обычную командную строку, консоль PowerShell нужно запускать с правами администратора. Для этого откройте меню « Пуск », введите поисковый запрос « PowerShell » и запустите его от имени админа.
Работу в PowerShell можно начать с выполнения команды (командлета) « Get-Service », который выведет на экран список всех зарегистрированных в системе служб с указанием их имен. Но, если имя службы слишком длинное, то оно не поместится на экране. В этом случае вы можете узнать его через « services.msc », так как это описано в начале статьи.
После этого удаляемую службу желательно остановить. Для этого выполняем команду « Stop-Service -Name ServiceName -Force », где « ServiceName » — это название службы, которое вы узнали на предыдущем этапе.
Завершающий этап – удаление службы из Windows 10. Для этого выполняем команду « Remove-Service -Name ServiceName ». Как и в предыдущем случае, « ServiceName » нужно заменить на название нужной вам службы.
Больше информации об управлении службами при помощи PowerShell можно узнать на сайте Майкрософт: Get-Service, Stop-Service и Remove-Service.
Удаление служб Windows 10 через Редактор реестра
Если описанные выше способы не сработали (что маловероятно), то вы можете попробовать удалить службу через редактор реестра Windows 10. Для этого нажмите комбинацию клавиш Windows-R и в открывшемся меню выполните команду « regedit ».
Таким образом вы откроете редактор реестра Windows 10. Здесь нужно перейти в раздел « HKEY_LOCAL_MACHINE\ SYSTEM\ CurrentControlSet\ Services » и найти подраздел с названием службы, которую необходимо удалить из системы.
Для удаления службы необходимо удалить весь подраздел с нужным названием и перезагрузить компьютер.
Управление службами Windows с помощью PowerShell
В Windows вы можете управлять службами не только из графической консоли services.msc или утилиты командной строки Sc.exe (первоначальна включалась в пакет ресурсов Resource Kit), но и с помощью PowerShell. В этой статье мы смотрим различные сценарии управления службами Windows с помощью PowerShell.
Основные командлеты PowerShell для управления службами Windows
Существует восемь основных командлетов Service, предназначенных для просмотра состояния и управления службами Windows.
Чтобы получить весь список командлетов Service, введите команду:
- Get-Service — позволяет получить службы на локальном или удаленном компьютере, как запущенные, так и остановленные;
- New-Service – создать службу. Создает в реестре и базе данных служб новую запись для службы Windows;
- Restart-Service – перезапустить службу. Передает сообщение об перезапуске службы через Windows Service Controller
- Resume-Service – возобновить службы. Отсылает сообщение о возобновлении работы диспетчеру служб Windows;
- Set-Service — изменить параметры локальной или удаленной службы, включая состояние, описание, отображаемое имя и режим запуска. Этот командлет также можно использовать для запуска, остановки или приостановки службы;
- Start-Service – запустить службу;
- Stop-Service – остановить службу (отсылает сообщение об остановке диспетчеру служб Windows);
- Suspend-Service приостановить службу. Приостановленная служба по-прежнему выполняется, однако ее работа прекращается до возобновления работы службы, например с помощью командлета Resume-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, выполните команду
Проверить, что в системе имеется указанная служба:
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 <$_.status -eq 'running'>| stop-service –passthru
Командлет Start-Service запускает остановленные службы:
Start-Service -Name spooler -PassThru
Служба не запустится, если есть остановленные зависимые службы. Чтобы их найти и включить:
get-service samss | Foreach
Командлет Suspend-Service может приостанавливать службы, допускающие временную приостановку и возобновление. Для получения сведений о возможности временной приостановки конкретной службы используйте командлет Get-Service со свойством «CanPauseAndContinue«.
Get-Service samss | Format-List name, canpauseandcontinue
Чтобы отобразить список всех служб, работа которых может быть приостановлена, введите команду:
Приостановим службу SQLBrowser:
Suspend-Service -Name SQLBrowser
Для возобновления работы приостановленной службы служит командлет Resume-service:
Resume-Service -Name SQLBrowser
Следующая команда возобновляет работу всех приостановленных служб:
get-service | where-object <$_.Status -eq "Paused">| resume-service
Командлет Restart-Service перезапускает службу:
Restart-Service -Name spooler
Эта команда запускает все остановленные сетевые службы компьютера:
get-service net* | where-object <$_.Status -eq "Stopped">| restart-service
Параметр —ComputerName у этих командлетов отсутствует, но их можно выполнить на удаленном компьютере с помощью командлета Invoke-Command или через пайп:
Например, чтобы перезапустите очередь печати на удаленном компьютере 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. Можно создавать, останавливать, запускать и возобновлять службы, менять их свойства. Большинство командлетов позволяют управлять службами на удаленных компьютерах.