2025 年 8 月末~9 月に配信されたプレビュー更新プログラム「KB5064081」を適用すると、一部の環境で IIS Manager(inetmgr.exe)のツリーや機能ビューが真っ白になり、設定確認や変更ができなくなる事象が報告されています。本記事では原因の仕組みを技術的に解きほぐし、即時復旧できる実践的な手順から、組織展開での予防運用、検知・監視、よくあるつまずきの解決までを網羅的に解説します。
IIS Manager が空白になる問題の概要(KB5064081)
KB5064081(2025 年 8~9 月配信のプレビュー品質更新)を適用後、IIS Manager の左ペイン(接続ツリー)や右ペイン(機能ビュー)が白紙表示になり、サイトやアプリケーションの管理 UI が使えなくなる場合があります。更新プログラムをアンインストールして復旧できる環境もある一方で、0x800f0825(CBS_E_CANNOT_UNINSTALL) により削除できないケースも確認されています。
主な症状
- inetmgr.exe が起動はするが、接続ツリーと機能ビューが空白のまま。
- 「サーバー名」や「サイト」「アプリケーション プール」が表示されず、操作不可。
- 既存の Web サイトは サービスとしては稼働を継続している(アクセスはできる)が、GUI による確認や変更ができない。
- イベント ログに管理スナップインの読み込み失敗が断続的に記録されることがある。
| 見える症状 | 実際の影響 | 備考 |
|---|---|---|
| IIS Manager の UI が真っ白 | GUI 操作不可。 稼働中サイトの配信自体は継続。 | サービスや HTTP 応答は継続するため、緊急停止は不要。 |
| 管理ツールの読み込みエラー | 管理 UI の構成ファイル解釈に失敗 | 内部例外は発生するがワーカープロセスには直結しない。 |
| 更新プログラムのアンインストール不可 | 0x800f0825: 削除要件不満足 | wusa や dism での切り戻しが効かない場合がある。 |
技術的な原因とメカニズム
根本原因は、KB5064081 に含まれる IIS 関連コンポーネントのインストール スクリプトが、IIS 管理 UI の構成ファイル C:\Windows\System32\inetsrv\config\administration.config を更新する際、環境変数 %WINDOWS_PUBLIC_KEY_TOKEN% を展開できずに書き込んでしまう点にあります。
本来、IIS 管理 UI は administration.config に定義された各管理拡張(アセンブリ)の PublicKeyToken を手掛かりにロードします。ここが 31bf3856ad364e35(Microsoft の公開キー トークン)に正しく解決されるべきところ、生の文字列 %WINDOWS_PUBLIC_KEY_TOKEN% のまま保存されることで、UI のアセンブリ解決に失敗し、結果としてツリー/機能ビューが空白のままになります。
問題の具体例(Before / After)
KB 適用後の一部環境での administration.config(抜粋):
<add name="IIS_Management"
type="Microsoft.Web.Management, Version=10.0.0.0, Culture=neutral, PublicKeyToken=%WINDOWS_PUBLIC_KEY_TOKEN%" />
正しい状態(修正後):
<add name="IIS_Management"
type="Microsoft.Web.Management, Version=10.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
この置換により、IIS Manager は管理 UI 拡張の読み込みに成功し、即座に GUI が復旧します。なお、この修正は管理 UI の設定ファイルのみを変更するもので、IIS サービスや稼働中サイトのプロセスには影響しません。
最短で復旧する方法(推奨:トークン置換)
最も確実かつダウンタイムを伴わないのが、administration.config の文字列置換です。以下の手順で即時復旧できます。
手順(GUI 編集)
- ローカル管理者権限でメモ帳(Notepad)や任意のエディターを「管理者として実行」。
C:\Windows\System32\inetsrv\config\administration.configを開く。- 検索機能で
%WINDOWS_PUBLIC_KEY_TOKEN%をすべて検出し、31bf3856ad364e35に一括置換。 - 上書き保存してエディターを閉じ、IIS Manager を再起動(再起動はアプリのみで可)。
ポイント:この変更はファイル書き換えのみであり、IIS の停止や OS 再起動は不要です。
権限エラー時の対処
ファイルの所有者が TrustedInstaller で保存に失敗する場合は、バックアップを取ったうえで一時的に所有権と権限を変更します。
takeown /f "C:\Windows\System32\inetsrv\config\administration.config"
icacls "C:\Windows\System32\inetsrv\config\administration.config" /grant administrators:F
修正後は必要に応じて元の ACL に戻してください。
バックアップ & ロールバック
copy "C:\Windows\System32\inetsrv\config\administration.config" "C:\Windows\System32\inetsrv\config\administration.config.bak_%DATE:/=-%_%TIME::=-%"
PowerShell で一括修正(単一マシン)
$path = "C:\Windows\System32\inetsrv\config\administration.config"
$bk = "$path.bak_$(Get-Date -Format yyyyMMdd_HHmmss)"
Copy-Item $path $bk -Force
(Get-Content -Raw $path).Replace('%WINDOWS_PUBLIC_KEY_TOKEN%', '31bf3856ad364e35') |
Set-Content -Path $path -Encoding UTF8 -Force
Write-Host "Replaced token in administration.config. Backup: $bk"
PowerShell(複数サーバーを一括修正)
WinRM/PowerShell Remoting が有効なサーバー群に対し、同時展開します。
$servers = @("WEB01","WEB02","WEB03") # 対象サーバーに置き換え
$script = {
$p = "C:\Windows\System32\inetsrv\config\administration.config"
if (Test-Path $p) {
$bk = "$p.bak_$(Get-Date -Format yyyyMMdd_HHmmss)"
Copy-Item $p $bk -Force
(Get-Content -Raw $p).Replace('%WINDOWS_PUBLIC_KEY_TOKEN%', '31bf3856ad364e35') |
Set-Content -Path $p -Encoding UTF8 -Force
"[$env:COMPUTERNAME] fixed. backup=$bk"
} else {
"[$env:COMPUTERNAME] administration.config not found."
}
}
Invoke-Command -ComputerName $servers -ScriptBlock $script
他の選択肢:アンインストール・ロールバック・再セットアップ
| 優先度 | 方法 | 実行コマンド/手順 | 補足 |
|---|---|---|---|
| ★★★ | 管理ファイルを書き換えて即時復旧 | 上記の GUI/PowerShell の置換手順 | サービス影響なし。最短で復旧。 |
| ★★☆ | KB5064081 をアンインストール | wusa /uninstall /kb:5064081 /quiet /norestart | 0x800f0825 が返る環境では不可。 アンインストール成功時は OS ビルドが 26100.5074 → 26100.2454 などへ後退。 |
| ★★☆ | システムの復元/バックアップからロールバック | 復元ポイント/イメージから巻き戻し | 再適用防止の一時停止/非表示を併用。 |
| ★☆☆ | 上書きインプレース アップグレード | 最新 ISO で「個人用ファイルとアプリを保持」を選択 | 最終手段。長時間のダウンタイムが発生。 |
0x800f0825(CBS_E_CANNOT_UNINSTALL)とは
累積更新の構成やコンポーネントの整合性により、wusa や dism でのロールバックが許されない(あるいは依存関係の都合で安全に戻せない)状態を示すエラーです。この場合は administration.config の置換で復旧し、更新プログラムの再配信を防ぐ運用に切り替えるのが現実的です。
変更の安全性とリスク評価
- 影響範囲の限定性:修正対象は管理 UI の構成ファイルのみ。HTTP.sys / w3wp などランタイムへは非侵襲。
- 可逆性:バックアップから即座に戻せる(ファイル差分のみ)。
- 監査性:ファイルの更新日時・ハッシュを保全すれば、変更管理の証跡を残せる。
復旧後の確認ポイント(チェックリスト)
- IIS Manager を起動し、接続ツリー(サーバー名、サイト、アプリケーション プール)が表示されること。
- 機能ビューで「モジュール」「ハンドラ マッピング」「認証」などが表示・開閉できること。
- C:\inetpub\history 配下の最新バックアップが残っていること。
- applicationHost.config が初期化されていないか確認(消失・初期化していたら、history から最新を復元)。
予防策・運用上の注意(組織向け)
- KB5064081 はプレビュー(非セキュリティ)のため、本番は自動適用を避け、検証環境での事前評価を徹底。
- WSUS/Intune で当該 KB を「却下」「延期」「非表示」などに設定し、再配信を防止。
- IIS の構成ファイル(administration.config, applicationHost.config)を C:\inetpub\history に加えて別媒体へ定期バックアップ。
- 置換作業後は applicationHost.config の初期化有無を必ず点検。問題があれば history から復元して IIS 関連サービスを再起動。
Intune / WSUS / GPO の実践ヒント
- Intune(Windows Update リング):プレビュー品質更新の受領設定を無効化、あるいは対象デバイス グループに対して延期期間を長めに設定。
- WSUS:KB5064081 を明示的に「却下」し、誤配布をブロック。
- グループ ポリシー:Windows Update for Business の構成で「プレビュー版の更新プログラムを許可しない」を適用(名称は環境により表記差あり)。
自動検知・自動修復(Intune リメディエーション / スタートアップ スクリプト)
大規模環境では、administration.config に %WINDOWS_PUBLIC_KEY_TOKEN% が残っていないかを検知し、存在すれば自動修復する仕組みが有効です。
検知スクリプト(Detect)
$file = "C:\Windows\System32\inetsrv\config\administration.config"
if (-not (Test-Path $file)) { exit 0 } # 無し=問題なし
$content = Get-Content -Raw $file
if ($content -match "%WINDOWS_PUBLIC_KEY_TOKEN%") { exit 1 } else { exit 0 }
修復スクリプト(Remediate)
$file = "C:\Windows\System32\inetsrv\config\administration.config"
if (Test-Path $file) {
$bk = "$file.bak_$(Get-Date -Format yyyyMMdd_HHmmss)"
Copy-Item $file $bk -Force
(Get-Content -Raw $file).Replace('%WINDOWS_PUBLIC_KEY_TOKEN%','31bf3856ad364e35') |
Set-Content -Path $file -Encoding UTF8 -Force
}
管理者のためのトラブルシューティング手順(詳細)
1. 事象の切り分け
- GUI のみの問題か:
iisreset /statusやサイト応答(例:ヘルスチェック URL)で稼働確認。 - 構成ファイル破損の有無:administration.config と applicationHost.config のサイズ・更新日時を確認。
- イベント ログ:IIS-Configuration, IIS-Management, Application ログに読み込み失敗の痕跡がないか。
2. 構成ファイルの健全性確認
where inetsrv
dir C:\Windows\System32\inetsrv\config
administration.config を開き、%WINDOWS_PUBLIC_KEY_TOKEN% の残存を確認します。
3. 応急処置(置換)
前掲の GUI/PowerShell 手順で置換を実施。
4. applicationHost.config の検査と復元
set hist=C:\inetpub\history
for /f "delims=" %i in ('dir /b /ad /o-n %hist%') do @echo %hist%\%i & break
最新ディレクトリ内の applicationHost.config を確認し、必要に応じてコピーで復元します。
5. それでも復旧しない場合
- KB のアンインストールを試す(
wusa /uninstall /kb:5064081 /quiet /norestart)。 - 0x800f0825 の場合は、DISM でのパッケージ削除は無理をしない(整合性崩壊のリスク)。
- システムの復元/バックアップからのリストア、もしくはインプレース アップグレードを検討。
セキュリティ/コンプライアンス観点の補足
- 今回の修正は公開キー トークン値の明示化のみであり、バイナリや署名を改変しません。
- 変更管理台帳には、対象ファイル、前後のハッシュ、変更者、根拠(インシデント番号)を記録します。
- 本番適用前に、検証環境で構成のドリフトがないか(IIS 機能の差分)を比較します。
FAQ
Q. 31bf3856ad364e35 は何の値ですか?
Microsoft が提供する一連のアセンブリで使われる公開キー トークンです。IIS 管理 UI がアセンブリを解決する際の識別に用いられます。
Q. 置換後に OS や IIS の再起動は必要ですか?
不要です。IIS Manager(inetmgr.exe)を再起動すれば変更が反映されます。IIS サービスや稼働中サイトには影響しません。
Q. 置換しても再発しますか?
同 KB の再適用や、同系統のスクリプトが再度 administration.config を上書きした場合には再発し得ます。再配信をブロックするか、検知・自動修復の仕組みを組み合わせるのが安全です。
Q. アンインストールで 0x800f0825 が出るのはなぜ?
累積更新の内部状態や依存関係により、クリーンなアンインストールが保証できない(またはサポート外)構成であることを意味します。この場合はファイル置換で復旧し、更新配信の制御を優先してください。
Q. IIS の機能追加・削除や再インストールで直りますか?
役割と機能の再インストールは副作用が大きく、構成消失のリスクもあります。まずは administration.config の置換での復旧を推奨します。
現場テンプレート:インシデント対応記録(例)
| 項目 | 記入例 |
|---|---|
| インシデント ID | INC-2025-0901-XXXX |
| 影響範囲 | 管理 UI のみ(Web 配信継続) |
| 原因 | KB5064081 による %WINDOWS_PUBLIC_KEY_TOKEN% 未展開 |
| 暫定対処 | トークンを 31bf3856ad364e35 に置換 |
| 恒久対策 | KB ブロック+検知/自動修復の継続運用 |
| 再発防止 | プレビュー更新の本番自動適用禁止、検証プロセス強化 |
スクリプト集(現場でそのまま使える最小セット)
1) 置換の有無を確認(検査のみ)
findstr /c:"%WINDOWS_PUBLIC_KEY_TOKEN%" "C:\Windows\System32\inetsrv\config\administration.config" >nul
if %ERRORLEVEL%==0 ( echo TOKEN FOUND ) else ( echo OK )
2) バッチで安全に置換(バックアップ付き)
@echo off
setlocal
set FILE=C:\Windows\System32\inetsrv\config\administration.config
set BAK=%FILE%.bak_%DATE:/=-%_%TIME::=-%
copy "%FILE%" "%BAK%" >nul
powershell -NoP -C "(Get-Content -Raw '%FILE%').Replace('%%WINDOWS_PUBLIC_KEY_TOKEN%%','31bf3856ad364e35') | Set-Content -Path '%FILE%' -Encoding UTF8 -Force"
echo Done. Backup: %BAK%
endlocal
3) applicationHost.config を history から復元
@echo off
set H=C:\inetpub\history
for /f "delims=" %%i in ('dir /b /ad /o-n "%H%"') do (
copy "%H%\%%i\applicationHost.config" "C:\Windows\System32\inetsrv\config\applicationHost.config" /y
echo Restored from: %H%\%%i
goto :eof
)
注意事項とベストプラクティス
- 変更前のバックアップは必須:小さな修正でも必ず取得。
- ファイル エンコーディング:UTF-8(BOM なし/あり環境差)に留意。エディターで文字化けがないことを確認。
- 監査ログ:誰が・いつ・何を直したかを残す。台帳・チケットと紐付け。
- 再発監視:起動時・更新後に検知スクリプトを走らせる。結果を SIEM/監視に送る。
まとめ
KB5064081 適用後に発生する IIS Manager の白紙表示は、administration.config で %WINDOWS_PUBLIC_KEY_TOKEN% が正しく展開されず、公開キー トークンが空欄(未解決)のまま保存されることが原因です。該当文字列を 31bf3856ad364e35 に置換するだけで、ほとんどの環境で即時復旧します。アンインストールができない(0x800f0825)場合でもこの方法は有効です。恒久修正が提供されるまでの間は、「トークン置換による応急処置+更新のブロック(WSUS/Intune)」を組み合わせ、検知・自動修復を運用に組み込むことで、再発時の MTTR を最小化できます。
付録:管理者向けクイックリファレンス
| 項目 | コマンド / パス | メモ |
|---|---|---|
| 対象ファイル | C:\Windows\System32\inetsrv\config\administration.config | IIS 管理 UI 用の構成ファイル |
| 置換元 → 置換先 | %WINDOWS_PUBLIC_KEY_TOKEN% → 31bf3856ad364e35 | 複数箇所あればすべて |
| アンインストール | wusa /uninstall /kb:5064081 /quiet /norestart | 0x800f0825 の場合は不可 |
| バックアップ | C:\inetpub\history\* | applicationHost.config の世代管理 |
| 権限取得 | takeown, icacls | 編集不可時の一時対応 |
免責
本記事の手順はシステム構成ファイルの編集を含みます。必ずバックアップと検証を行い、変更管理プロセスに則って実施してください。編集後は速やかに動作確認と監査記録を残してください。
迅速対応のためのショート版(現場貼り付け用)
- 管理者でエディターを起動。
- C:\Windows\System32\inetsrv\config\administration.config を開く。
%WINDOWS_PUBLIC_KEY_TOKEN%を31bf3856ad364e35に一括置換。- 保存 → IIS Manager を再起動。
- 必要なら applicationHost.config を C:\inetpub\history から復元。
- WSUS/Intune で KB5064081 をブロック/延期。
要点:ほぼすべての環境で、上記の置換だけで即時復旧できたという報告が多数です。恒久修正が提供されるまで、応急処置+配信ブロックで安定運用を図ってください。

コメント