Windowsの厄介なユーザーごとのサービスを管理する方法を見つけました。Windowsは、当然ながら、本来よりも少し複雑にしているからです。妙な速度低下に気付いたり、サービス数を最小限に抑えたい場合(特にRDSやVDI環境を使用している場合)、これらのサービスについて調べてみると、多少の手間が省けるかもしれません。これらのサービスは通常、ユーザーが実際にログインしたときにのみ実行されますが、時折、ひっそりと実行されて混乱を招くことがあります。ここでは、これらのサービスとは何か、見つける方法、そして不要なサービスを無効にする方法を理解し、頭を悩ませることなく、理解を深める方法をご紹介します。
Windowsですべてのユーザー別サービスを見つける方法
services.msc または PowerShell 経由でユーザー側サービスを識別する
まず、 「ファイル名を指定して実行」(その後 と入力)から、従来のservices.mscを開きます。 などのサフィックスやその他の奇妙な識別子を持つサービスを探します。これらはユーザーごとのサービスで、個々のログインセッションにリンクされています。一部の名前は、 のように LUID(ローカル一意識別子)のサフィックスで終わります。表示名から判断できますが、このサフィックスこそが、それらのサービスがユーザー固有のものであることを示すものです。Win + Rservices.msc_da170Clipboard User Service_da170
スクリプト作成に興味があるなら(いや、誰もが興味があるはずです)、PowerShell を使えば、スクリプトを絞り込むことができます。次の行を使ってください。
Get-Service | Where-Object { ($_. ServiceType -band 64) -eq 64 } | Select-Object Name, Status, ServiceType, DisplayName
これにより、サービスタイプ、特にSERVICE_USER_SERVICEタイプ(16進数0x40、10進数64)のサービスタイプが除外されます。複数のユーザーがログインしているマシンでは、これらのポップアップが多数表示され、それぞれがセッションに関連付けられます。
Windowsがこれらのサービスを舞台裏でどのように設定しているかを知りたいですか?テンプレートが保存されているレジストリ(HKLM\System\CurrentControlSet\Services)を確認してください。ユーザーごとのサービステンプレートをすべて一覧表示するコマンドは次のとおりです。
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
( UserServiceFlagsフィールドには、ユーザーごとのサービスがどのようなタイプであるかに関する詳細情報が提供されます。)
デフォルトのWindows 11 25H2環境に何が含まれているか確認する
Windows 11 25H2 でレジストリを確認すると表示される、典型的なユーザーサービスについて簡単に説明します。おそらく必要のないサービス、あるいはシステムの肥大化を最小限に抑えたいのであれば無効にした方が良いサービスもいくつか挙げておきます。
| サービス名 | 表示名 | スタートアップの種類 | 無効にすることができます | 説明 |
|---|---|---|---|---|
AarSvc |
エージェントアクティベーションランタイム | マニュアル | ⛔ 無効にしないでください | アプリのバックグラウンド エージェントを起動します。緊急の場合を除いて、そのままにしておくのが最善でしょう。 |
BluetoothUserService |
Bluetoothユーザーサポートサービス | マニュアル | 🟢 無効にしても安全 | ユーザーの Bluetooth 機能をサポートします。無効にすると、ユーザー レベルで Bluetooth サポートがオフになる可能性があります。 |
cbdhsvc |
クリップボードユーザーサービス | マニュアル | 🟢 無効にしても安全 | クリップボードの共有と同期(CloudClipboardなど)に対応しています。デバイス間でクリップボードを共有しない場合は、そのままでも問題ありません。 |
CDPUserSvc |
コネクテッドデバイスプラットフォームユーザーサービス | 自動 | 🟢 無効にしても安全 | 接続された周辺機器やアプリを同期します。接続や同期を行っていない場合は、電源をオフにしてください。 |
WpnUserService |
Windows プッシュ通知ユーザーサービス | マニュアル | ⛔ 無効にしないでください | アプリのプッシュ通知には不可欠です。何をしているのかよく理解していない限り、これをスキップすることはお勧めしません。 |
Windows でユーザーごとのサービスを無効化または削除する方法
レジストリ設定を即座に調整して無効化
これらのサービスのほとんどはデフォルトで無効になっています。必要な場合にのみ起動しますが、Windowsが特定のユーザーサービスを作成しないようにしたい場合は、レジストリのUserServiceFlags値を調整できます。これは、数十人のユーザーがログインすると余分なサービスによってシステムが重くなる可能性があるRDSサーバーやVDI環境で特に役立ちます。
DevicesFlowUserSvc例えば、Wi-Fi/Bluetooth機能やゲーム録画機能は不要だとしますBcastDVRUserService。そのサービスのレジストリエントリを見つけます。
HKLM\System\CurrentControlSet\Services\BcastDVRUserService
次に、 UserServiceFlagsというDWORDを追加または変更し、 に設定します0。これはPowerShellで実行できます。
New-ItemProperty -Path "HKLM:\System\CurrentControlSet\Services\BcastDVRUserService" -Name UserServiceFlags -PropertyType DWord -Value 0 -Force
これは基本的に、Windows にログイン時にユーザーごとのサービスの作成をスキップするよう指示するものです。再起動後、これらのサービスは生成されなくなります。
ちょっと奇妙ですが、設定によっては、いくつかのサービスを無効化する前に、まず有効化(UserServiceFlags を 1 に設定)する必要があるかもしれません。そうしないと、無効化したサービスが反映されません。また、再起動してもすぐには効果がない場合もあります。その場合は、ログオフとログインを繰り返すと改善されるかもしれません。
大規模な展開にグループポリシーを使用する
複数のデスクトップを管理している場合は、グループポリシーの基本設定からこの設定をプッシュできます。同じキーを指す新しいレジストリ項目設定を作成し、無効にするすべてのサービスのUserServiceFlagsを0に設定します。各マシンを手動で編集するよりも簡単です。
ただし、注意が必要です。スイッチを切り替える前に、何を無効にしているのかを必ず確認してください。いくつかのサービスは重要であり、無効にすると問題が発生する可能性があります。Microsoftのサポートリストを参考に、本番環境に展開する前に徹底的にテストしてください。
より実用的な観点から見ると、これらの調整のほとんどは、合理化された環境を求める人や、特定の速度低下のトラブルシューティングを行う人向けです。やり過ぎには注意してください。すべてを無効にすると、予期せぬ問題が発生する可能性があります。
うまくいけば、これは不要なプロセスを削減したり、少なくとも舞台裏で何が起こっているかをよりよく把握したりするのに役立ちます。
まとめ
- ユーザーごとのサービスは個々のログイン セッションに関連付けられており、services.msc または PowerShell を介して識別できます。
- レジストリ テンプレートは、HKLM\System\CurrentControlSet\Servicesで表示できます。
- これらを無効にするには、レジストリでUserServiceFlags を手動またはスクリプトで 0 に設定する必要があります。
- 注意してください。一部のサービスは重要なので、オフにしないでください。
- 必要に応じて、グループ ポリシーを使用してこれらの設定を一括管理します。
まとめ
全体的に見て、ユーザーごとのサービスを調べることは、特定の設定で違いを生む可能性があります。特に、システム構成をシンプルにしたり、トラブルシューティングを行ったりする場合に効果的です。Windowsはこれらのサービスを独自に適切に管理しているので、バランスを取るのが大変ですが、使い方を熟知しているのであれば、これらのサービスの一部を無効にすることでパフォーマンスが向上したり、不要なものを削減したりできます。レジストリやグループポリシーを変更する前に、必ずバックアップを取り、事前にテストしてください。この情報が、誰かの厄介な問題解決に役立つことを願っています。