Windows 10 22H2 に ESU(拡張セキュリティ更新プログラム)を登録したのに、Windows Update 画面右上の「登録済み」バッジが突然消える――その不安、よく分かります。本記事では“表示の揺らぎ”と“本当の登録状態”を切り分け、確実な確認手順と現場で効く復旧策、運用の勘所までを一気通貫で解説します。
結論:バッジが消えても、ESU 登録そのものが外れているとは限らない
「登録済み」バッジはあくまで UI インジケーターです。バックエンドの反映タイミングやキャッシュの状態、サービス再起動などの要因で一時的に非表示になることがあり得ます。登録の有効/無効はバッジではなく、ライセンス情報(SPP)と更新配信実績で判断してください。
なぜバッジは消えたり現れたりするのか(仕組みと要因)
- キャッシュの揺らぎ:Windows Update UI はローカルキャッシュ(
SoftwareDistribution配下)とクラウド側の“登録状態フラグ”を併用します。キャッシュが失効/不整合だと表示が一時的に消えることがあります。 - バックエンドの反映待ち:ESU 登録情報はバックエンド側で段階的に反映されます。反映中や直後は表示が落ち着かない場合があります。
- サービスの再起動:Windows Update(
wuauserv)、BITS、Software Protection(sppsvc)などの再起動や一時停止で、バッジが消えるケースがあります。 - 管理ポリシー/企業配布の影響:WSUS、WUfB、Intune、GPO などで UI が抑制されていると、表示が不安定または常時非表示になることがあります。
ESU が本当に有効かどうかを確実に確認する方法
コマンド(SPP)で確認:slmgr /dlv
- 管理者としてコマンド プロンプトを開く。
- 次を実行:
slmgr /dlv - 表示された詳細情報のなかに 「ESU for Windows 10 — Licensed」(またはそれに準ずる表記)があれば登録済みです。
※ /xpr は OS のライセンス満了のみを示すことが多く、ESU 状態は /dlv 側での確認が確実です。
PowerShell ワンライナーでの機械判定
管理者として PowerShell を開き、次を実行します。
# ESU のライセンス状態を SPP から確認
Get-CimInstance -ClassName SoftwareLicensingProduct |
Where-Object { $_.Name -match 'ESU.*Windows 10' -or $_.Description -match 'Extended Security Updates' } |
Select-Object Name, LicenseStatus, Description, PartialProductKey
- LicenseStatus = 1 は「Licensed」を意味することが一般的です。
- 何も出力されない場合は、ESU コンポーネントが未適用/未反映の可能性があります。
更新履歴で確認:ESU 向け更新が入っているか
- 「設定 > Windows Update > 更新の履歴」を開き、ESU 有効化コンポーネント(Enablement/Activation に相当)や、KB 番号が「50xxxx」帯の累積更新が適用されているか確認します。
- PowerShell での絞り込み例:
# ESU で配信されがちな KB 50xxxx をざっくり確認 Get-HotFix | Where-Object { $_.HotFixID -match '^KB50\d{4}$' } | Sort-Object InstalledOn -Descending
イベント ビューアーでの確認
イベント ビューアーで アプリケーションとサービス ログ > Microsoft > Windows > WindowsUpdateClient > Operational を開きます。更新適用の成否を示すイベントが記録されます。
| Event ID | 意味(代表例) | ポイント |
|---|---|---|
| 2 / 19 | 更新のインストール成功 | ESU 対象の更新にも適用。成功記録が継続していれば配信は届いています。 |
| 31 / 34 / 35 | ダウンロード/インストール開始/完了 | 進行状況の把握に有用。 |
| 40 / 41 / 43 | 失敗/ロールバック/再試行 | 繰り返す場合はコンポーネントのリセットや整合性確認を。 |
※ 環境やビルドにより ID の定義や文言は前後します。成功イベントが継続しているかに着目してください。
「登録済み」バッジを戻したい/安定させたいときの実践手順
手順 A:Windows Update コンポーネントのリセット(安全策)
キャッシュ不整合が疑われるときは、定番のリセットで表示が戻ることが多いです。管理者で実行してください。
net stop wuauserv
net stop bits
net stop cryptsvc
REM SoftwareDistribution をリネーム(復元容易で安全)
ren %windir%\SoftwareDistribution SoftwareDistribution.old
REM 署名カタログキャッシュも再生成
ren %windir%\System32\catroot2 catroot2.old
net start cryptsvc
net start bits
net start wuauserv
REM 更新の再検出
usoclient StartScan
削除版を使いたい場合は、次のスニペットでも可です。
net stop wuauserv
net stop bits
Del /f /s /q %windir%\SoftwareDistribution\*
net start bits
net start wuauserv
実施後、再起動 → Windows Update の再スキャンでバッジが戻るかを確認します。
手順 B:ライセンスの再同期(SPP/アクティベーション)
- 「設定 > 更新とセキュリティ > ライセンス認証」を開き、状態を確認します。
- 必要に応じてトラブルシューティングを実行、または次のコマンドで再アクティブ化を試行:
slmgr /ato
ESU 自体が年次キーや権利付与で管理されている場合、SPP の状態が不安定だと UI 反映が遅れることがあります。
手順 C:アカウント再サインイン/ワークスクールアカウントの再結合
- 「設定 > アカウント」で Microsoft アカウント/職場または学校アカウントの状態を確認し、サインアウト→サインインを実施。
- ハイブリッド Azure AD 参加や Intune 管理下の場合は、デバイスの準拠状態/登録状態を再評価します。
手順 D:時間同期/ネットワーク/証明書
- 時刻のずれは認証・配信失敗の原因になります。
w32tm /resync - プロキシ/SSL 検査/証明書ピン留めの影響で Windows Update/ライセンスサーバーに到達できない例もあります。ネットワーク経路を確認します。
手順 E:ポリシーで UI を隠していないか確認
GPO「Windows Update 機能へのアクセスを削除」等のポリシーが有効だと、インジケーターが出ない/不安定になります。UI ではなくログ/ライセンスで状態を判断しましょう。
確認ポイント早見表(現場向け)
| 観点 | 確認方法 | 合格ライン | 所要目安 |
|---|---|---|---|
| ライセンス | slmgr /dlv または PowerShell(SPP) | 「ESU for Windows 10 — Licensed」/ LicenseStatus=1 | 5 分 |
| 配信実績 | 更新履歴/HotFix(KB50xxxx) | 直近の月次が成功 | 5 分 |
| イベント | WindowsUpdateClient/Operational | 2/19(成功)記録がある | 5 分 |
| UI | Windows Update のバッジ | 参考値(なくても可) | 1 分 |
複数 PC で表示が食い違う理由
- キャッシュは端末単位:表示のズレは正常範囲。片方で消えても他方に影響しません。
- 配信タイミング差:検出・評価のスケジュールやサービス再起動履歴で表示が前後します。
- 管理プレーン差:WSUS/WUfB/Intune/ローカルポリシーなど、各端末の適用ポリシー差で UI の見え方が変わります。
よくある質問(FAQ)
Q. バッジが消えました。登録は外れていますか?
A. いいえ。まずは slmgr /dlv と更新履歴で実体を確認してください。配信実績が正常なら問題ありません。
Q. slmgr /dlv に ESU の行が見当たりません。
A. ESU 有効化コンポーネントや年次キーの投入が未完了の可能性があります。ESU の手順に従って再投入/確認してください。SPP(sppsvc)の再起動や OS の再起動で反映される場合もあります。
Q. 更新が失敗し続けます。
A. まず手順 A のリセットを実施。改善しない場合は SetupDiag や Get-WindowsUpdateLog でログを採取し、ドライバ/プロキシ/ストレージ空き容量/破損ファイル(sfc /scannow、DISM /Online /Cleanup-Image /RestoreHealth)を確認します。
Q. WSUS/Intune 環境です。バッジは見えなくても大丈夫?
A. 問題ありません。エビデンスはサーバー側の承認・クライアントの適用結果・イベントログで取得します。UI は二次情報です。
Q. 2025年10月14日以降も更新は届きますか?
A. ESU に加入していれば、同日以降も ESU のセキュリティ更新が配信されます。バッジの有無ではなく、ライセンス状態と配信実績で運用判断してください。
管理者向け:複数 PC をまとめて“ESU 実体基準”で監視するスクリプト
以下はホスト名一覧(CSV: hosts.csv / ヘッダー Name)をもとに、ESU の SPP 状態と KB50xxxx 適用有無を収集する PowerShell 例です(WinRM 有効前提)。
$hosts = Import-Csv .\hosts.csv
$result = foreach ($h in $hosts) {
try {
$esu = Invoke-Command -ComputerName $h.Name -ScriptBlock {
Get-CimInstance -ClassName SoftwareLicensingProduct |
Where-Object { $_.Name -match 'ESU.*Windows 10' -or $_.Description -match 'Extended Security Updates' } |
Select-Object Name, LicenseStatus, PartialProductKey
}
$kb = Invoke-Command -ComputerName $h.Name -ScriptBlock {
Get-HotFix | Where-Object { $_.HotFixID -match '^KB50\d{4}$' } | Sort-Object InstalledOn -Descending | Select-Object -First 1
}
[pscustomobject]@{
Computer = $h.Name
ESUStatus = if($esu){ if($esu.LicenseStatus -eq 1){'Licensed'} else {'NotLicensed'} } else {'Unknown'}
ESUKeyTail = if($esu){ $esu.PartialProductKey } else {''}
LatestKB50xxxx = if($kb){ $kb.HotFixID } else {''}
KBInstalledOn = if($kb){ $kb.InstalledOn } else {''}
}
} catch {
[pscustomobject]@{ Computer=$h.Name; ESUStatus='Error'; ESUKeyTail=''; LatestKB50xxxx=''; KBInstalledOn='' }
}
}
$result | Format-Table -AutoSize
# CSV に保存する場合
#$result | Export-Csv .\ESU-audit.csv -NoTypeInformation -Encoding UTF8
“バッジ基準”ではなく“実体基準(SPP+更新実績)”で監視するのが運用のコツです。
トラブル時の復旧フロー(文章版)
- 端末を再起動(サービスの状態を正常化)。
- 実体確認:
slmgr /dlv→ Licensed なら続行、見当たらなければ ESU 手順を再点検。 - 配信実績:更新履歴/イベント 2 または 19(成功)を確認。未適用が続くなら手順 A。
- 手順 A:コンポーネントリセット → 再スキャン。
- 手順 B:ライセンス再同期(
slmgr /ato/ Activation トラブルシューティング)。 - ネットワーク/時刻/証明書を検証(
w32tm /resync、プロキシ/SSL 検査)。 - それでも不安定なら、WSUS/Intune 側のポリシーと競合の有無、サードパーティ AV/EDR の干渉を確認。
原因と対処の対照表
| 主な原因 | よくある現象 | 一次対処 | 恒久対策/備考 |
|---|---|---|---|
| キャッシュ不整合 | バッジが断続的に消える、更新検出が遅い | 手順 A(リセット) | 月次パッチ後に自動再スキャンをスケジュール化 |
| SPP の状態不安定 | slmgr /dlv の表示が変動 | 手順 B(sppsvc 正常化/再同期) | 時刻同期・ネットワーク到達性を監視 |
| ポリシー/MDM の抑制 | 常に UI が出ない | ポリシー確認、UI ではなくログ/配信で判断 | 運用設計を“UI 非依存”に統一 |
| ネットワーク/証明書 | 更新失敗、認証失敗 | プロキシ/SSL 検査の例外調整、w32tm | Windows Update エンドポイントの健全性監視 |
安心して使い続けるための運用ポイント
- パッチ適用の“実体”を重視:毎月の更新後に SPP + HotFix + イベントを簡易点検(表の 4 観点)。
- 記録を残す:PowerShell 結果を CSV で保管し、月次の監査証跡にします。
- ロールバック時の備え:空き容量確保と復元ポイント/バックアップの整備。
- 期限の把握:Windows 10 の通常サポートは2025年10月14日まで。ESU 加入中は同日以降もセキュリティ更新が配信されます。
コマンド・スニペット集(コピー用)
基本確認
slmgr /dlv
Get-CimInstance -ClassName SoftwareLicensingProduct | Where-Object { $_.Name -match 'ESU.*Windows 10' -or $_.Description -match 'Extended Security Updates' } | Select Name, LicenseStatus, PartialProductKey
Get-HotFix | Where-Object { $_.HotFixID -match '^KB50\d{4}$' } | Sort-Object InstalledOn -Descending
更新関連の健全性
sfc /scannow
DISM /Online /Cleanup-Image /RestoreHealth
Get-WindowsUpdateLog
サービスと時刻
sc query wuauserv
sc query bits
sc query sppsvc
w32tm /query /status
w32tm /resync
ケーススタディ:現場で遭遇しやすい 3 パターン
パターン 1:登録直後にバッジあり → 翌日消える → 数日後復活
背景:バックエンド反映とキャッシュの整合性待ち。
対処:実体確認(SPP/履歴/イベント)で OK なら様子見可。気になる場合は手順 A を実施。
パターン 2:複数台のうち数台だけ表示されない
背景:検出スケジュール差/サービス再起動の履歴差。
対処:表示されない端末で手順 A、SPP の再同期(手順 B)。
パターン 3:ずっと表示されないが更新は適用される
背景:ポリシーや MDM が UI を抑制。
対処:UI ではなくログと配信実績で判断。監視はスクリプト化。
最後に:迷ったら“バッジより実体”で判断する
ESU の可否は「バッジが見えるか」ではなく、「ライセンスが正」と「更新が毎月届いているか」で決まります。UI の揺らぎに惑わされず、SPP/更新履歴/イベントログという 3 本柱で機械的に判定する運用に切り替えましょう。どうしても UI を整えたいときは、キャッシュのリセットとライセンス再同期を試してから原因を段階的に絞り込みます。
要点のまとめ
- 「登録済み」バッジの消失は UI 側の揺らぎであることが多い。
- ESU の真偽は slmgr /dlv、更新履歴(KB50xxxx)、イベント(2/19 の成功)で判定。
- 戻したいときは SoftwareDistribution/catroot2 のリセット、SPP 再同期、時刻/ネットワークの正常化。
- 複数台の表示差は正常範囲。UI ではなく実体基準での監視を徹底。
- 2025年10月14日以降も、ESU 加入中なら更新が継続配信。

コメント