treedown’s Report

システム管理者に巻き起こる様々な事象を読者の貴方へ報告するブログです。会社でも家庭でも"システム"に携わるすべての方の共感を目指しています。

※https化しました。その影響でしばらくリンク切れなどがあるかもしれませんが徐々に修正していきます。 リンク切れなどのお気づきの点がございましたらコメントなどでご指摘いただけますと助かります。

アップデート適用が終了せずログオン画面が表示されない

本日はWindows7でWindows Update後に発生するちょっとした現象をご報告します。

Windows Update後の再起動で、「ステージ3/3」適用中のままでログオン画面が表示されない、という画面に出会ったことはありますか?

症状

Windows7でWindows Update後にPCが再起動しますよね?
アップデートによってはPC再起動後に、またWindows Updateの適用が動作します。
ステージ1/3⇒ステージ2/3⇒ステージ3/3、と進捗していくあの画面です。
通常であればこのステージ3/3までの処理ですべて完了したのち、
「ログオンするにはCtrl+Alt+Delを押してください。」
と表示され、ログオン待ち受け画面になるはずなのですが、
これがですね、たまに、
----------------------------------------------
ステージ 3/3
Windowsを構成するための準備中
コンピュータの電源を切らないでください。
----------------------------------------------
と表示されたまま画面が変わらないことがあるのです。
「終わらんのう…。」と思いつつ数時間待ってはいるがこの表示が変わらないし、HDDのインジケータを確認してもアクセスしている気配もないし…、まさかハングアップしてしまったのか?、と焦ったりがっかりしてしまったりするのですが、

安心してください。完了していますよ。

これはなんだろう?

この現象は
「正常にWindows Updateが完了していて、画面が変わらないだけ」
というケースがあります。

ドキドキしながら(そのうち数回は怒りに任せて)Ctrl+Alt+Del押下でログオン画面が表示されました。

この場合、待てども待てども終わらずしびれを切らして電源OFF、という方が多数派で、Ctrl+Alt+Delを押したら入れた!という方が過半数くらい、というところでしょうか。Ctrl+Alt+Del押下でログオンがスマートなのは言うまでもないです。
が、Ctrl+Alt+Delによるログオンはデフォルト状態のHome Editionを使っていると有効でないことがあります。ここで自分のPCの環境には当てはまらなくて電源OFFで対処してしまった方も多数派に入るのではないでしょうか?
少数派の対処方法がCtrl+Alt+Delを使わない方法で、Home Editionユーザの方に有効な方法です。

Ctrl+Alt+Del以外の手段でこの画面遷移を促すには、スリープやハイバネーションしてから再度電源投入が有効です。
ThinkPadでいえば「Fn+F4」でスリープ、「Fn+F12」でハイバネーションです。(キーはPCによって異なりますので、各々のお使いのPCでご確認ください。)

解決だけが必要なかたはここまでで問題ありません。

これ以降はサーバや重要なPCだからいきなりCtrl+Alt+Del押下は不安だ、という方向けの内容になります。

PsExecで詳しく調べてみる(裏付けを取る)

(ブームというわけではありませんが)またしてもPsExecを使って、シャットダウン中にプロセスを確認するためにプロセス一覧を表示してみました。
いきなりCtrl+Alt+Delが不安な場合、PsExecを使って他のコンピュータからプロセスの状況を確認することである程度いまの状態を知ることができます。
たまにはWindows7の起動、終了のメカニズムを知る知識としてプロセスを見てみるのはいかがでしょう。

環境
OS:Windows 7 Enterprise
Windowsインストール直後、Windows Updateを繰り返し掛けている状況
その他ソフトウェアのインストールはされていない(OSだけの)状態

この環境を別PCのPsExec接続でプロセス一覧を確認します。
 ※PsExecの手軽な使用法は、以前の記事をどうぞ
    ⇒<リモート接続操作最後の切り札=PSExec - treedown’s Report


まずはデスクトップからWindows Update中の状態に対してプロセス一覧を表示した場合の画面です。

f:id:treedown:20150905075414p:plain

このときのPsExecからのプロセス一覧です。
----------------------------------------------
PsExec v1.98 - Execute processes remotely
Copyright (C) 2001-2010 Mark Russinovich
Sysinternals - www.sysinternals.com


Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

C:\Windows\system32>tasklist

イメージ名                     PID セッション名     セッション# メモリ使用量
========================= ======== ================ =========== ============
System Idle Process              0 Services                   0         24 K
System                           4 Services                   0      5,136 K
smss.exe                       356 Services                   0         60 K
csrss.exe                      420 Services                   0      2,208 K
wininit.exe                    448 Services                   0         72 K
csrss.exe                      468 Console                    1      7,464 K
winlogon.exe                   508 Console                    1         76 K
services.exe                   556 Services                   0      5,788 K
lsass.exe                      564 Services                   0      7,016 K
lsm.exe                        572 Services                   0      2,320 K
svchost.exe                    672 Services                   0      3,520 K
svchost.exe                    748 Services                   0      4,688 K
svchost.exe                    832 Services                   0     10,372 K
svchost.exe                    880 Services                   0     79,896 K
svchost.exe                    908 Services                   0      6,668 K
svchost.exe                    932 Services                   0     89,192 K
svchost.exe                    108 Services                   0     27,468 K
spoolsv.exe                   1176 Services                   0      1,484 K
svchost.exe                   1204 Services                   0      8,496 K
vmicsvc.exe                   1300 Services                   0        312 K
vmicsvc.exe                   1320 Services                   0        488 K
vmicsvc.exe                   1340 Services                   0         96 K
vmicsvc.exe                   1360 Services                   0        320 K
vmicsvc.exe                   1392 Services                   0         72 K
svchost.exe                   1436 Services                   0      6,012 K
SearchIndexer.exe             1544 Services                   0     32,248 K
taskhost.exe                  2536 Console                    1      2,412 K
dwm.exe                       1932 Console                    1      2,796 K
explorer.exe                  2156 Console                    1     49,432 K
wmpnetwk.exe                  2840 Services                   0      8,840 K
svchost.exe                   2168 Services                   0     14,480 K
TrustedInstaller.exe          2176 Services                   0     57,876 K
wuauclt.exe                   1888 Console                    1      2,028 K
VSSVC.exe                     1984 Services                   0     13,548 K
svchost.exe                   2968 Services                   0      5,572 K
wuauclt.exe                   2896 Services                   0      8,128 K
msiexec.exe                   1188 Services                   0     14,668 K
SearchProtocolHost.exe        2964 Services                   0      9,168 K
WmiPrvSE.exe                  1348 Services                   0      6,016 K
mscorsvw.exe                  2368 Services                   0      9,236 K
mscorsvw.exe                   268 Services                   0      9,072 K
MicrosoftFixit50736.exe       2888 Services                   0      3,044 K
msiexec.exe                   2732 Services                   0      7,584 K
msiexec.exe                    212 Services                   0      8,008 K
dllhost.exe                   2336 Console                    1      6,680 K
msiexec.exe                   2208 Services                   0     10,008 K
svchost.exe                   2328 Services                   0      5,240 K
taskhost.exe                  3328 Services                   0     10,280 K
PSEXESVC.EXE                  3572 Services                   0      4,672 K
cmd.exe                       3820 Services                   0      2,928 K
conhost.exe                   3872 Services                   0      3,092 K
mscorsvw.exe                  4028 Services                   0     40,900 K
tasklist.exe                  4072 Services                   0      5,636 K
WmiPrvSE.exe                  2832 Services                   0      6,260 K

C:\Windows\system32>
----------------------------------------------
Windows Updateの動作履歴を取得するプロセスwuauclt.exeがあります。
この時はデスクトップ環境(Windowsシェル環境)が有効なのでまだRDPも使えますし、PowershellのRemoteアクセスも可能です。

上記のプロセス一覧の差分として、
"シャットダウンプロセス(適用のための再起動)"
を実行させると以下のプロセスが消えます。(多少重複有、ご容赦を)
----------------------------------------------
taskhost.exe                  2536 Console
dwm.exe                       1932 Console
explorer.exe                  2156 Console
wmpnetwk.exe                  2840 Services
wuauclt.exe                   1888 Console
MicrosoftFixit50736.exe       2888 Services
msiexec.exe                   2732 Services
msiexec.exe                    212 Services
dllhost.exe                   2336 Console
msiexec.exe                   2208 Services
svchost.exe                   2328 Services
taskhost.exe                  3328 Services
PSEXESVC.EXE                  3572 Services
cmd.exe                       3820 Services
conhost.exe                   3872 Services
mscorsvw.exe                  4028 Services
tasklist.exe                  4072 Services
WmiPrvSE.exe                  2832 Services
----------------------------------------------
※ちなみにMicrosoftFixit50736.exeなどは適用中のKBなので名前はバラバラです。

でシャットダウンが実際に進行すると以下のようなプロセス一覧になります。

f:id:treedown:20150905075522p:plain

このときのプロセス一覧です。
----------------------------------------------
シャットダウン中のアップデート適用タスク実行中
----------------------------------------------

C:\Windows\system32>tasklist

イメージ名                     PID セッション名     セッション# メモリ使用量
========================= ======== ================ =========== ============
System Idle Process              0 Services                   0         24 K
System                           4 Services                   0        976 K
smss.exe                       356 Services                   0         96 K
csrss.exe                      420 Services                   0      3,212 K
wininit.exe                    448 Services                   0      2,800 K
csrss.exe                      468 Console                    1      5,948 K
winlogon.exe                   508 Console                    1      4,104 K
services.exe                   556 Services                   0      5,504 K
lsass.exe                      564 Services                   0      6,788 K
lsm.exe                        572 Services                   0      2,960 K
svchost.exe                    672 Services                   0      3,624 K
svchost.exe                    748 Services                   0      4,712 K
svchost.exe                    832 Services                   0     10,924 K
svchost.exe                    880 Services                   0     77,252 K
svchost.exe                    908 Services                   0      7,172 K
svchost.exe                    932 Services                   0     24,888 K
svchost.exe                    108 Services                   0     10,556 K
spoolsv.exe                   1176 Services                   0      2,544 K
svchost.exe                   1204 Services                   0      7,804 K
vmicsvc.exe                   1300 Services                   0        360 K
vmicsvc.exe                   1320 Services                   0      2,028 K
vmicsvc.exe                   1340 Services                   0        148 K
vmicsvc.exe                   1360 Services                   0        368 K
vmicsvc.exe                   1392 Services                   0        116 K
svchost.exe                   1436 Services                   0      6,816 K
SearchIndexer.exe             1544 Services                   0     19,004 K
svchost.exe                   2168 Services                   0     18,696 K
TrustedInstaller.exe          2176 Services                   0    439,556 K
msiexec.exe                   1188 Services                   0     13,988 K
svchost.exe                   2328 Services                   0      3,720 K
PSEXESVC.EXE                  3572 Services                   0      3,808 K
cmd.exe                       3820 Services                   0      2,876 K
conhost.exe                   3872 Services                   0      2,916 K
svchost.exe                   3928 Services                   0      5,080 K
mscorsvw.exe                  1928 Services                   0      6,136 K
mscorsvw.exe                  3816 Services                   0      5,336 K
VSSVC.exe                     2580 Services                   0      6,564 K
WmiPrvSE.exe                   212 Services                   0      6,828 K
LogonUI.exe                   1716 Console                    1     17,412 K
SearchProtocolHost.exe        3544 Services                   0      8,012 K
SearchFilterHost.exe          3452 Services                   0      5,020 K
LogonUI.exe                   3108 Services                   0     16,368 K
poqexec.exe                   2856 Services                   0      3,652 K
tasklist.exe                  3992 Services                   0      5,644 K

C:\Windows\system32>

----------------------------------------------
デスクトップ環境(Windowsシェル環境)がシャットダウンプロセスによって停止したので、プロセスからexplorer.exeが消えました、
引き続きシャットダウンからアップデート適用が動作します。

シャットダウンプロセスが開始してからアップデート適用⇒完了まではほとんどプロセスには変化が見られない状況です。

f:id:treedown:20150905075607p:plain

最後は再起動後、完了しているのにこの画面でもし止まっていた場合のプロセス一覧です。
----------------------------------------------
再起動後のアップデート適用後
----------------------------------------------

C:\Windows\system32>tasklist

イメージ名                     PID セッション名     セッション# メモリ使用量
========================= ======== ================ =========== ============
System Idle Process              0 Services                   0         24 K
System                           4 Services                   0      1,180 K
smss.exe                       332 Services                   0        968 K
csrss.exe                      424 Services                   0      4,964 K
wininit.exe                    452 Services                   0      4,956 K
csrss.exe                      468 Console                    1      3,840 K
winlogon.exe                   508 Console                    1      6,888 K
services.exe                   556 Services                   0      7,696 K
lsass.exe                      564 Services                   0     10,020 K
lsm.exe                        572 Services                   0      5,176 K
svchost.exe                    668 Services                   0      7,880 K
svchost.exe                    740 Services                   0      6,336 K
svchost.exe                    804 Services                   0     14,168 K
LogonUI.exe                    824 Console                    1     22,924 K
svchost.exe                    880 Services                   0     53,116 K
svchost.exe                    920 Services                   0     10,056 K
svchost.exe                    952 Services                   0     28,664 K
TrustedInstaller.exe           108 Services                   0     12,332 K
svchost.exe                    996 Services                   0     14,160 K
spoolsv.exe                   1168 Services                   0      8,692 K
svchost.exe                   1196 Services                   0     10,020 K
vmicsvc.exe                   1292 Services                   0      5,656 K
vmicsvc.exe                   1316 Services                   0      8,976 K
vmicsvc.exe                   1344 Services                   0      3,964 K
vmicsvc.exe                   1368 Services                   0      4,204 K
vmicsvc.exe                   1396 Services                   0      4,268 K
svchost.exe                   1428 Services                   0      9,480 K
svchost.exe                   1468 Services                   0      8,792 K
svchost.exe                   2008 Services                   0      4,804 K
PSEXESVC.EXE                  2744 Services                   0      4,704 K
cmd.exe                       2812 Services                   0      2,888 K
conhost.exe                   2820 Services                   0      3,060 K
mscorsvw.exe                  2928 Services                   0      5,448 K
mscorsvw.exe                  3004 Services                   0      6,180 K
sppsvc.exe                    3044 Services                   0     12,636 K
svchost.exe                   1116 Services                   0     34,620 K
SearchIndexer.exe             2264 Services                   0     32,100 K
SearchProtocolHost.exe        2400 Services                   0     10,948 K
SearchFilterHost.exe          2420 Services                   0      6,012 K
tasklist.exe                  2520 Services                   0      5,620 K
WmiPrvSE.exe                  2584 Services                   0      6,152 K

C:\Windows\system32>

----------------------------------------------
再起動後にはプロセスがこのような状態になっています。

LogonUI.exeプロセスが2つあったのが1つになる
以下のプロセスが消える
msiexec.exe
poqexec.exe
VSSVC.exe
以下のプロセスが増える
sppsvc.exe

msiexec.exeはWindows UpdateのKBインストール中だったのがインストール完了後ログオン準備状態になれば消えてしまう、というは合点がいきます。poqexec.exeはプリミティブインストーラとか申す関連プロセスだと思われます。おそらくKBインストールでプリミティブインストーラが使われているのでプロセスとして登場しているのだとおもわれます。
当然インストール動作をPCが実行しているのでボリュームシャドウコピー(VSSVC.exe)が動作するのも合点がいきます。
これらがなくなっている場合にはWindows Updateは正常終了していると判断できます。

ログオン準備が完了したところでSoftware Protectionサービス(ライセンスアクティベーション関連?)のプロセスであるsppsvc.exeが起動してくるようです。
いまのところsppsvc.exeでしかKBのインストールが完了してログオン待ち受けかどうかを判別できないという結論に至りました。