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

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

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

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

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

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

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

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

Список стандартных пользовательских 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 (запись и трансляция игр).

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

New-ItemProperty -Path HKLM:SystemCurrentControlSetServicesBcastDVRUserService -Name UserServiceFlags -PropertyType DWord -Value 0 -Force

После перезагрузки компьютера, динамические 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).

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


Комментарии

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

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