ドメイン コントローラーのインプレース アップグレードが黒い画面でハングする

この記事では、ドメイン コントローラーのインプレース アップグレードが黒い画面でハングする問題の解決策について説明します。

適用対象: Windows Server 2012 R2
元の KB 番号: 2843034

現象

次のような状況で問題が発生します。

  • Windows Server 2008 R2 Server-Core エディションを実行しているコンピューターがある
  • ドメイン コントローラーロールをホストしている Server-Core
  • Server Core では、インプレース アップグレードを実行して Windows Server 2012

このシナリオでは、下の図に示すように、Windows Server 2012セットアップのアップグレードは、マウス ポインターを使用して黒い画面でハングします。

黒い画面とマウス ポインター。

注:

この記事で説明する問題は、Windows Server 2012 サーバー コアにインプレース アップグレードされたサーバー コア対応ドメイン コントローラーに固有のものです。 この条件は、Windows Server 2012にインプレース アップグレードされた GUI または Full-DCs では発生しません。

原因

Windows Server 2008 R2 サーバー コア DC が Windows Server 2012 にアップグレードされた場合、NTDSA.DLL & NTDSAI.DLL ファイルはインストールされません。 これは、デバッグと OS イメージ分析によって確認されます。 ローダー スナップが有効になっている LSASS.EXE に接続されている NTSD からのデバッグ セッションは、NTDSA.DLL を読み込もうとするときに次のシーケンスを示します。

023c:0240 @ 00048468 - LdrpLoadDll - ENTER: DLL 名: C:\Windows\system32\ntdsa.dll
023c:0240 @ 00048468 - LdrpLoadDll - INFO: DLL C:\Windows\system32\ntdsa.dll の読み込み
023c:0240 @ 00048468 - LdrpFindOrMapDll - ENTER: DLL 名: C:\Windows\system32\ntdsa.dll
023c:0240 @ 00048468 - LdrpResolveDllName - ENTER: DLL 名: C:\Windows\system32\ntdsa.dll
023c:0240 @ 00048468 - LdrpResolveDllName - RETURN: Status: 0xc0000135
023c:0240 @ 00048468 - LdrpResolveDllName - ENTER: DLL 名: C:\Windows\system32\ntdsa.dll
023c:0240 @ 00048468 - LdrpResolveDllName - RETURN: Status: 0xc0000135
023c:0240 @ 00048468 - LdrpFindOrMapDll - RETURN: Status: 0xc0000135
023c:0240 @ 00048468 - LdrpLoadDll - RETURN: Status: 0xc0000135
023c:0240 @ 00048468 - LdrLoadDll - RETURN: Status: 0xc0000135

ここで、0xc0000135状態コードは次の場所にマップされます。

16 進数 10 進数 シンボリック フレンドリ エラー文字列
0xc0000135 -1073741515 STATUS_DLL_NOT_FOUND %hs が見つからなかったため、このアプリケーションの起動に失敗しました。 アプリケーションを再インストールすると、この問題が解決する可能性があります。

これらのバイナリは、"Active Directory Domain Services" オプションロールの一部としてインストールされます。 DirectoryServices-DomainController ロールは既定で無効になっており、Windows Server 2008 R2 オペレーティング システムにはその名前のロールがないため有効になっていません。 使用可能なWindows Server 2012 マニフェスト間で一致するものがないため、アップグレードがハングします。

解決方法

アップグレード時にサーバーがスタックしている状況を解決するには、以前の OS バージョンへのロールバックと状態がトリガーされるまで、サーバーを再起動し続けます。 黒い画面で永続的にハングした後、サーバーを 2 回再起動します。 セットアップによって失敗したアップグレード試行が検出され、システムが以前の OS バージョンにロールバックされます。

注:

このプロセスでデータ損失が発生することはありません。 OS バージョンのアップグレード試行の前に正常で機能していたサーバー コア DC は、引き続き機能する必要があります。

セットアップ ソース ファイルに "置換マニフェスト" を追加することで、インプレース アップグレードを成功させることができます。 マニフェストを取得するには、Microsoft カスタマー テクニカル サポートにお問い合わせください。 エージェントがマニフェスト ファイルを無料で提供できるように、この記事を参照してください。

このマニフェストを使用してサーバーのコア ドメイン コントローラーをアップグレードするには、次の手順に従います。

  1. Microsoft から取得した CAB ファイルの内容を展開して、マニフェスト ファイル "DirectoryServices-DomainController-ServerCoreUpg-Replacement.man" を取得します。
  2. Windows Server 2012インストール DVD の内容を d:\products\ws12 などのハード ディスク フォルダーにコピーします。
  3. フォルダー d:\products\ws12\sources\replacementmanifests を作成します。
  4. Microsoft から取得したマニフェスト ファイルを新しいフォルダーに配置します。
  5. 手順 2 で作成したサーバーの場所を、サーバーアップグレードのソースとして使用します。

回避策

上記の方法を使用できない場合は、この状況から抜け出す回避策を次に示します。

  1. 異なる物理マシンまたは物理マシンで新しいWindows Server 2012 Server コア DC を昇格させます。 既存の W2K8 R2 Server コア DC をインプレース アップグレードする代わりに、新しい物理マシンまたは仮想マシンで新しいWindows Server 2012 サーバー コア DC を昇格させます。 必要に応じて、ダウンレベルの W2K8 R2 サーバー コア DC を廃止します。

  2. Windows Server 2012へのインプレース アップグレードの前に、W2K8 R2 Server コア コンピューターの ADDS ロールを削除します。

詳細

アップグレードがハングし、コンピューターをリセットすると、Windows ブート ローダーは既定で "Windows Server 2012" を起動します。 "Windows セットアップ ロールバック" ブート オプションを選択することで、Windows ブート ローダーでロールバックをトリガーできます。 既定の設定でマシンを起動することもできます。

Windows ブート ローダーは既定でWindows Server 2012を起動します。

"Windows Server 2012" ブート オプションが使用された場合、SETUP は、失敗したインプレース アップグレードを検出し、以前の OS バージョンへのロールバックを自動的にトリガーします。

SETUP は、失敗したインプレース アップグレードを検出し、以前の OS バージョンへのロールバックを自動的にトリガーします。

注:

この記事に示されているスクリーンショットのサイズと縦横比は、簡潔にするために変更されています。

巻き戻し後にインターネット エクスプローラーに問題が発生する可能性があります。

iernonce.dll を開始する際に問題が発生しました
指定したモジュールが見つかりませんでした。

巻き戻し後にエラーが発生 iernonce.dll 開始中に問題が発生しました。

データ収集

Microsoft サポートの支援が必要な場合は、「展開関連の問題について TSS を使用して情報を収集する」に記載している手順に従って情報を収集することをお勧めします。