2017年10月11日に配信された現在最新のWindows7用のマンスリー品質ロールアップ(KB4041681)のダウンロードリンクをメモ。この月例パッチには現時点で最新のWindows Update Clientが含まれています。

置き換えられる更新プログラム

ロールアッププログラムは以前の古いファイルを新しいものに置き換えます。今回のKB4041681によって置き換えられる更新ファイルは以下のページの[パッケージの詳細]タブで確認できます。

Windows Update Client(Wuapi.dll)について

Windowsアップデートの更新の確認が遅い。または終わらないときは最新のWindows Update Clientを入れると解消できる場合があります。

今回のKB4041681に含まれているWindows Update Client(Wuapi.dll)のバージョンは2017年6月の月例ロールアップ(KB4022719)に含まれているものから特に変わっていませんでした。

  • 2017年10月セキュリティ マンスリー品質ロールアップ
  • Wuapi.dll のバージョンは 7.6.7601.23806
  • Wuapi.dll のファイル更新日時は 2017年5月11日

ダウンロードリンク

Windows Updateカタログ

直リンク

上記のWindows Updateカタログが正常に表示されない場合は以下よりダウンロードしてみてください。

バッチファイル

Windows7 32bit用のKB4041681のダウンロードからサイレントインストールを行うバッチファイルの参考。

@echo off
set DownloadURL=http://download.windowsupdate.com/d/msdownload/update/software/secu/2017/09/windows6.1-kb4041681-x86_1aa9b089eecfd9d2c3a69781d4ada892f13196ad.msu
set KbFileName=windows6.1-kb4041681-x86

md c:\InstallKB

bitsadmin.exe /transfer KbFileGet %DownloadURL% c:\InstallKB\%KbFileName%.msu
wusa.exe c:\InstallKB\%KbFileName%.msu /extract:c:\InstallKB
pkgmgr.exe /n:c:\InstallKB\%KbFileName%.xml /quiet
 
rd /s /q c:\InstallKB

pause
exit

最近のWindows Update Clientについて

このページは投稿時点のものです。最近のWindows Upadate Clientが気になるときは以下のリンク先をご参照ください。たまに見逃すことはありますが、新しいWindows Update Clientを見つけては投稿していますので、このページより新しいバージョンのWindows Update Clientが見つけやすいと思います。

WEBサイトでソースをきれいに表示してくれるSyntaxHighlighterですが、コマンドプロンプト(DOS)のバッチファイル(bat, cmd, com)のソースは標準で対応していません。でも、別でWindowsバッチファイル用のBrushファイル(shBrushBat.js)を読み込ませれば対応できるようです。

まだ試していませんが、参考サイトをメモ。

shBrushBat.jsのダウンロード先と参考サイト

SyntaxHighlighter

SyntaxHighlighterと類似の他のハイライター

指定の日、または指定の時間を越えていたらシャットダウン・再起動をするバッチファイルのメモ。

Windowsマシンのクリーンインストールやリカバリを行う機会が多く、Windows Updateを自動で繰り返すバッチファイルを走らせているのですが、一定時間放置していると更新するファイルがないのに延々と再起動を繰り返している状態があったりするので、指定の日時が来たら勝手に止まるように考えてみました。

現在を示すコマンドの参考

現在の日付を表示するコマンド

echo %DATE%

現在の時間を表示するコマンド

echo %TIME%

単純に日または時間だけで比較してコマンドを実行

日付のみで比較する場合

現在の日付が指定日またはそれ以降の日の場合、60秒後にシャットダウンします。

@echo off
set STOPDATE="2017/10/06"
if %STOPDATE% geq %DATE% shutdown /s /t 60

時間のみで比較する場合

現在の時間が指定時間以降の時間の場合、60秒後に再起動します。

@echo off
set STOPTIME="20:00:00.00"
if %STOPDATE% gtr %TIME% shutdown /r /t 60

比較演算子について

== 等しい
equ 等しい
neq 等しくない
gtr より大きい
geq 以上
leq 以下
lss より小さい(=未満)

ちなみに、/iを付けると、大文字と小文字を区別しなくなります。

日付と時間の両方で比較したいとき

コマンドプロンプトではIF文でANDやORを使って複数の条件を指定できないみたいです。

それで、IF文の中にIFにIF分を入れ子にして複数の条件を分岐させる方法もやってみたのですが、書き方が悪かったのかうまくいかなかったので、例えば、2017/10/05 22:00201710052200のように日付と時間を合体させて比較して分岐する方法でやってみました。

もっと短いコードで、いいやり方があると思いますが、とりあえずこれでもうまくいきました。

@echo off

setlocal enabledelayedexpansion

rem 終了日時を設定
set ENDDAY=2017/10/05
set ENDTIME=23:59

rem 現在の日時を数値化
Set YYYY=%Date:~0,4%
Set MM=%Date:~5,2%
Set DD=%Date:~8,2%
Set TT=%Time:~0,2%%Time:~3,2%
Set TT=%TT: =0%
Set TS=%YYYY%%MM%%DD%%TT%

rem 終了の日時を数値化
set ENDYYYY=%ENDDAY:~0,4%
Set ENDMM=%ENDDAY:~5,2%
Set ENDDD=%ENDDAY:~8,2%
Set ENDTT=%ENDTIME:~0,2%%ENDTIME:~3,2%
rem Set ENDTT=%ENDTT: =0%
Set ENDTS=%ENDYYYY%%ENDMM%%ENDDD%%ENDTT%


echo %TS%
echo %ENDTS%

if %%!TS!%% lss %%!ENDTS!%% (
	echo まだ大丈夫
) else (
	echo 終了
)

endlocal

pause

IF文の中では変数を%%!TS!%%%%!ENDTS!%%としているのは%TS%と%ENDTS%の値がECHOではちゃんと正常な数値になっているのに、IF文の条件比較では変数の値がリアルタイムに反映されていないみたいで、思ったとおりの動きになりません。

そこで、遅延環境変数(変数を!で囲って使う)というものを使います。通常、!TS!でうまくいくはずですが、思った通りに反映されなかったので、変数の値を複数回更新するという意味で%を2個付けて%%!TS!%%としています。

他のスクリプト言語だと同じ変数にどんどん値を代入すればちゃんとそのとおりの値になっているのに、バッチファイルではなりません。これはバッチファイルならではの仕様のようです。

IF文FOR文では遅延環境変数を使う癖を身に着けていないとドツボにはまりますので覚えておきたいと思います。

遅延環境変数と使うときはsetlocal enabledelayedexpansionという宣言が必要です。

setlocalの説明については省きます。ちなみにendlocalはなくても大丈夫です。

ライセンス認証済みのMicrosoft Office 2013のエクセルが調子悪いと相談があり、[コントロールパネル][プログラムと機能]より[変更]ボタンを押して[修復]を行ったところ、ライセンス認証を求められました。

ところが、PCの持ち主がプロダクトキー記載のカードがどこにいったかわからいというよくある困った状況。そこでいくつかプロダクトキーを調べる方法がいくつかあったのでメモ。

コマンドプロンプトからヒントを得る

以下のコマンドでプロダクトキーの一部(一番最後の5桁)を見つけることができます。古いバージョンのオフィスであればこの一部からレジストリを検索してプロダクトキーを見つけることができるそうです。

cscript.exe slmgr.vbs /dlv all 
cscript "%programfiles%\Microsoft Office\Office15\ospp.vbs" /dstatus

コマンドプロンプトは管理者として起動しないとエラーになります。

使えそうなフリーソフト

試していないけど使えそうなので一応メモ。

DigitalProductIDをデコードするスクリプト

Office 2013の場合、暗号化されたプロダクトキーが以下のレジストリに格納されています。

  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\15.0\Registration\{90150000-0011-0000-1000-0000000FF1CE}
  • DigitalProductID(REB_BINARY)

ちなみにWindowsの場合は以下に格納されています。

  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion
  • DigitalProductID(REB_BINARY)
  • DigitalProductID4(REB_BINARY)

ここの値のデータをデコードすればプロダクトキーがわかります。そのデコードを行うVBスクリプトが以下ページにあります。

使えなかったけど以下も参考に

試したらちゃんと動きましたが2013のキーは違うものが出力されました。Office 2013/2016はオフセット値を変えないといけないかもしれませんが、その数値がわかりません。

DigitalProductIDをデコードするサイト

2017年09月13日に配信された現在最新のWindows7用のマンスリー品質ロールアップ(KB4038777)のダウンロードリンクをメモ。この月例パッチにWindows Update Clientが含まれています。

置き換えられる更新プログラム

ロールアッププログラムは以前の古いファイルを新しいものに置き換えます。今回のKB4038777によって置き換えられる更新ファイルは以下のページの[パッケージの詳細]タブで確認できます。

Windows Update Client(Wuapi.dll)について

Windowsアップデートの更新の確認が遅い。または終わらないときは最新のWindows Update Clientを入れると解消できる場合があります。

今回のKB4038777に含まれているWindows Update Client(Wuapi.dll)のバージョンは2017年6月の月例ロールアップ(KB4022719)から特に変わっていませんでした。

  • 2017年9月セキュリティ マンスリー品質ロールアップ
  • Wuapi.dll のバージョンは 7.6.7601.23806
  • Wuapi.dll のファイル更新日時は 2017年5月11日

ダウンロードリンク

Windows Updateカタログ

直リンク

上記のWindows Updateカタログが正常に表示されない場合は以下よりダウンロードしてみてください。

バッチファイル

Windows7 32bit用のKB4038777のダウンロードからサイレントインストールを行うバッチファイルの参考。

@echo off
set DownloadURL=http://download.windowsupdate.com/c/msdownload/update/software/secu/2017/08/windows6.1-kb4038777-x86_637172427722e29eb8a10fa4fb3e734d63f9eab7.msu
set KbFileName=windows6.1-kb4038777-x86

md c:\InstallKB

bitsadmin.exe /transfer KbFileGet %DownloadURL% c:\InstallKB\%KbFileName%.msu
wusa.exe c:\InstallKB\%KbFileName%.msu /extract:c:\InstallKB
pkgmgr.exe /n:c:\InstallKB\%KbFileName%.xml /quiet
 
rd /s /q c:\InstallKB

pause
exit

最近のWindows Update Clientについて

このページは投稿時点のものです。最近のWindows Upadate Clientが気になるときは以下のリンク先をご参照ください。たまに見逃すことはありますが、新しいWindows Update Clientを見つけては投稿していますので、このページより新しいバージョンのWindows Update Clientが見つけやすいと思います。

コマンドプロンプトからWindows Live Mail(Windows Essentials 2012)をアンインストールするコマンドとバッチファイルをメモ。

コマンド

以下のコマンドで非応答によるアンインストールができます。サイレントアンインストールですが進行バーが表示されるのアンインストール状況がわかります。

32ビットOSの場合

"c:\Program Files\Windows Live\Installer\wlarp.exe" /cleanup:all /q

64ビットOSの場合

"c:\Program Files (x86)\Windows Live\Installer\wlarp.exe" /cleanup:all /q 

アンインストールが完了して再起動しましたが、メールフォルダフォルダが残っていましたので、これを含めて完全に消去する方法が知りたいところです。そこで、他にどんなコマンドスイッチがあるのか知りたかったのですがヘルプの表示が出せず、参考になるページにもたどり着けませんでした。

メールのデータはデフォルトのままであれば以下のフォルダに入っていますので、メールを残したくない場合、とりあえずこのフォルダを丸ごと削除すればいいかと思われます。

メール保存フォルダ

C:\Users\ユーザー名\AppDate\Local\Microsoft\Windows Live Mail

バッチファイル例

@echo off

if %PROCESSOR_ARCHITECTURE% equ ^x86 (
     "c:\Program Files\Windows Live\Installer\wlarp.exe" /cleanup:all /q
) else (
     "c:\Program Files (x86)\Windows Live\Installer\wlarp.exe" /cleanup:all /q 
)

pause

その他

いろいろ調べていてWindows Live Mailに限らず、他のアプリケーションをアンインストールする際に使用できるアンインストーラーのパスをレジストリから確認する方法があったのでついでにメモ。

WindowsファイアウォールでPING(ICMPプロトコル)の応答を許可されていないPCに許可する規則を有効にするコマンドを見つけたのでメモ。

netsh advfirewallというコマンドを使えばファイアウォール関連の設定ができるようです。

何台もGUIで設定するのは面倒

例えば、IPv4のアドレスに対してドメインネットワークからのPING応答を許可するとしたら、GUIでは[コントロールパネル]-[Windowsファイアウォール]-[詳細設定]-[セキュリティが強化されたWindowsファイアウォール]-[受信の規則]を開き、

ドメイン用の[ファイルとプリンターの共有 (エコー要求 - ICMPv4 受信)]のプロパティを開いて[有効]にチェックを入れます。

この作業が何台も何度もあるとちょっと面倒になってきます。そこでファイアウォール関連のnetsh advfirewallコマンドをバッチファイルで保存しておけばクリック一発で設定完了です。

netsh advfirewallコマンドで有効化

ドメインネットワークからIPv4のアドレスからのICMP受信を許可するとしたら以下となります。

netsh advfirewall firewall set rule name="ファイルとプリンターの共有 (エコー要求 - ICMPv4 受信)" profile=domain new enable=yes

IPv6の場合も同様に以下となります。

netsh advfirewall firewall set rule name="ファイルとプリンターの共有 (エコー要求 - ICMPv6 受信)" profile=domain new enable=yes

プライベートやパブリックネットワークも同時に有効にする場合は、profile=domain,private,publicにします。無効にする場合はenable=noにすればOKです。コマンドは管理者として実行しないとエラーになります。

状態を確認するコマンド

ちなみに有効か無効かを確認するコマンドは以下となります。

「有効:」の行はいになっていれば有効で、いいえの場合は無効になっています。

 netsh advfirewall firewall show rule name="ファイルとプリンターの共有 (エコー要求 - ICMPv4 受信)"

設定を変更するときはsetですが、確認するときはshowを使います。上記は、ドメイン、プライベート、パブリックなど、すべての状態を表示しますが、ドメインのみの規則を確認したい場合は以下のようにprofile=domainを追加します。

netsh advfirewall firewall show rule name="ファイルとプリンターの共有 (エコー要求 - ICMPv4 受信)" profile=domain

バッチファイルのソース

上記のコマンドを使い、有効か無効かを判別して無効になっている場合のみ、有効にするといったバッチファイルの例が以下となります。

@echo off

echo Windowsファイアウォールの"ファイルとプリンターの共有 (エコー要求 - ICMPv4 受信)"が有効になっているか確認しています。

netsh advfirewall firewall show rule name="ファイルとプリンターの共有 (エコー要求 - ICMPv4 受信)" profile=domain | findstr "有効.*はい$"

if %ERRORLEVEL% equ 0 (
	echo IPv4のエコー要求は有効になっています。
) else (
	echo IPv4のエコー要求は有効になっていませんでした。有効にしています。
	netsh advfirewall firewall set rule name="ファイルとプリンターの共有 (エコー要求 - ICMPv4 受信)" profile=domain new enable=yes
)

echo.
echo Windowsファイアウォールの"ファイルとプリンターの共有 (エコー要求 - ICMPv6 受信)"が有効になっているか確認しています。

netsh advfirewall firewall show rule name="ファイルとプリンターの共有 (エコー要求 - ICMPv6 受信)" profile=domain | findstr "有効.*はい$"

if %ERRORLEVEL% equ 0 (
	echo IPv6のエコー要求は有効になっています。
) else (
	echo IPv6のエコー要求は有効になっていませんでした。有効にしています。
	netsh advfirewall firewall set rule name="ファイルとプリンターの共有 (エコー要求 - ICMPv6 受信)" profile=domain new enable=yes
)

pause

コマンドの参考

実行後

コマンドおよびバッチファイル実行後は以下のとおり、無効だったドメインのプロファイルが有効になりました。

WindowsにAdobe Acrobat Reader DCをオフライン環境でサイレントインストールするときに使うコマンドとバッチファイルや、初回起動時の使用許諾契約(EULA)スタートアップの画面を表示させないレジストリをメモ。

DCやオフライン限定ではなく、オンライン版のインストーラーやReaderではないAcrobat StanderdやProも大体共通かと思われます。

Acrobat Reader DC のダウンロード先

Windows版のインストーラーはいつもここからダウンロードしています。オフライン環境でもインストール可能なインストーラーをダウンロードできます。

バージョンによってはアップデート用のインストーラーしかない場合がありますので、セットアップ用かアップデート用か確認してダウンロードしてください。新規インストール用のみのセットアップファイルのみでよければ以下からもダウンロードできます。

セットアップ用とアップデート用のファイルの見分け方

セットアップ用のファイルの例

今日現在で一番新しいセットアップはバージョン17.012.20093で以下となります。

アップデート用のファイルの例

今日現在で一番新しいアップデータはバージョン17.012.20098で以下となります。セットアップ用と違ってファイル名にアップデートを示す「Upd」という文字が入っています。

サイレントインストールするコマンド

セットアップするコマンド

以下はサイレントインストールするコマンドの一例です。サイレントインストールは進行状況が見えないため、インストール中なのかインストールが終了しているのかわかりません。

C:\AcroRdrDC1701220093_ja_JP.exe /sAll /rs /rps /msi EULA_ACCEPT=YES SUPPRESS_APP_LAUNCH=YES

/msi EULA_ACCEPT=YESはインストール後の初回起動時に使用許諾契約書(EULA)の表示しないようにするものです。SUPPRESS_APP_LAUNCH=YESはセットアップ後に Adobe Reader を起動するのを抑制するオプションですが、DCの場合はセットアップ後に起動してこないので省いても問題ありません。その他のパラメーターの意味は以下を参考にしてください。

アップデートするコマンド

セットアップとちょっと違い、MSIEXEC.EXEを使用してインストールします。

msiexec /update C:\AcroRdrDCUpd1701220098.msp /passive /norestart

/passiveでインストール操作は不要ですがインストールの進行状況が表示されるので、サイレントインストールと違い、インストールが完了しているかどうかわかりやすいです。/quietにすればサイレントインストールとなります。

初回起動時の画面を出さないようにするレジストリ

インストール後の初回起動時に、使用許諾契約とスタートアップの画面が出ますが、これを出さないようにするレジストリがありました。

使用許諾契約(EULA)の画面を表示させない

このレジストリで既に同意したことにします。インストールパスに/msi EULA_ACCEPT=YESを付けた状態でインストールすれば以下と同じ状態になります。

キー HKEY_LOCAL_MACHINE¥Software¥Adobe¥Acrobat Reader¥DC¥AdobeViewer
値の名前 EULA
REG_DWORD
値の内容 1(同意する)

コマンドで登録するときは以下となります。

reg add "HKEY_LOCAL_MACHINE¥Software¥Adobe¥Acrobat Reader¥DC¥AdobeViewer" /v EULA /t REG_DWORD /d 1 /f

スタートアップの画面を非表示にする

キー HKEY_LOCAL_MACHINE\Software\Policies\Adobe\Acrobat Reader\DC\FeatureLockDown
値の名前 bShowWelcomeScreen
REG_DWORD
値の内容 0(非表示)

コマンドで登録するときは以下となります。

reg add "HKEY_LOCAL_MACHINE\Software\Policies\Adobe\Acrobat Reader\DC\FeatureLockDown" /v bShowWelcomeScreen /t REG_DWORD /d 0 /f 

バッチファイル

上記を踏まえて、セットアップ→アップデート→レジストリ登録までノンストップで行うバッチファイルのソース例は以下となります。管理者として実行してください。

@echo off

echo Acrobat Reader DC をインストールしています。
C:\AcroRdrDC1701220093_ja_JP.exe /sAll /rs /rps /msi EULA_ACCEPT=YES
if %errorlevel% neq 0 (
	echo エラー発生したので中断します。エラーレベル %errorlevel%
	goto END 
)

echo Acrobat Reader DC をアップデートしています。
msiexec /update C:\AcroRdrDCUpd1701220098.msp /passive /norestart
if %errorlevel% neq 0 (
	echo エラー発生したので中断します。エラーレベル %errorlevel%
	goto END 
)

echo スタートアップ画面を非表示にするレジストリを登録しています。
reg add "HKEY_LOCAL_MACHINE\Software\Policies\Adobe\Acrobat Reader\DC\FeatureLockDown" /v bShowWelcomeScreen /t REG_DWORD /d 0 /f
if %errorlevel% neq 0 (
	echo エラー発生したので中断します。エラーレベル %errorlevel%
	goto END 
)

echo 完了しました。

:END
pause

試していないので、うまく動かなかったらごめんなさい。

Adobe Customization Wizard

使用許諾契約(EULA)の画面をださないようにインストーラーをカスタマイズするAdobe Customization Wizardというツールもあるようです。

まとめ

とりあえずはこれで少しインストールが楽になりそうです。

Windows Essentials 2012(Windows Live Mail)のサポートが2017/01/10で終了している今更ですが、Windows Liveメールのメールを取り込んで、Outlook用のPSTファイルをエクスポートできるフリーソフトを見つけたのでメモ。

MailStore Homeはドイツ製ですが日本語に対応しています。インストールする際は。ハードディスクにインストールする方法と、PCにインストールせずにUSBメモリなどから実行できるポータブル形式を選択できるので気が利いています。

Windows 10/8.1/7/Vista対応で、現時点のバージョンはVersion 10.1.4(2017/08/24リリース)

いろいろなメーラーに対応

いつか困ったときに使おうと思って実際に使っていないのですが、Windows LiveメールとOutlook以外にもいろいろなメーラーからインポートして、それぞれの形式でエクスポートできるようです。

  • Gmail、ヤフーメール
  • POP/IMAPのメールボックス
  • Microsoft Outlook 2003, 2007, 2010, 2013, 2016
  • Microsoft Outlook Express、Windows Mail
  • Microsoft Exchange Server 2003, 2007, 2010, 2013メールボックス
  • Microsoft Office 365 (Exchange Online)
  • Mozilla Thunderbird
  • Mozilla SeaMonkey
  • PST, EMLの拡張子のファイル

しかも、フォルダーツリー構造を維持した状態で取り込めるようです。各種メールソフトへエクスポートする目的で使ったり、過去のメールを検索したりするためのバックアップに使えそうです。、CD/DVDに書き込んだりする機能もあるようです。あくまでもアーカイブするだけのソフトでメーラーとしての機能はないようです。

アドレス帳や連絡先はどうなるのかわかりませんので、個別にバックアップしておく必要があるかもしれません。

スクリーンショット

Windows 10にポータブル形式でインストールしてみたときのスクリーンショットです。

インポート(アーカイブ)画面

エクスポート画面

ダウンロード先

使い方の参考

使い方については一例ですが以下が参考になります。

Windows Live Mail → Outlookの場合

Windows Live Mailフォルダを指定してインポートすればいいようです。デフォルトの保存場所は以下となります。

C:\Users\ユーザー名\AppDate\Local\Microsoft\Windows Live Mail
%USERPROFILE%\AppDate\Local\Microsoft\Windows Live Mail

AppDateフォルダは隠しフォルダなので、コマンドプロンプトからパスを指定して開くか、フォルダオプションで隠しファイル・隠しフォルダを表示する設定に変更してから開かないと見えません。

Windows Live Mail → Thunderbird

Gmailを取込む場合

オフラインイントーラーなのに単体でインストールすると失敗する.NET Framework 4.7(KB3186497)

前回、クリーンインストールホヤホヤのWindows 7に.NET Framework 4.7をオフライン環境で失敗せずにインストールする方法を書きましたが、今度は言語パックのオフラインインストールが失敗しました。

そこで今回は、失敗せずに.NET Framework 4.7(KB3186497)言語パック(KB3186499)を完全オフライン環境でインストールできる方法をまとめました。

ざっくりした流れ

  1. D3DCompiler_47.dllをインストール
  2. 証明書(MicrosoftRootCertificateAuthority2011.cer)を登録
  3. .NET Framework 4.7(KB3186497)をインストール
  4. NET Framework 4.7の言語パック(KB3186499)をインストール

1.D3DCompiler_47.dllをインストール

何のためのDLLかわかりませんが、.NET Framework 4.7(KB3186497)をインストールするためにはD3DCompiler_47.dllが必要です。

C:\Windows\Syatem32\D3DCompiler_47.dll

これがないとオンライン・オフライン共にインストール際、以下のエラーが出ます。

D3DCompiler_47.dllは、2017 年 5 月 17 日 - KB4019265 (マンスリー ロールアップのプレビュー)以降の月例ロールアップにも含まれていますので、月例ロースアップを適用しているPCでは既に存在しているので対応は不要ですが、存在していない場合はKB4019990を適用するか2017年5月以降の最新のマンスリーロールアップを適用してください。

2.証明書(MicrosoftRootCertificateAuthority2011.cer)を登録

証明書マネージャ(certmgr.msc)の[信頼できるルート証明機関][Microsoft Root Certificate Authority 2011]が登録されていないと以下のエラーが出ます。

いろいろやってみて、言語パックのオフラインインストールでは、この証明書の追加を避けることはできないことがわかりました。

この作業が面倒くさそうなので、前回は.NET Framework 4.7(KB3186497)のインストーラーを解凍することで避けることができたのですが、言語パック(KB3186499)はインストーラーを解凍してインストールするとエラーが出ます。普通は解凍しないと思いますが、この証明書を入れた後で未解凍のままインストールしてください。

ダウンロードリンク

以下リンクからMicrosoftRootCertificateAuthority2011.cerをダウンロードします。

楽に追加するコマンド

手動だと証明書マネージャ(certmgr.msc)を手動で開いたりと面倒なので、サクッとコマンドで登録します。ファイルパスは適当に変更し、管理者として起動したコマンドプロンプトで実行してください。

certutil.exe -addstore root "C:\MicrosoftRootCertificateAuthority2011.cer"

バッチファイル

何度も行う機会がある場合は、いかのバッチファイルを使うと便利です。MicrosoftRootCertificateAuthority2011.cerと同じ場所に保存して使ってください。

@echo off

echo.
echo =============================================
echo  証明書マネージャ(certmgr.msc)の
echo   [信頼されたルート証明機関]-[証明書]に
echo    Microsoft Root Certificate Authority 2011
echo     を追加します。
echo =============================================
echo.

pause

rem 証明書追加
certutil -addstore root "%~dp0MicrosoftRootCertificateAuthority2011.cer"

echo.
echo 証明書を追加しました。
echo.

pause

rem 証明書マネージャを起動
start certmgr.msc

exit
これで以下のように証明書マネージャ(certmgr.msc)[信頼できるルート証明機関][Microsoft Root Certificate Authority 2011]の証明書が追加されいることを確認してください。

手動(GUI)で追加する場合の参考手順

3..NET Framework 4.7(KB3186497)をインストール

D3DCompiler_47.dll証明書MicrosoftRootCertificateAuthority2011.cer)が入っているので、エラー無くインストールできるはずです。

.NET Framework 4.7のダウンロード

以下のリンクから.NET Framework 4.7のオフラインインストーラーNDP47-KB3186497-x86-x64-AllOS-ENU.exe)をダウンロードできます。

インストーラーを解凍したい場合のコマンド

以下のコマンドを実行すると解凍先を指定するダイアログが表示され、NDP47-KB3186497-x86-x64-AllOS-ENU.exeを解凍できます。何度もインストールする機会があるときは、解凍後のファイルを使えば、解凍時間が節約できます。解凍後に出てくるsetup.exeを実行してください。

C:\NDP47-KB3186497-x86-x64-AllOS-ENU.exe /extract

4.NET Framework 4.7の言語パック(KB3186499)をインストール

こちらも同じくエラー無くインストールできるはずです。こちらは/extractで解凍して使うとエラーが出ますので、ダウンロードしたままのインストーラーでインストールしてください。

言語パックのダウンロード

以下のリンクから.NET Framework 4.7 言語パックのオフラインインストーラー(NDP47-KB3186497-x86-x64-AllOS-JPN.exe)をダウンロードできます。

※言語パックのKB番号はKB3186499のはずなのに、ダウンロードしたファイルはKB3186497.NET Framework 4.7の番号と同じですが別物です。言語パックを先にインストールはできません。必ず、.NET Framework 4.7を先にインストールしてください。

無事インストール完了

これで完全なオフライン環境で、クリーンインストールほやほやのWindows 7にいきなり.NET Framework 4.7言語パックをインストールすることができました。