SE の雑記

SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿

インターネットに接続されていない、インストール直後の Windows 7 SP1 x64 に最新の SSMS をインストールする方法

leave a comment

タイトルの通りですが、インターネットに接続されていない、インストール直後の Windows 7 SP1 x64 に対して、SQL Server 2016 対応された最新の SSMS をインストールしようとした場合、少し癖がありましたので情報を。
Windows Update かけて最新化している場合は、発生しない気がしますが、素の Windows 7 SP1 だと発生するかと思います。

同様の情報として、 Windows 8/2012 以前のインターネット接続がない環境への SQL Server Management Studio のインストールが失敗する が公開されていますが、インストール直後の Windows 7 SP1 ですと、追加の手順が必要となります。
SSMS では、.NET Framework 4.5 が必要となりますので、これについては事前にインストールしておく必要があります。
今回は .NET Framework 4.5.1 のオフラインインストーラーでインストールしています。
# ぐぐったらすぐに出てきたオフラインインストーラーがこれだったので使っているのですが、4.5.2 でもいいかと。
Windows 7 SP1 + .NET Framework 4.5 の環境であれば SSMS のインストールを行うことができるのですが、進めると以下のような画面のエラーになるケースがあります。
image
「証明書チェーンを、信頼されたルート機関として構築できませんでした。 (0x800B010A)」というエラーになるのですが、これは、パッケージで使用されている証明書が Windows 7 SP1 のインストール直後の状態では含まれておらず、インターネット経由で取得しようとしても、経路がないために入手することができず、このようなエラーとなっています。
エラーログの内容としては以下のような出力となっています。

[0330:0BF8][2016-07-12T21:25:55]e000: Error 0x800b010a: Failed authenticode verification of payload: C:\ProgramData\Package Cache\.unverified\SqlSupport_x86
[0330:0BF8][2016-07-12T21:25:55]e000: Error 0x800b010a: Failed to verify signature of payload: SqlSupport_x86
[0330:0BF8][2016-07-12T21:25:55]e310: Failed to verify payload: SqlSupport_x86 at path: C:\ProgramData\Package Cache\.unverified\SqlSupport_x86, error: 0x800b010a. Deleting file.
[0330:0BF8][2016-07-12T21:25:55]e000: Error 0x800b010a: Failed to cache payload: SqlSupport_x86
[080C:0614][2016-07-12T21:25:55]e314: Failed to cache payload: SqlSupport_x86 from working path: C:\Users\MASAYU~1.OZA\AppData\Local\Temp\{55b82ab1-373d-4526-96d2-01a9e8f1b0ab}\SqlSupport_x86, error: 0x800b010a.
[080C:0614][2016-07-12T21:25:55]e349: Application requested retry of payload: SqlSupport_x86, encountered error: 0x800b010a. Retrying...
[0330:0BF8][2016-07-12T21:25:57]e000: Error 0x800b010a: Failed authenticode verification of payload: C:\ProgramData\Package Cache\.unverified\SqlSupport_x86
[0330:0BF8][2016-07-12T21:25:57]e000: Error 0x800b010a: Failed to verify signature of payload: SqlSupport_x86
[0330:0BF8][2016-07-12T21:25:57]e310: Failed to verify payload: SqlSupport_x86 at path: C:\ProgramData\Package Cache\.unverified\SqlSupport_x86, error: 0x800b010a. Deleting file.
[0330:0BF8][2016-07-12T21:25:57]e000: Error 0x800b010a: Failed to cache payload: SqlSupport_x86
[080C:0614][2016-07-12T21:25:57]e314: Failed to cache payload: SqlSupport_x86 from working path: C:\Users\MASAYU~1.OZA\AppData\Local\Temp\{55b82ab1-373d-4526-96d2-01a9e8f1b0ab}\SqlSupport_x86, error: 0x800b010a.
[080C:0614][2016-07-12T21:25:57]e349: Application requested retry of payload: SqlSupport_x86, encountered error: 0x800b010a. Retrying...
[0330:0BF8][2016-07-12T21:25:58]e000: Error 0x800b010a: Failed authenticode verification of payload: C:\ProgramData\Package Cache\.unverified\SqlSupport_x86
[0330:0BF8][2016-07-12T21:25:58]e000: Error 0x800b010a: Failed to verify signature of payload: SqlSupport_x86
[0330:0BF8][2016-07-12T21:25:58]e310: Failed to verify payload: SqlSupport_x86 at path: C:\ProgramData\Package Cache\.unverified\SqlSupport_x86, error: 0x800b010a. Deleting file.
[0330:0BF8][2016-07-12T21:25:58]e000: Error 0x800b010a: Failed to cache payload: SqlSupport_x86
[080C:0614][2016-07-12T21:25:58]e314: Failed to cache payload: SqlSupport_x86 from working path: C:\Users\MASAYU~1.OZA\AppData\Local\Temp\{55b82ab1-373d-4526-96d2-01a9e8f1b0ab}\SqlSupport_x86, error: 0x800b010a.
[0330:0BF8][2016-07-12T21:25:58]i351: Removing cached package: DotNet46, from path: C:\ProgramData\Package Cache\83D048D171FF44A3CAD9B422137656F585295866[0330:0BF8][2016-07-12T21:25:58]i351: Removing cached package: VCRedistD14x86, from path: C:\ProgramData\Package Cache\BFB74E498C44D3A103CA3AA2831763FB417134D1[080C:08E4][2016-07-12T21:25:58]e000: Error 0x800b010a: Failed while caching, aborting execution.
[0330:0714][2016-07-12T21:25:58]i330: Removed bundle dependency provider: {55b82ab1-373d-4526-96d2-01a9e8f1b0ab}
[0330:0714][2016-07-12T21:25:58]i352: Removing cached bundle: {55b82ab1-373d-4526-96d2-01a9e8f1b0ab}, from path: C:\ProgramData\Package Cache\{55b82ab1-373d-4526-96d2-01a9e8f1b0ab}[080C:08E4][2016-07-12T21:25:58]e000: MainViewModel.OnBundleAction: Bundle action failed: 証明書チェーンを、信頼されたルート機関として構築できませんでした。 (0x800B010A)
[080C:08E4][2016-07-12T21:25:58]i399: Apply complete, result: 0x800b010a, restart: None, ba requested restart:  No
[080C:00DC][2016-07-13T07:49:30]i000: MainViewModel.OpenUrl: Opening url: C:\Users\MASAYU~1.OZA\AppData\Local\Temp\SsmsSetup\SSMS-Setup-JPN_20160712212521.log

 
インターネットに接続されている環境であれば、インストールプロセスの「パッケージを読み込んでいます。しばらくお待ちください…」のタイミングで、で CRL の確認等が行われ、その中で以下の URL にアクセスをしてルート証明書の追加が行われています。
http://www.microsoft.com/pki/certs/MicRooCerAut2011_2011_03_22.crt
http://www.microsoft.com/pki/certs/MicRooCerAut_2010-06-23.crt
 
 
インターネットに接続されていない環境ですと、インストールする必要のあるパッケージで使用しているルート証明書の入手ができないため、エラーとなるようです。
ユーザーの信頼されたルート証明機関の証明書に

  • Microsoft Root Certificate Authority 2010
  • Microsoft Root Certificate Authority 2011

が含まれていない場合は、上記の URL から証明書をダウンロードしてインストールすることで、冒頭で紹介したエラーを回避できるようになります。
この対応と合わせて、 Windows 8/2012 以前のインターネット接続がない環境への SQL Server Management Studio のインストールが失敗する に書かれている https://support.microsoft.com/ja-jp/kb/2862966 がインストールされていることが、Windows 7 SP1 で最新の SSMS をインストールするための条件となるようです。
# KB2862966 もインストールされていないと Visual Studio 2015 isolated shell? のインストールでエラーとなります。
ルート証明書のインストールの方法としては、ルート証明書の登録方法について で紹介されている「rootsupd.exe」をインストールする方法もあるかと思いますが、この exe、DL しようとすると Windows 10 の Windows Defender で Malware 扱いされるため、企業内の N/W からそもそも入手できない可能性がありますので、証明書を個別にインストールしたほうが良いかと。
また、「ルート証明書の自動更新をオフ」のようなポリシーを設定しても、本エラーは回避できませんので、ルート証明書はインストーラーを実行するユーザーの有効なルート証明書としてインストールしておく必要があります。
 
関連として以下のような情報もありましたので、こちらはご紹介まで。
Windows Vista SP2、Windows Server 2008 SP2、Windows 7 SP1、および Windows Server 2008 R2 SP1 用の .NET Framework 4.6.1/4.6 のセキュリティ更新プログラム 3136000 および .NET Framework 4.5.2 のセキュリティ更新プログラム 3135996 の既知の問題
信頼されたルートおよび許可されない証明書を構成する
管理者が、接続されていない Windows 環境で信頼されている CTL と許可されていない CTL を更新できるようにする更新プログラムについて
Microsoft Trusted Root Certificate Program Updates

Share

Written by Masayuki.Ozawa

7月 13th, 2016 at 8:18 am

Posted in SQL Server

Tagged with

Leave a Reply