Управление пользовательскими (Per-User) службами в Windows

Службы для отдельных пользователей (per-user service) в Windows это специальный тип служб, которые создаются для каждого пользователя при его входе в систему и удаляются при завершении сеанса пользователя. Они используются для реализации персонализированных задач (например, служба индексации поиска, служба уведомлений, синхронизации данных и т.д.), запускаются в контексте учетной записи пользователя (а не LocalSystem) и используются для изоляции персональных фоновых процессов пользователей от системных служб. Концепция per-user services используется начиная с Windows 10/Windows Server 2016 (с Desktop Experience) и выше.

Как вывести пользовательские службы в Windows?

Чтобы увидеть список пользовательских служб в Windows, откройте консоль управления службами services.msc . Обратите внимание, что в списке есть службы, содержащие в конце уникальный идентификатор (LUID), суффикс вида _a717df , который добавляется в конце имени службы (например, Clipboard User Service_a717df , Contact Data_a717df , ConsentUX User Service_a717df и т.д.). Такой LUID суффикс является уникальным и генерируется при входе пользователя

несколько одинаковых пользовательских служба в Windows (per-user)

В моем случае на хосте Windows есть активные сессии двух пользователей, поэтому для каждого пользователя создается свой набор per-user служб. Также можно вывести список пользовательских служб, отфильтровав список служб по типу SERVICE_USER_SERVICE ( 0x40 в шестнадцатеричном, 64 в десятичном) с помощью PowerShell:

Get-Service | Where-Object { ($_.ServiceType -band 64) -eq 64 } | Select Name, Status, ServiceType,DisplayName

powershell: список вывести per-user сервисы

Шаблоны per-user служб хранятся в реестре ( HKLM\SYSTEM\CurrentControlSet\Services ) и используются системой для создания персональных служб при входе каждого пользователя. Вывести полный список шаблонов per-user служб в Windows, можно с помощью PowerShell:

Get-ChildItem "HKLM:\SYSTEM\CurrentControlSet\Services" | ForEach-Object { Get-ItemProperty $_.pspath } | Where-Object {$_.Type -eq 80 -or $_.Type -eq 96} | Format-Table PSChildName, Type, UserServiceFlags

шаблоны служб per-user

Список стандартных пользовательских per-user служб в Windows 11 25H2, включая тип их запуска, краткое описание, и можно ли отключать их.

Имя службыDisplayNameТип запускаМожно ли отключатьОписание
AarSvc Agent Activation RuntimeРучной⛔ Не отключатьЗапуск агентов приложений
BluetoothUserService Bluetooth User Support ServiceРучной🟢 Можно отключитьПоддержка Bluetooth
CaptureService CaptureServiceРучной🟢 Можно отключитьЗахват экрана/видео
cbdhsvc Clipboard User ServiceРучной🟢 Можно отключитьОбщий буфер обмена
CDPUserSvc Connected Devices Platform User ServiceАвто🟢 Можно отключитьСинхронизация устройств
CloudBackupRestoreSvc Cloud Backup and Restore ServiceРучной🟡 Без рекомендацийОблачное резервное копирование
ConsentUxUserSvc ConsentUX User ServiceРучной🟢 Можно отключитьСогласия приложений
PimIndexMaintenanceSvc Contact DataРучной🟢 Можно отключитьИндексация контактов
CredentialEnrollmentManagerUserSvc CredentialEnrollmentManagerUserSvcРучной⛔ Не отключатьХранение учетных данных
DeviceAssociationBrokerSvc DeviceAssociationBrokerРучнойАссоциация устройств
DevicePickerUserSvc DevicePickerРучной🟢 Можно отключитьВыбор устройств (Miracast)
DevicesFlowUserSvc DevicesFlowРучной🟢 Можно отключитьПодключение WiFi/BT дисплеев
BcastDVRUserService GameDVR and Broadcast User ServiceРучной🟢 Можно отключитьЗапись и трансляция игр
MessagingService MessagingServiceРучной🟢 Можно отключитьОбмен сообщениями
NPSMSvc Now Playing Session Manager ServiceРучной🟡 Без рекомендацийТрекер музыки
OneSyncSvc Sync HostАвто🟢 Можно отключитьСинхронизация OneDrive
P9RdrService P9RdrServiceРучной🟡 Без рекомендацийPlan 9 для WSL
PenService PenServiceРучной🟡 Без рекомендацийПоддержка стилуса
PrintWorkflowUserSvc PrintWorkflowРучной🟡 Без рекомендацийПечать UWP
UdkUserSvc Udk User ServiceРучной🟢 Можно отключитьКоординация оболочки
UserDataSvc User Data AccessРучной🟢 Можно отключитьДоступ к данным UWP
UnistoreSvc User Data StorageРучной🟢 Можно отключитьХранилище данных UWP
WpnUserService Windows Push Notifications User ServiceРучной⛔ Не отключатьPush-уведомления

Отключение Per-User служб в Windows

Большинство per-user служб по умолчанию отключены и запускаются только при необходимости. Однако, если некоторый функции Windows вами не используются, то такие службы можно отключить, чтобы они динамически не создавались при входе пользователей. Особенно это актуально для терминальных RDS серверов и виртуальных рабочих мест VDI.

Например, вы понимаете, что вашим пользователям не нужны службы DevicesFlowUserSvc (подключение WiFi дисплеев и Bluetooth устройств) и BcastDVRUserService (запись и трансляция игр).

Чтобы отключить такие службы, перейдите в ветку реестра HKLM\System\CurrentControlSet\Services\BcastDVRUserService и создайте в ней REG_DWORD параметр с именем UserServiceFlags и значением 0. Параметр можно создать вручную или с помощью PowerShell:

New-ItemProperty -Path HKLM:\System\CurrentControlSet\Services\BcastDVRUserService -Name UserServiceFlags -PropertyType DWord -Value 0 -Force

UserServiceFlags - запретить создание per-user службы в windows

После перезагрузки компьютера, динамические per-user службы для таких служб создаваться не будут.

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

В моих шаблонах для RDS Windows Server 2022 настроено отключение следующих служб:

  • CaptureService
  • Cbdhsvc
  • CDPSvc
  • CDPUserSvc
  • ConsentUxUserSvc
  • DevicePickerUserSvc
  • DevicesFlowUserSvc
  • PimIndexMaintenanceSvc
  • PrintWorkflowUserSvc
  • UnistoreSvc
  • UserDataSvc
  • WpnUserService

Для всех этих служб через групповые политики я создаю параметр реестра UserServiceFlags со значением 0 (как распространить параметр реестра через Group Policy Preferences).

UserServiceFlags - параметр реестра через GPO

Отключать per-user службы в целом безопасно, если делать это выборочно, по списку поддерживаемых Microsoft служб и после тестирования в вашей среде.

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


Комментариев: 0 Оставить комментарий

Оставить комментарий

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

Я не робот( Обязательно отметьте)