トップ回答者
WSUSを使って1511から1607へアップグレードするとエラー(0xc1800118)となる

質問
-
仮想環境下でWSUSサーバと配下のWindows10を構築し、導入検証を行っています。
待ちわびた1607のアップグレードが本日WSUSでリリースされ、早速1511の環境に配布しましたが件名のとおり、0xc1800118 のエラーでアップグレードできません。
ネットの情報ではISOからの新規インストールのような対処しか見つかりませんでした。
原因と対処についてお知恵を拝借できませんでしょうか。
宜しくお願いします。
追記:環境は下記のとおり
◆PC側
エディション Windows 10 Enterprise 64bit
バージョン 1511
OSビルド 10586.545◆WSUS側
Windows Server 2012 R2
KB3159706 適用済 (Not SSL)承認したタイトル 「Windows 10 Enterprise、バージョン 1607、ja-jpの機能更新プログラム」
回答
-
英語ですが、公式アナウンスが出ましたのでご案内します。
リンクが張れる身分ではないようなので、https:// を省いています。
blogs.technet.microsoft.com/wsus/2016/09/21/resolving-error-0xc1800118/
support.microsoft.com/en-us/kb/3194588
- 回答の候補に設定 Hebikuzure aka Murachi AkiraMVP 2016年9月23日 6:59
- 回答としてマーク Goofy's 2016年12月7日 5:49
すべての返信
-
Windows Server 2016 TP4 でも検証していたところ、同様の現象が発生し、以下のような状態となっていました。
- 1507 → 1511 へのアップグレード : KB3095113 の対応を実施すれば動作
- 1507 / 1511 → 1607 のアップグレード : KB3159706 の手動ステップを実施しても NG (TP4 向けの KB が提供されていなかったため手動ステップのみを実施)
- 1607 のアップグレードを実行すると、「更新プログラムをインストールする準備をしています」で「0%」でエラーとなる。
Windows Server 2012 R2 のクリーンインストール環境に、WSUS (非 SSL 環境) を導入して検証したところ、以下の手順を実施することで、エラーが発生せず、1507 → 1607 へアップグレードできるようになりました。
- KB3095113 をインストールし、サーバーを再起動
- IIS の MIME 設定に、esd の MIME を追加 (application/octet-stream)
- KB3159706 をインストールし、サーバーを再起動 (KB3159706 は、https://catalog.update.microsoft.com/v7/site/Search.aspx?q=KB3159706 からダウンロード)
- KB3159706 の手動ステップ (C:\Program Files\Update Services\Tools\wsusutil.exe" postinstall /servicing の実行と、HTTP Activation の追加) を実施し、WSUS のサービスを再起動
- Upgrade の分類を追加し、1607 を承認
となっていたため、1607 の展開には、KB3159706 の対応がポイントとなってきそうでしたが、KB3159706 の対応ができれば展開はできそうでした。
- 回答の候補に設定 Hannoki user 2016年8月25日 6:17
-
Masayuki.Ozawa 様
アドバイスありがとうございます!
その1~5の項目につきましては、実施済の認識でおります。1507(バージョン10) → 1511 は正常動作を確認済です。
WSUSサーバの構築は下記の流れで作成し、参考にさせて頂いたブログの手順に沿って行いました。
1:WSUSと付帯するIIS FWK4.5をインストール
⇒サーバマネージャから2:.NET Framwork3.5をインストール
⇒サーバマネージャから DVD媒体の「sources\sxs」フォルダの参照が必要
※Report Viewer 2008 、SQL Server 2008 R2 Management Studio Expressで必要3:Microsoft Report Viewer 2008 SP1 Redistributable - 日本語インストール
⇒https://www.microsoft.com/ja-jp/download/details.aspx?id=3841
※WSUSで必須4:SQL Server 2008 R2 Management Studio Expres インストール
⇒https://blogs.technet.microsoft.com/jpwsus/2014/08/01/wsus-windows-server-2012/5:Windows10アップグレードを配信するための準備
⇒https://blogs.technet.microsoft.com/jpwsus/2016/02/11/wsus-windows-10/
・KB3095113のインストール
・IISにてMIMEにWindows 10 へのアップグレードに用いられる「.esd」形式のファイルの配信を許可する設定を追加
・KB3159706のインストール結果:サーババージョン 6.3.9600.18324
ただ、手順違いや、作業漏れが全くないかどうかと言われますと、
年初に構築してから情報が出る度に更新しておりますので微妙ではありますが(^^;WSUS側をクリーンインストールしたら1507 → 1607 は正常に動作したことはとても参考になります。
- 編集済み Goofy's 2016年8月24日 0:38
-
Hannoki user様
アドバイスありがとうございます!
既存環境での修正ですね。
同様の事を下記手順でやってみてますが、
残念ながら現象に変わりはありませんでした。もう一度試してみます。
◇WSUSサーバ側
1:分類の[Upgrades]を外す
2:サーバの役割 WSUS Services 削除
同時に WID Databese 削除
3:サーバ再起動4:更新プログラムのアンインストールから[Microsoft Windows(KB3159706)の更新プログラム]をアンインストール
5:サーバ再起動6:サーバの役割 WSUS Services 追加
同時に WID Databese 追加
更新ファイルの置き場は以前のフォルダを指定
7:展開後構成 実行8:KB3159706をインストール
9:サーバ再起動10:コマンドプロンプト(管理者)から["C:\Program Files\Update Services\Tools\wsusutil.exe" postinstall /servicing]実行
11:「Windows 10 Enterprise、バージョン 1607、ja-jpの機能更新プログラム」を拒否にする
12:オプションのサーバクリーンアップウィザードを実行し「Windows 10 Enterprise、バージョン 1607、ja-jpの機能更新プログラム」を削除する
13:分類の[Upgrades]を選択
14:同期の[今すぐ同期]を実施
15:「Windows 10 Enterprise、バージョン 1607、ja-jpの機能更新プログラム」を承認する
⇒再ダウンロードが完了するとサーバ側準備完了◇PC側
1:コマンドプロンプト(管理者)から以下のコマンドを実行
net stop usosvc
net stop wuauserv
net stop bitsren %systemroot%\SoftwareDistribution SoftwareDistribution.old
del "%ALLUSERSPROFILE%\Microsoft\Network\Downloader\qmgr0.dat"
del "%ALLUSERSPROFILE%\Microsoft\Network\Downloader\qmgr1.dat"net start bits
net start wuauserv
net start usosvcwuauclt /detectnow
- 編集済み Goofy's 2016年8月26日 0:19
-
WSUSサーバ側の手順を少し変えて試してみましたが変化無く、ダメした。
◇WSUSサーバ側
1:分類の[Upgrades]を外す
2:「Windows 10 Enterprise、バージョン 1607、ja-jpの機能更新プログラム」を拒否にする
3:オプションのサーバクリーンアップウィザードを実行し「Windows 10 Enterprise、バージョン 1607、ja-jpの機能更新プログラム」を削除する
4:サーバの役割 WSUS Services 削除
同時に WID Databese 削除
HTTP アクティブ化 削除
※WIDフォルダのファイル、更新ファイルは削除せずそのまま。
5:KB3159706のアンインストール
6:KB3095113のアンインストール
7:サーバ再起動※IISでの「.esd」形式ファイルの配信許可はそのまま
8:KB3095113のインストール
9:KB3159706のインストール10:サーバの役割 WSUS Services 追加
同時に WID Databese 追加
更新ファイルの置き場に以前のフォルダを指定
11:["C:\Program Files\Update Services\Tools\wsusutil.exe" postinstall /servicing]実行
12:サーバの役割 HTTP アクティブ化 追加
13:WSUSサービス再起動14:分類の[Upgrades]を選択
15:同期の[今すぐ同期]を実施
16:「Windows 10 Enterprise、バージョン 1607、ja-jpの機能更新プログラム」を承認する
再構築となるとやはりWIDフォルダのファイル、更新ファイルの削除が必要なんでしょうか。
でもそれだとほぼ完全アンインストールですしね。
動かないのも困りますが、これ以上に戻す手順が対処方法になってしまうと本番は辛いですね。。。
- 編集済み Goofy's 2016年8月26日 4:22
-
私も再度検証をしたのですが、手順を追って作った、WSUS の環境でないと、うまく適用ができないですね。
KB を適用せずに構築し、エラーを発生させた環境に KB を適用し、手順を実施してもうまく配信ができませんでした。に、
===========================
I have route to product group by "kitchen door" and they can reproduce this 0x1800118 error on their lab environments, so let's wait a while.
It seems to be just a bug.
===========================
との情報もあり、製品グループの方で再現もしているようですので、少し様子を見た方がよさそうですね…。
-
Masayuki.Ozawa 様
アドバイスありがとうございます!
>It seems to be just a bug.
私もそう感じます。一度KBを入れてしまうと、又は入れずに[Upgrades]を設定し同期してしまうと、
その後でWSUSの機能の削除や追加をしても「戻せない」ほど、
コアな部分が変更されて、その後の修正ができない状態になっているようですね。
原因はまだわかりませんが、現状では厳密なインストール手順が存在するようで
先行評価されていた方々の多くが落ちた落とし穴かと想像します。
現時点でのお勧めの対処方法はお急ぎの方は
⇒アドバイス頂いて実績も出ている、「サーバOS環境から再作成」し、WSUSインストール後、関連KBを全て入れ終わった後で[Upgrades]を設定~の流れで再構築。
そうでない方は
⇒暫し様子見。
が宜しいかと思いますね。
私は暫し様子見してます。
- 編集済み Goofy's 2016年8月30日 8:09
-
英語ですが、公式アナウンスが出ましたのでご案内します。
リンクが張れる身分ではないようなので、https:// を省いています。
blogs.technet.microsoft.com/wsus/2016/09/21/resolving-error-0xc1800118/
support.microsoft.com/en-us/kb/3194588
- 回答の候補に設定 Hebikuzure aka Murachi AkiraMVP 2016年9月23日 6:59
- 回答としてマーク Goofy's 2016年12月7日 5:49
-
上記のURLに記載された方法では、回避できませんでした。
日本語環境向けに最適化されていないようです。
私の環境では以下の手順で不正なupgradeの情報を削除できました。
同じエラーの方が必ずしも解消できるかは分かりませんが、参考までに投稿します。
基本的な流れは英語用と同じです。
- 現象が合致するかどうか確認するために実行するクエリ
SUSのデータベースに接続して実行します。
- WSUS データベースを簡単に操作するには (Windows Server 2012 編)
https://blogs.technet.microsoft.com/jpwsus/2014/08/01/wsus-windows-server-2012/
------------------------------------
select TotalResults = Count(*)
from tbFile
where (IsEncrypted = 1 and DecryptionKey is NULL) or (FileName like '%14393%.esd' and IsEncrypted = 0)
------------------------------------
上記クエリの実行結果が "TotalResults > 0"なら合致です。私は二桁ありました。
--------------------------------------
- WSUS サーバーにおける対処手順
--------------------------------------
1. PowerShell で下記コマンドを実行します。
Get-WsusClassification | Where-Object -FilterScript {$_.Classification.Title -Eq “Upgrades”} | Set-WsusClassification -Disable
2. PowerShell で下記コマンドを実行します。
$s = Get-WsusServer
$1607Updates = $s.SearchUpdates(“バージョン 1607”)
$1607Updates | foreach { $_.Decline() }
$1607Updates | foreach { $s.DeleteUpdate($_.Id.UpdateId) }
3. PowerShell で下記コマンドを実行します。
Get-WsusClassification | Where-Object -FilterScript {$_.Classification.Title -Eq “Upgrades”} | Set-WsusClassification
4. WSUS データベースに接続し、下記クエリを実行します。
declare @NotNeededFiles table (FileDigest binary(20) UNIQUE); insert into @NotNeededFiles(FileDigest) (select FileDigest from tbFile where FileName like '%14393%.esd' except select FileDigest from tbFileForRevision); delete from tbFileOnServer where FileDigest in (select FileDigest from @NotNeededFiles) delete from tbFile where FileDigest in (select FileDigest from @NotNeededFiles)
5. PowerShell で下記コマンドを実行します。
$sub = $s.GetSubscription()
$sub.StartSynchronization()
この対処によって、Upgradeを適用する前の状態に戻ります。
1607が再同期によって表示されたら、もう一度当該グループを承認します。
--------------------------------------
- WSUS クライアントにおける対処手順
--------------------------------------
1. コマンドプロンプトで下記コマンドを実行します。
net stop wuauserv
del %windir%\SoftwareDistribution\DataStore\*
2. Windows Update を実行し、事象が改善されているか確認します。
以上です。