トップ回答者
Window Server 2016の更新プログラム適用について

質問
-
仮想サーバー(Window Server 2016)に更新プログラムが適用できず困っております。
オフライン環境のため、環境構築後から更新プログラムを適用していなかったのですが、
新元号対応が必要になったため更新プログラムの適用を実施したところ、うまくいきませんでした。適用方法は「設定」-「更新とセキュリティ」ではなく、
Microsoft Update カタログからダウンロードしたスタンドアロンインストーラーを使用しました。作業時(作業前)に行ったことは以下のとおりです。
①ローカルグループポリシーエディター(gpedit.msc)より、
「コンピューターの構成」-「管理用テンプレート」-「Windowsコンポーネント」-「Windows Update」の
「自動更新を構成する」は「無効」に変更。
②Internet Explorerの「設定」でプロキシサーバーを設定し、
・「プロキシサーバー」の「LANにプロキシサーバーを使用する」にチェックする。
・「アドレス」にプロキシサーバーのIPアドレス、「ポート」に「8080」を入力する。
・「ローカルアドレスにはプロキシサーバーを使用しない」にチェックする。
コマンドプロンプト(管理者権限)で「netsh winhttp import proxy source=ie」でwinhttpの設定を変更。
(現在はIE・winhttpの設定を元に戻しています)スタンドアロンインストーラーを実行すると、
「このコンピューター上の更新プログラムを検索しています」と表示され、
そのまま数時間が経過してもインストールが始まりません。
(適用できたサーバーは「検索しています」から「インストールしますか」まで5~10分程度でした)適用できなかった更新プログラムは
・2019-05 x64 ベース システム用 Windows Server 2016 更新プログラム (KB4494175)
・2019-06 x64 ベース システム用 Windows Server 2016 の累積更新プログラム (KB4509475)
です(若干古いですが)。
これらを適用する前に
・2019-06x64 ベース システム用 Windows Server 2016 サービス スタック更新プログラム (KB4503537)
を適用しています。適用できなかったサーバーの環境内に、同じOS・構成のサーバーが3台あるのですが、
適用できないのは1台だけで、他の2台は適用できているため、
適用できないサーバー固有の問題かもしれないのですが、
理由が分かりません。いろいろと調べてみましたが、Windows Server の更新プログラムに関する情報が少なく、
また仮想サーバーでの同様の事例を見つけることができません。解決方法をご存知の方がいらっしゃれば、ご教授いただけますでしょうか。
回答
すべての返信
-
Lapivy さんの紹介していり記事の方法でもダメな場合は、OS がインストールされている仮想ディスクをオフラインにして、オフライン適用を行う方法も検討してください。
Hebikuzure aka Murachi Akira
-
Lapivy さん、返信ありがとうございます。
いただいたURLのサイトは見ていたのですが、他のサーバー(Windows Server 2016)で試したときに
うまくいかなかったので、敬遠していました。問題の該当サーバーは日中は複数のユーザーが使用中のため、
DISM.exe /Online /Cleanup-image /Restorehealth
ではなく
DISM.exe /Online /Cleanup-image /CheckHealth
を実行したところ、以下のメッセージが返ってきました。
---------------------------------------------------------------
C:\Windows\system32>DISM.exe /Online /Cleanup-image /CheckHealth展開イメージのサービスと管理ツール
バージョン: 10.0.14393.0イメージのバージョン: 10.0.14393.2457
コンポーネント ストアが壊れていることは検出されませんでした。
操作は正常に完了しました。
---------------------------------------------------------------エラーはないようなので「sfc /scannow」を実行したいのですが、
複数のユーザーが使用している最中に実行しても問題ないのでしょうか? -
本番稼働中に修復する事に不安があるのでしたら、"SFC /VERIFYONLY" を実行すればよいかと思います。(すべての保護されたシステムファイルの整合性をスキャンします。修復操作は実行されません)
また、別のサーバーでブログに記載されている一般的な対処策を試してうまくいかなかったとの事ですが、私の経験上はこれら対処策を実行しても解決しないのであれば、以下のように WindowsUpdate.log やSetup関連のログを調査して個別に解決策を見つけていく必要がある認識です。
場合によっては前回記載した一般的な対処策で解決しないかもしれませんが、ケースバイケースなので、ひとまずは一般的な対処策を試してみる事をお奨めします。
Windows 製品の更新プログラム (KB) のインストールの失敗 … ログ分析の進め方
https://blogs.technet.microsoft.com/askcorejp/2019/01/22/windows-msu-log-analysis/
-
途中経過です。
コマンド「sfc /verifyonly」を実行したところ、CBS.logに下記が見つかりました。
Info CSI 00006271 [SR] Repairing corrupted file \??\C:\Windows\SysWOW64\MSWB7.dll from store
該当フォルダを見ると「MSWB7.dll」が存在しないため、
更新プログラム適用が成功したサーバーを見ると「MSWB7.dll」は作成日付が適用した日付で存在しました。
まずはコマンド「sfc /scannow」を実行し「MSWB7.dll」の修復をすればいいと思うのですが、
仮に修復ができなかった場合は他のサーバーからコピーしてもいいのでしょうか?
-
結論から言えば、同じバージョンの Windows であれば可能な認識です。
以下にも、その旨が記載されています。
システム ファイル チェッカー ツールを使用して不足または破損しているシステム ファイルを修復する
https://support.microsoft.com/ja-jp/help/929833/use-the-system-file-checker-tool-to-repair-missing-or-corrupted-system
以下、抜粋
=====================
注: 破損したファイルのあるコンピューターと同じバージョンの Windows を実行している別のコンピューターから、正常であることが判明しているシステム ファイルのコピーを取得することも可能です。 そのコンピューターでシステム ファイル チェッカー プロセスを実行して、コピーするシステム ファイルが正常なコピーであることを確認することをお勧めします。
===================== -
ともりんこさん、こんにちは。フォーラムオペレーターのFarenaです。
TechNetフォーラムにご投稿くださいましてありがとうございます。
その後のご状況いかがでしょうか。
皆さんから寄せられた投稿はお役に立ちましたか。
ご不明な点がございましたら、お気軽にお問い合わせください。
参考になった投稿には「回答としてマーク」をご設定ください。なかった場合は「回答としてマークされていない」も設定できます。
同じ問題で後から参照した方が、情報を見つけやすくなりますので、ご協力くださいますようお願いいたします。
Please remember to mark the replies as answers if they help.
If you have feedback for TechNet Subscriber Support, contact tnmff@microsoft.com. -
昨日までに実施した内容です。
①DISM.exe /Online /Cleanup-image /CheckHealthを実行(前述抜粋)。
以下のメッセージが返ってきました。
---------------------------------------------------------------
C:\Windows\system32>DISM.exe /Online /Cleanup-image /CheckHealth展開イメージのサービスと管理ツール
バージョン: 10.0.14393.0イメージのバージョン: 10.0.14393.2457
コンポーネント ストアが壊れていることは検出されませんでした。
操作は正常に完了しました。
---------------------------------------------------------------②sfc /verifyonlyを実行(前述抜粋)。
CBS.logに下記が見つかりました。
Info CSI 00006271 [SR] Repairing corrupted file \??\C:\Windows\SysWOW64\MSWB7.dll from store
該当フォルダを見ると「MSWB7.dll」がありませんでした。-----(ここまでが一昨日までに実施した事項)-----
-----( ここからは昨日実施した事項 )-----③①がOKだったので「DISM.exe /Online /Cleanup-image /Restorehealth」は実行せず、「sfc /scannow」を実行。
以下のメッセージが返ってきました。
---------------------------------------------------------------
Windows リソース保護により、破損したファイルが見つかりましたが、それらは正常に
修復されました。詳細は CBS.log windir\CBS\CBS.log に含まれています。
例: C:\Windows\Logs\CBS\CBS.log。ただし、オフライン サービス シナリオでの
ログの記録は現在サポートされていません。
---------------------------------------------------------------
該当フォルダに「MSWB7.dll」ファイルが存在していることを確認。④以下のコマンドを実行し、③の結果を確認。
findstr /c:"[SR]" %windir%\Logs\CBS\CBS.log >"%userprofile%\Desktop\sfcdetails.txt"⑤以下の更新プログラムを実行したが、下記メッセージで30分放置したが進捗なしのため、
タスクマネージャーより「wusa.exe」を強制終了し、サーバーを再起動。
実行プログラム:2019-05 x64 ベース システム用 Windows Server 2016 更新プログラム (KB4494175)
メッセージ:Windows Update スタンドアロンインストーラー
このコンピューター上の更新プログラムを検索しています。⑥③で修復した「MSWB7.dll」が壊れているかも、と思い、先日Lapivyさんよりいただいた
「システム ファイル チェッカー ツールを使用して不足または破損しているシステム ファイルを修復する」を実行。
takeown /f Path_And_File_Name
⇒成功: ファイル(またはフォルダー): "Path_And_File_Name" は現在ユーザー "ログイン中のユーザー" によって所有されています。
icacls Path_And_File_Name /GRANT ADMINISTRATORS:F
⇒処理ファイル: Path_And_File_Name
1 個のファイルが正常に処理されました。0 子のファイルを処理できませんでした。
Copy Source_File Destination
⇒(コピー先ファイルのフルパス) を上書きしますか? (Yes/No/All):
⇒y
⇒1 個のファイルをコピーしました。
サーバーを再起動。⑦再度、以下の更新プログラムを実行したが、下記メッセージで1時間以上放置したが進捗なしのため、
タスクマネージャーより「wusa.exe」を強制終了し、サーバーを再起動。
実行プログラム:2019-05 x64 ベース システム用 Windows Server 2016 更新プログラム (KB4494175)
メッセージ:Windows Update スタンドアロンインストーラー
このコンピューター上の更新プログラムを検索しています。⑧初めからやり直そうと思い「DISM.exe /Online /Cleanup-image /Restorehealth」を実行。
100%にはなったが、「成功しました」等のメッセージが返ってこないまま1時間以上経過。
作業のタイムリミットのため作業を終了。
CTRL+Cでは処理が終わらなかったため、コマンドプロンプト右上の「×」で終了。-----( ここまでが昨日実施した事項 )-----
と、昨日の作業は何一つ進捗無しで終わりました。
平日日中は稼働しているサーバーのため平日夜間or休日での作業になり、
思うように作業を進められませんが、続けて作業を進める予定です。ここまでで何か気になることなどありましたら、ご教授いただけますでしょうか。
~~~~~(2019/9/14 追記)~~~~~
再チャレンジ中です。
「DISM.exe /Online /Cleanup-image /Restorehealth」を実行しました。
実行してから[=========100%=========]になるまで10分とかかりませんでした。
一昨日は100%までに20分かかり、1時間後に中断したためか、100%までは早かったのですが、
実行してから4時間が経過しましたが完了になりません。
リソースモニターのCPUを見ると「wuauserv」が常に25%で動いていますので、
DISMが実行中?と思いながら完了を待っています。
そもそも「DISM.exe ~」が実行中であることを確認する方法が分かりません(検索しても出てきません...)。何を見るといいのでしょうか?
~~~~~(2019/9/14 追記2)~~~~~
紆余曲折ありましたが、無事完了しました。
作業は Lapivy さんの最初のアドバイスどおり、
Windows 製品の更新プログラム (KB) のインストールの失敗 … 一般的な対処策
https://blogs.technet.microsoft.com/askcorejp/2019/01/16/windows-msu-general-troubleshooting/
に書いてあるとおりに作業を進めました。
途中でエラーになりましたが都度エラーを対処して、無事作業を完了することができました。
アドバイスをいただきました Lapivy さん、Hebikuzure aka Murachi Akira さん、
ありがとうございました。
- 編集済み ともりんこ 2019年9月14日 10:14 作業完了