Windows のユーザーごとのサービス
ユーザーが Windows にサインインすると、OS がユーザーごとのサービスを作成します。 ユーザーがサインアウトすると、これらのサービスは停止され、削除されます。 これらは組み込みのセキュリティ プリンシパルではなく、ユーザー アカウントのセキュリティ コンテキストで実行されます。 この動作は、事前構成済みアカウントまたはタスクとして関連付けられたこれらのサービスを実行する前のアプローチよりも優れたリソース管理を提供します。
注
ユーザーごとのサービスは、デスクトップ エクスペリエンスをインストールする場合にのみ Windows Server で使用できます。 詳細については、「Server Core とデスクトップ エクスペリエンス搭載サーバーのインストール オプション」を参照してください。
Windows では、レジストリで定義されているテンプレートに基づいて、これらのユーザーごとのサービスが作成されます。 これらのサービスの動作を管理または制御する必要がある場合は、テンプレートを調整できます。 たとえば、テンプレート サービスのスタートアップの種類を [無効] に設定できます。 この例では、Windows は停止状態と無効状態でユーザーごとのサービスを作成します。
重要
テンプレート サービスの構成に対する変更を慎重にテストしてから、運用環境に広範にデプロイします。
この記事の情報を使用して、ユーザーごとのサービスを理解し、ユーザー サービス テンプレートを構成し、グループ ポリシーとセキュリティ テンプレートを使用してユーザーごとのサービスを管理します。
ユーザーごとのサービスの一覧
次の表に、現在のバージョンの Windows のユーザーごとのサービスを示します。 Windows 10/11 の他のバージョンでは、同じサービスが利用できない場合があります。
これらのサービスのいずれかを再構成する前に、この情報を確認して影響を理解してください。 たとえば、ユーザーごとのサービスを無効にした場合、適切に動作しない依存アプリが存在する可能性があります。
表示名 | サービス名 | 既定のスタートの種類 | 依存関係 | 説明 |
---|---|---|---|---|
エージェント アクティブ化ランタイム | AarSvc | Manual | 会話エージェント アプリケーションをアクティブ化するためのランタイム。 | |
Bluetooth ユーザー サポート サービス | BluetoothUserService | Manual | 各ユーザー セッションに関連する Bluetooth 機能の適切な機能をサポートします。 | |
OneCore キャプチャ サービス | CaptureService | Manual | Windows.Graphics.Capture 名前空間のスクリーンショット API を呼び出すアプリケーションのオプションのスクリーンショット機能を有効にします。 | |
クリップボード ユーザー サービス | cbdhsvc | 自動 (遅延開始) | Windows では、クリップボードのシナリオにこのユーザー サービスを使用します。 たとえば、クリップボードの履歴やデバイス間での同期などです。 詳細については、「Windows のクリップボード」を参照してください。 | |
クラウド バックアップと復元サービス | CloudBackupRestoreSvc | Manual | アプリケーションと設定の状態の変化をシステムで監視します。 必要に応じて、このサービスはクラウドのバックアップと復元の操作を行います。 | |
Connected Devices Platform User Service | CDPUserSvc | 自動 | - ネットワーク接続ブローカー - リモート プロシージャ コール (RPC) - TCP/IP プロトコル ドライバー |
このサービスを使用すると、ユーザーは接続されたデバイスの接続、管理、制御を行うことができます。 これらの接続されたデバイスには、モバイル、Xbox、HoloLens、スマート/IoT デバイスが含まれます。 具体的な例については、「Windows で近くのデバイスと共有する」を参照してください。 |
UX ユーザー サービスに同意する | ConsentUxUserSvc | Manual | アプリが機密のリソースやデバイスの場所などの情報にアクセスできるようにするために、システムがユーザーの同意を要求することを許可します。 | |
Contact Data | PimIndexMaintenanceSvc | Manual | UnistoreSvc | 連絡先データのインデックスを作成して、連絡先をすばやく検索します。 このサービスを停止または無効にすると、検索結果に連絡先が表示されない可能性があります。 |
Credential Enrollment Manager | CredentialEnrollmentManagerUserSvc | Manual | このサービスは、セキュリティで保護されたストレージとユーザー資格情報の取得をサポートします。 たとえば、Web サイト、リモート デスクトップ接続、またはその他のアプリのトークンなどです。 | |
Device Association Broker | DeviceAssociationBrokerSvc | Manual | - DevicePicker - シェル ペアリング UX |
新しいデバイス シナリオのアプリ内ペアリングとアクセス チェックをサポートします。 |
Device Picker | DevicePickerUserSvc | Manual | Windows では、このユーザー サービスを使用して、Miracast、Digital Living Network Alliance (DLNA)、Discovery and Launch (DIAL) エクスペリエンスを管理します。 | |
デバイス フロー | DevicesFlowUserSvc | Manual | ユーザー インターフェイスと設定アプリを接続し、WiFi ディスプレイや Bluetooth デバイスとペアリングできるようにします。 | |
ゲーム録画とブロードキャスト ユーザー サービス | BcastDVRUserService | Manual | Windows では、このユーザー サービスをゲーム録画とライブ ブロードキャストに使用します。 | |
Messaging Service | MessagingService | Manual | このサービスは、テキスト メッセージングと関連機能をサポートしています。 | |
Now Playing Session Manager | NPSMSvc | Manual | Now Playing Session Manager (NPSM) サービスは、デバイスで実行されているメディア セッションを管理します。 | |
Plan 9 リダイレクター サービス | P9RdrService | Manual | Linux 用 Windows サブシステムでサポートされているトリガー開始 plan9 ファイル サーバーを有効にします。 詳細については、「Bell Labs のプラン 9」を参照してください。 | |
Pen Service | PenService | Manual | ペン入力デバイスのテール ボタンを押すと、このサービスはこれらの操作に応答します。 アプリケーションを起動したり、[設定] でカスタマイズした別の操作を実行したりできます。 詳細については、ペン デバイスで Surface ペンの使用方法、またはハードウェア開発者向けドキュメントの使用方法に関するユーザー ドキュメントを参照してください。 | |
Print Workflow | PrintWorkflowUserSvc | Manual | 印刷ワークフロー アプリケーションのサポートを提供します。 このサービスを無効にすると、一部の印刷機能が正常に機能しない可能性があります。 | |
ホストの同期 | OneSyncSvc | 自動 (遅延開始) | このサービスは、メール、連絡先、予定表、およびその他のユーザー データを同期します。 このサービスが停止すると、この機能に依存するメールやその他のアプリケーションが正しく動作しません。 | |
UDK User Service | UdkUserSvc | Manual | Windows では、このサービスを使用してシェル エクスペリエンス間の調整を行います。 | |
User Data Access | UserDataSvc | Manual | UnistoreSvc | 連絡先情報、予定表、メッセージ、その他のコンテンツなど、構造化されたユーザー データへのアクセスをアプリに提供します。 このサービスを停止または無効にすると、このデータを使用するアプリが正しく動作しない可能性があります。 |
User Data Storage | UnistoreSvc | Manual | 連絡先情報、予定表、メッセージ、その他のコンテンツを含む構造化されたユーザー データのストレージを取り扱います。 このサービスを停止または無効にすると、このデータを使用するアプリが正しく動作しない可能性があります。 | |
Web Threat Defense ユーザー サービス | webthreatdefusersvc | 自動 | このサービスは、承認されていないエンティティが資格情報へのアクセスを試みた場合にユーザーに警告することで、コンピューターを保護するのに役立ちます。 | |
Windows プッシュ通知ユーザー サービス | WpnUserService | 自動 | このサービスは、ローカル通知とプッシュ通知をサポートする Windows プッシュ通知サービス (WNS) プラットフォームをホストします。 サポートされている通知は、タイル、トースト、Raw です。 |
ユーザーごとのサービスを表示する
Windows レジストリの外部ではユーザー サービス テンプレートを表示できませんが、ユーザー固有のユーザーごとのサービスを確認できます。 Windows では、これらのサービスが次の形式で表示されます: <service name>_LUID
、なお <service name>
はユーザー サービスの表示名であり、LUID
はユーザー コンテキストのローカル一意識別子です。
たとえば、次のユーザーごとのサービス名が表示される場合があります:
Contact Data_443f50
Sync Host_443f50
User Data Access_443f50
User Data Storage_443f50
注
すべてのユーザーごとのサービスの表示名とサービス名には、同じ LUID サフィックスが含まれます。
Windows サービス コンソールでユーザーごとのサービスを表示する
Windows にサインインしたら、services.msc
を実行してサービス コンソールを開きます。 ローカル コンピューターを表示すると、ユーザー アカウントのこれらのサービスが表示されます。
Windows PowerShell を使用してユーザーごとのサービスを表示する
次の PowerShell スクリプトは、ユーザーごとのサービスを照会する方法の例です。
64
ビット値を含むサービスの種類の値を照会します。
# Define the bit value for per-user services in the ServiceType property of a service object
$flag = 64
# Define an empty array to store the resulting services that match the criteria
$serviceList = @()
# Get all services on the computer and store them in the variable
$services = Get-Service
# Loop through each service in the array of services.
foreach ( $service in $services ) {
# For each specific service, check if the service type property includes the 64 bit using the bitwise AND operator (-band).
# If the result equals the flag value, then the service is a per-user service.
if ( ( $service.ServiceType -band $flag ) -eq $flag ) {
# When a per-user service is found, then add that service object to the results array.
$serviceList += $service
}
}
# Display the results array, sorted by display name, in a table format with the specified properties.
$serviceList | Sort-Object DisplayName | Format-Table DisplayName, Name, StartType, ServiceType
コマンド ラインからユーザーごとのサービスを表示する
cmd.exe
を実行して Windows コマンド プロンプトを開きます。
sc qc
コマンドを使用して、これらのサービスを照会します。
Type 値は、サービスがユーザー サービス テンプレートかユーザー サービス インスタンスかを示します。
次の例では、ゲーム録画とブロードキャスト ユーザー サービス (BcastDVRUserService
) サービスのテンプレートとユーザー固有のインスタンスを照会します。
sc qc BcastDVRUserService
sc qc BcastDVRUserService_18f113
ユーザーごとのサービスを無効にする方法
ユーザー サービスのテンプレートは、サービス コンソール (services.msc ) に表示されません。 ユーザーごとのサービスを無効にするには、グループ ポリシーまたはスクリプト化されたソリューションを使用して、レジストリを直接編集する必要があります。 テンプレートは HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
のレジストリにあります。
注
ユーザーごとのサービスを無効にした場合でも、Windows はユーザーがサインインすると、これを停止状態と無効状態で作成されます。 ユーザーがサインアウトすると、Windows はそのユーザーごとのサービスを削除します。
通常のグループ ポリシー管理方法を使用して、すべてのユーザーごとのサービス テンプレートを管理することはできません。 ユーザーごとのサービスはサービス管理コンソールに表示されないため、グループ ポリシー サービス ポリシー エディターにも表示されません。
さらに、セキュリティ テンプレートでは管理できないユーザー サービスが 4 つあります。
- PimIndexMaintenanceSvc
- UnistoreSvc
- UserDataSvc
- WpnUserService
これらの制限により、次の方法を使用して、ユーザーごとのサービス テンプレートを管理できます:
- セキュリティ テンプレートとスクリプト、またはグループ ポリシー基本設定レジストリ ポリシーの組み合わせ。
- すべてのサービスのグループ ポリシー設定。
- すべてのサービスのスクリプト。
セキュリティ テンプレートを使用してテンプレート サービスを管理する
CDPUserSvc と OneSyncSvc のユーザーごとのサービスは、セキュリティ テンプレートを使用して管理できます。
次に、例を示します。
[Unicode]
Unicode=yes
[Version]
signature="$CHICAGO$"
Revision=1
[Service General Setting]
"CDPUserSVC".4,""
スクリプトを使用してユーザーごとのサービスを管理する
ユーザーごとのサービスのスタートアップの種類を変更するスクリプトを作成できます。 次に、グループ ポリシーまたは Microsoft Configuration Manager などの別の管理ソリューションを使用して、対象のデバイスにスクリプトを展開します。
例 1: Set-Service
PowerShell コマンドレットの使用
次のサンプル スクリプトでは、Set-Service PowerShell コマンドレットを使用して、PimIndexMaintenanceSvc サービスの開始の種類を無効に構成します:
Set-Service -Name PimIndexMaintenanceSvc -StartupType Disabled
例 2: sc.exe config
コマンド ラインの使用
次のサンプル スクリプトは sc.exe config
を使用して、PimIndexMaintenanceSvc サービス開始の種類を無効に構成します:
sc.exe configure PimIndexMaintenanceSvc start= disabled
注
=
の後のスペースは意図的なものです。
グループ ポリシーの基本設定を使用してテンプレート サービスを管理する
セキュリティ テンプレートでユーザーごとのサービスを無効にできない場合は、グループ ポリシーの基本設定を使用します。
グループ ポリシー管理コンソール (gpmc.msc) を開きます。
新しいグループ ポリシー オブジェクト (GPO) を作成するか、既存の GPO を使用します。
GPO を編集して、グループ ポリシー オブジェクト エディターを起動します。
グループ ポリシーをターゲットにする方法に応じて、[コンピューターの構成] または [ユーザーの構成] で [基本設定]、[Windows の設定] の順に移動し、[レジストリ] を選択します。
[操作] メニューの [新規] を選択し、[レジストリ項目] を選択します。
Hive の場合は
HKEY_LOCAL_MACHINE
を選択します。[キー パス] の横にある省略記号 (
...
) を選択します。System\CurrentControlSet\Services
を参照し、ユーザー サービス テンプレートを選択します。 例:PimIndexMaintenanceSvc
。 値の一覧で [開始] を強調表示し、[選択] を選択します。[スタート プロパティ] ウィンドウで、[値のデータ] を
00000003
から00000004
に変更して [OK] を選択します。 など、[値のデータ] を [4] = [無効] に設定します。注
サービスの開始値
4
は無効です。グループ ポリシー テンプレートで管理できない他のサービスを追加するには、ポリシーを編集し、前の手順を繰り返します。
Windows レジストリを使用したユーザー サービス テンプレートの管理
グループ ポリシーの基本設定を使用してユーザーごとのサービスを管理できない場合は、Windows レジストリを編集できます。 ユーザー サービス テンプレートを無効にするには、各サービスのスタートアップの種類を 4
、つまり [無効] に変更します。
注意
他に代替手段がない場合を除き、レジストリを直接編集しないでください。 レジストリ エディターまたは Windows では、レジストリに対するこれらの手動の変更は検証されません。 正しくない値を格納できるますが、システムで回復不可能なエラーが発生する可能性があります。 可能であれば、レジストリを直接編集する代わりに、グループ ポリシーまたはその他のサポートされている Windows ツールを使用して、これらのタスクを実行します。 レジストリを編集する必要がある場合は、細心の注意を払ってください。
例 1: reg.exe
コマンド ライン コマンドを使用してレジストリを編集する
管理者として
cmd.exe
を実行し、Windows コマンド プロンプトを開きます。次の例には、Windows レジストリの Start 値を
4
に変更して、指定した Windows サービスを無効にする複数のコマンドが含まれています。REG.EXE ADD HKLM\System\CurrentControlSet\Services\CDPUserSvc /v Start /t REG_DWORD /d 4 /f REG.EXE ADD HKLM\System\CurrentControlSet\Services\OneSyncSvc /v Start /t REG_DWORD /d 4 /f REG.EXE ADD HKLM\System\CurrentControlSet\Services\PimIndexMaintenanceSvc /v Start /t REG_DWORD /d 4 /f REG.EXE ADD HKLM\System\CurrentControlSet\Services\UnistoreSvc /v Start /t REG_DWORD /d 4 /f REG.EXE ADD HKLM\System\CurrentControlSet\Services\UserDataSvc /v Start /t REG_DWORD /d 4 /f REG.EXE ADD HKLM\System\CurrentControlSet\Services\WpnUserService /v Start /t REG_DWORD /d 4 /f
例 2: レジストリ エディターのユーザー インターフェイスを使用してレジストリを編集する
管理者として
regedit.exe
を実行し、レジストリ エディターを開きます。HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services
を参照し、ユーザー サービス テンプレートを選択します。 例:CDPSvc
。値の一覧で、[Start] の値を開きます。
[値のデータ] を
4
に変更します。
例 3: ユーザーごとのサービスの作成を禁止する
ユーザーがサインオンしたときに、Windows がユーザーごとのサービスを作成できないようにすることができます。 レジストリの同じサービス テンプレート ノードで、UserServiceFlags
を 0
に設定します。
次のステップ
Windows Server のシステム サービスを無効にする方法の詳細については、「デスクトップ エクスペリエンスを使用した Windows Server でのシステム サービスの無効化に関するガイダンス」を参照してください。