Службы для некоторых пользователей (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).


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