[ホーム] - [Windows 11 サービス一覧] - [App Readiness]

App Readiness サービスの概要と起動の必要性

このページでは"App Readinessサービス"とは何かに関して説明します。関連してこのサービスが必要性なのか、起動方法の変更方法、手動の停止や手動の開始方法に関して説明します。
作成日:2023/09/12

【目次】

サービス名 AppReadiness
表示名 App Readiness
dll / exe 名
説明 (マイクロソフト情報より引用) ユーザーがこの PC に初めてサインインしたときや新しいアプリを追加したときにアプリを使用できるよう準備します。
セキュアPC上の起動必要性


◎起動を強く推奨、○起動を推奨、△環境による、×停止を推奨、××停止を強く推奨



サービスの必要性


アプリを使用するために必要。デフォルトの"手動"のままとする。必要時に自動的に起動される。

新規にユーザを作成しその後初めてWindows 10にサインインするときにこのサービスによりアプリ実行環境が作成される。無効にしていると環境が正常に作成されないので不具合となる。その他このサービスは「役割」「機能」のインストール時に使用する。


初めてサインイン時にエラー


このサービスが無効化されている場合、新規に作成したユーザが初めてWindows にサインインすると以下のエラーが発生してストアアプリが使用できません。

この ms-windows-store を開くには新しいアプリが必要です

この場合はApp Readiness サービスを"手動"に変更してください。

2018年11月の実験結果ではこのサービスを無効化した状態で初めてサインインしたユーザではスタートメニューは上記のエラーで使用できませんでした。その後サービスを有効にしても改善しませんでした。この結果より一度サービス無効化で初めてサインインしたユーザはアプリ実行環境が正常に構築されず、復旧も難しいようです。再度新規に作り直した方が良さそうです。

KB4038788 の不具合


KB4038788 (OS ビルド 15063.608) を適用すると、App Readinessサービスが起動時に遅延してログイン処理が非常に遅くなるという現象が発生するようです。

解決方法:
"一部の OEM ファクトリイメージ デバイスに Windows の更新プログラムをインストールした後に Windows 10 を再起動すると、黒い画面が表示される "
https://support.microsoft.com/ja-jp/help/4043292/windows-10-black-screen-when-restarts-after-windows-update-oem-factory

サービスの起動方法を変更する

サービスの起動方法を変更にする方法を紹介します。サービス管理ツール(services.msc) で設定します。Windows 11 の画面で説明します。

(1)スタートメニューから[管理ツール] - [サービス]を選択します。

(2)以下の画面が表示されるため、"App Readiness"をダブルクリックします。

(3)「スタートアップの種類」から起動のタイプを設定します。設定が完了したら[OK]をクリックします。

各起動設定の内容は以下の通りです。



自動(延滞開始)・・・・・他の自動起動サービスが全て起動されてから起動されます。
自動・・・・・Windows 起動時に自動で起動されます。
手動・・・・・自動では起動されませんが、手動あるいは他のサービスなどから起動することが可能です。
無効・・・・・自動起動されません。手動でも起動できません。
自動(トリガー)・・・・・Windows 起動時に自動起動されますが、役目が終了したら自動的に停止します。
手動(トリガー)・・・・・他のサービスなどから起動されますが、役目が終了したら自動的に停止します。

sc コマンドでサービスを設定する

次にsc コマンドでコマンドプロンプトより設定する方法を紹介します。

(1)管理者でコマンドプロンプトを開きます。

参考:管理者権限でコマンドプロンプトを開く方法

(2)以下のコマンドを実行します。


自動起動設定



C:\>sc config AppReadiness Start= auto


【注意】Powershellで実行すると、sc がコマンドレットである set-contentとバッティングしエラーとなるので注意してください。C:\WINDOWS\system32\sc.exe などフルパスで指定するなどの工夫が必要です。
手動



C:\>sc config AppReadiness Start= demand

無効



C:\>sc config  AppReadiness Start= disabled

自動(延滞開始)



C:\>sc config  AppReadiness Start= delayed-auto

sc コマンドで以下のようなエラーが発生する場合はコマンドプロンプトを管理者として実行してください。


C:\>sc stop ServiceName

[SC] OpenService FAILED 5:
アクセスが拒否されました。

サービスを手動開始する

サービスを手動で開始する方法を紹介します。sc コマンドにより起動します。


C:\>sc start AppReadiness

他の方法として net コマンドでも開始させることが可能です。


C:\>net start AppReadiness


サービスを手動で停止する

サービスを手動で停止する方法を紹介します。sc コマンドにより停止します。


C:\>sc stop AppReadiness

他の方法として net コマンドでも停止させることが可能です。


C:\>net stop AppReadiness


サービスの設定を確認する

sc コマンドを利用してサービスの設定を確認する方法を紹介します。



c:\>sc queryex AppReadiness 

SERVICE_NAME: AppReadiness 
        TYPE               : 30  WIN32  
        STATE              : 1  STOPPED 
        WIN32_EXIT_CODE    : 0  (0x0)
        SERVICE_EXIT_CODE  : 0  (0x0)
        CHECKPOINT         : 0x0
        WAIT_HINT          : 0x0
        PID                : 0
        FLAGS              : 

sc コマンドを利用してサービスの起動設定(自動、手動、無効など)を確認することが可能です。



c:\>sc qc AppReadiness 
[SC] QueryServiceConfig SUCCESS

SERVICE_NAME: AppReadiness
        TYPE               : 20  WIN32_SHARE_PROCESS 
        START_TYPE         : 3   DEMAND_START
        ERROR_CONTROL      : 1   NORMAL
        BINARY_PATH_NAME   : C:\WINDOWS\System32\svchost.exe -k AppReadiness -p
        LOAD_ORDER_GROUP   : 
        TAG                : 0
        DISPLAY_NAME       : App Readiness
        DEPENDENCIES       : 
        SERVICE_START_NAME : LocalSystem

サービスが起動中か確認する

net start コマンドを利用してサービスが起動中か確認することが可能です。findstr の 戻り値 (ERRORLEVEL)で結果の判定が可能です。
サービス起動中なら文字列が存在するはずなので findstr で検索しています。




c:\>net start   | findstr -i /c:"App Readiness" 

c:\>rem 0で実行中、その他は1、findstr失敗は2 

c:\>rem if %ERRORLEVEL% == 0 echo 起動中 

c:\>rem if %ERRORLEVEL% == 1 echo 停止中 

c:\>rem if %ERRORLEVEL% == 2 echo 不明 
停止中

sc コマンドを利用してサービスが起動中か確認することが可能です。findstr の 戻り値 (ERRORLEVEL)で結果の判定が可能です。
サービス起動中なら"Status"が"Running" であるためfindstr で検索します。




c:\>sc query AppReadiness   | findstr -i State   | findstr -i Running 

c:\>rem 0で実行中、その他は1、findstr失敗は2 

c:\>rem if %ERRORLEVEL% == 0 echo 起動中 

c:\>rem if %ERRORLEVEL% == 1 echo 停止中 

c:\>rem if %ERRORLEVEL% == 2 echo 不明 
停止中

レジストリからサービスの設定を確認する

レジストリから reg コマンドでサービスの設定を確認する方法を紹介します。サービスの設定はレジストリに保存されています。その値を確認します。



c:\>reg query HKLM\System\CurrentControlSet\services\AppReadiness   | findstr -i "group ObjectName DependOnService ErrorControl RequiredPrivileges ServiceSidType" 
    ErrorControl    REG_DWORD    0x1
    ObjectName    REG_SZ    LocalSystem
    RequiredPrivileges    REG_MULTI_SZ    SeImpersonatePrivilege\0SeTcbPrivilege\0SeBackupPrivilege\0SeRestorePrivilege\0SeProfileSingleProcessPrivilege
    ServiceSidType    REG_DWORD    0x1

[ホーム] - [Windows 11 サービス一覧]




(ご注意)本ページの内容の正当性は保障されません。内容に誤りがある場合も有ります。 本ページの情報は高セキュリティを目指すPCで起動すべきサービスの指針を示していますが、環境に依存するためすべての環境に当てはまることは保障しません。 本サイト内の内容を使用して発生したいかなる時間的損害、金銭的損害あるいはいかなる損害に対して、いかなる人物も一切の責任を負いません。あくまでも個人の判断で使用してください。 本サイト内掲載されている情報は、著作権法により保護されています。いかなる場合でも権利者の許可なくコピー、配布することはできません。 このページはリンクフリーです。(このページへの直接リンクも可能です。)


Copyright(c) TOOLJP.COM 1999-2023