ユーザー プロファイルの強制アンロードによる更新プログラムの適用失敗

Last Update: feedback 共有

※本記事はマイクロソフト社員によって公開されております。

概要

更新プログラム適用後の再起動中、ユーザー プロファイルの強制アンロードが発生した場合、タイミングにより適用処理に失敗しロールバックが発生するケースがございます。
本ブログでは、この事象の特徴と対処方法についてご説明いたします。

対象の OS

Windows 10, Windows Server 2016 以上

事象の特徴

本事象が発生するシステムには、以下 2 つの特徴がございます。

特徴 1

更新プログラムを適用後の再起動中、適用処理に失敗しロールバックが発生した場合、Setup イベントログにエラー 0x800f0922 が記録されます。

1
2
3
4
5
6
7
8
9
10
11
12
13
Log Name: Setup
Source: Microsoft-Windows-Servicing
Date: 2023-xx-xxTxx:xx:xx.xxx
Event ID: 3
Task: N/A
Level: 情報
Opcode: 情報
Keyword: N/A
User: S-1-5-18
User Name: NT AUTHORITY\SYSTEM
Computer: xxxx
Description:
パッケージ KBXXXX を状態 インストール済み に変更できませんでした。状態: 0x800f0922。

特徴 2

前述のイベントログの発生時間から数分前 Application ログに TiWorker.exe がユーザー プロファイルのレジストリを参照していたことを示唆する情報が記録されます。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Log Name: Application
Source: Microsoft-Windows-User Profiles Service
Date: 2023-xx-xxTxx:xx:xx.xxx
Event ID: 1530
Task: N/A
Level: 情報
Opcode: 情報
Keyword: N/A
User: S-1-5-18
User Name: NT AUTHORITY\SYSTEM
Computer: xxx
Description:
レジストリ ファイルは他のアプリケーションまたはサービスで使用されています。ファイルはすぐにアンロードされます。
レジストリ ファイルを保持しているアプリケーションまたはサービスはこれ以降正しく機能しない可能性があります。ユーザー操作は必要ありません。

詳細 -
x user registry handles leaked from \Registry\User\S-1-5-xx-xxxx-xxxx-xxxx-xxxx:
Process xxx (\Device\HarddiskVolumeX\Windows\WinSxS\amd64_microsoft-windows-servicingstack_xxxx_xx.x.xxxx.xxxx_none_xxxxx\TiWorker.exe) has opened key \REGISTRY\USER\S-1-5-xx-xxxx-xxxx-xxxx-xxxx
Process xxx (\Device\HarddiskVolumeX\W

対処方法

前述の 2 つの特徴を満たす場合、システム起動時に動作し比較的短いタイミングで終了するタスク スケジューラ上のタスク、または同様の処理傾向をもつアプリケーションやスクリプトの動作影響により、再起動中にユーザー プロファイルの強制アンロードが発生し、適用処理が失敗した可能性が高いと判断されます。

対処方法としては以下の 3 点のうち、何れか 1 つを実施いただけますと次回から事象を回避できます。

対処 1

貴社で作成いただいたタスクのうち、 システムの起動時 に実行するタスクの実行ユーザーを SYSTEM アカウントに変更します。
SYSTEM アカウントは特殊なアカウントであるため、ユーザー プロファイルの強制アンロードが発生しません。

対処 2

更新プログラム適用時にのみ、事前に システムの起動時 に実行されるタスク (または同様の処理傾向をもつアプリケーション、スクリプト) を無効化します。
該当タスク (またはアプリケーションやスクリプト) が動作しないことで、ユーザー プロファイルの強制アンロードが発生しません。

対処 3

後述のグループ ポリシーを設定し、ユーザー プロファイルの強制アンロードを無効化します。
このポリシーを有効化することで、ユーザー プロファイルの強制アンロード発生時の動作を変更することができ、事象を回避できます。

1
2
3
4
[コンピュータの構成]
+--[管理用テンプレート]
+--[システム]
+--[ユーザー プロファイル] -- [ユーザーのログオフ時に強制的にユーザー レジストリをアンロードしない] を 有効 にする

※ レジストリ キーにて設定を行う場合、以下を利用します。

1
2
3
4
キー: HKLM\Software\Policies\Microsoft\Windows\System
名前: DisableForceUnload
種類: REG_DWORD
値 : 1

どちらの設定についても、システムを再起動する必要はございません。
なお、移動ユーザー プロファイルを利用している場合、アンロード処理に影響を及ぼすことが懸念されるため、可能であれば、対処 1 また 2 での対応をご検討ください。