Windows 10 の新元号対応 – 続続報

さらに続報です。Windows 10 1809 用の累積更新プログラムがリリースされました。

これで Windows 10 の新元号対応用の累積更新プログラムが出揃いました。
他の OS 用のロールアップもまとめておきましょう。

何も問題がなければよいのですが。

広告

Windows 10 の新元号対応 – 続報

待ちわびた新元号対応の累積更新プログラムがリリースされました。

思いつく確認ポイントを書いておきます。

  • レジストリを確認
    前回記事で和暦に関するレジストリに触れましたが、今回の累積更新プログラムをインストールする前に
    可能であれば、"2019 05 01" = "令和_令_Reiwa_R" を削除して、累積更新プログラムがきちんとレジストリに
    追加することを確認した方がいいかも。

新元号_レジストリ_更新

  • フォントを確認
    新元号対応で予定されていたフォントが更新されていますね。
    MS ゴシック / MS 明朝 / MS P ゴシック / MS P 明朝 / メイリオ / Meiryo UI
    游ゴシック / 游明朝 / Yu Gothic / UD デジタル教科書体 / BIZ UDP ゴシック / BIZ UDP 明朝

新元号_フォント_更新

IMEパッドで合字令和を確認

さて、累積更新プログラムを適用して、気が付いてしまったことがあります。

累積更新プログラムの適用前

(条件)2019/04 までの累積更新プログラムは適用済 and レジストリで新元号対応しておく

新元号対応含む累積更新適用前

累積更新プログラムの適用後

新元号対応含む累積更新適用後

なんか、累積更新プログラムの適用前の方が期待した動きだと思うのですが。

  • Addresses an issue that causes the DateTimePicker to display the date incorrectly in the Japanese date format. For more information, see KB4469068.
  • Addresses an issue that causes the Date and Time Settings control to cache old Eras and prevents the control from refreshing when the time enters the new Japanese Era. For more information, see KB4469068.
  • Addresses an issue that causes the Clock and Calendar flyout control to display the day of the week incorrectly mapped to a date in the month of the new Japanese Era. For more information, see KB4469068.

このどれかの修正の影響ではないかと。
今更になって、累積更新プログラムの適用前後で動作が変わるのって勘弁してほしいですね。
ただ、この理由ですが、「令和」に改元されるのは、5月1日なので、その前に令和を使うのは、ダメ。(公的文書も同様)
そのため、現在時刻 / 日付 が 5月1日前なのか、後なのかで、表示を切り替えていると解釈できます。
そういう情報も書いておいてほしいですよね。
アプリ屋さん、かわいそうすぎる。

Windows 10 の新元号対応

平成も残り、カウントダウン状態。
ここで、Microsoft の新元号対応をおさらい。(情報源は今まで参加した Microsoft の新元号対応セミナーです)

  • 2019 年 5 月 1 日時点で延長サポートを終了していない製品
  • 現時点で和暦に対応している製品
  • Unicode のみ対応し、S-JIS は対応しない(合字)
  • 新元号対応のみを目的とした 更新プログラムの提供はなく、累積更新プログラムのみで提供される

これを踏まえて、Windows 10 の新元号対応をまとめてみましょう。

Windows 10 のバージョン Home / Pro / Pro for WS の
サービス終了日
Enterprise / Education の
サービス終了日
1809 2020 年 5 月 12 日 2021 年 5 月 11 日
1803 2019 年 11 月 12 日 2020 年 11 月 10 日
1709 2019 年 4 月 9 日 2020 年 4 月 14 日
1703 2018 年 10 月 9 日 2019 年 10 月 8 日
1607 2018 年 4 月 10 日 2019 年 4 月 9 日
1511 2017 年 10 月 10 日 2017 年 10 月 10 日
1507 2017 年 5 月 9 日 2017 年 5 月 9 日
  • LTSB / LTSC はサービス終了になっていたいため、すべて新元号対応する。
  • Windows Server 2016 / 2019 は対応するが、Windows Server バージョン 1709 (半期チャネル) は未対応になる
    (2019/04/09 切れ)。

この表からもわかるように Home / Pro / Pro for WS の新元号対応は、1803 以降が対象となり、
Enterprise / Education は 1703 以降が対象になります。 ここで重要なのは、フォント含めた完全な新元号対応ってことです。 例えば、Pro / 1709 は、3 月、4 月に累積更新プログラムがリリースされていますが、2019 年 4 月 9 日にサービス終了となるため、フォント含めた最終版の累積更新プログラムは提供されないってことです。

例えば、Pro / 1709 (サービスが終了している)に Ent / 1709 の累積更新プログラムを適用するのはいけません。Microsoft はそのような行為を認めていませんし、サポートも受けられません。

そのため、Home / Pro / Pro for WS の 1709 以前のバージョンを使っている場合、新元号対応するには、まずは、1803 以降にバージョンアップする必要があります。
そもそも、なんで、フォントの話しになったかというと、和暦には、合字 というものがあるからなんです。

IMEパッド合字を確認

この 合字 を入れたフォントも新言語対応としてリリースする必要があります。

現時点での新元号対応予定フォント
MS ゴシック / MS 明朝 / MS P ゴシック / MS P 明朝 / メイリオ / Meiryo UI
游ゴシック / 游明朝 / Yu Gothic / UD デジタル教科書体 / BIZ UDP ゴシック / BIZ UDP 明朝

Unicode における新元号の合字の符号位置は、2018 年の夏頃から申請を初めたらしく、2018 年 11 月あたりに U+32FF で確定したとのことです。そして、U+32FF で確定しても ICU や CLDR とかで制定する必要があるので、これまた、かなりの時間を要することに…。
新元号の符号位置が、明治 / 大正 / 昭和 / 平成 からかなり飛ぶので、和暦の照合順序の実装は大変ですね。
符号位置が決まっても肝心な 元号 が決まっていないので、2019 年 4 月 1 日の発表まで待ち状態。長いですねぇ。
なお、令和が入った ICU 64.2 は 2019 年 4 月 17 日に、Unicode 12.1 は 2019 年 5 月 7 日が制定日 / 公開日になります。

縦書きグリフ
フォントが横書き合字と縦書き合字を持っているかどうか。
縦書き合字を持っていない場合には、レンダリングエンジンで回転させるのですが、その際、近似フォントにフォールバックすることもあります(デザインが変わる)。

Unicode のみの対応ってことになるのですが、文字コード対応については

  • Microsoft による独自拡張は行わない
  • Code Page 932 / 拡張文字を含む S-JIS における新言語対応は行わない
  • ISO-10646 / Unicode 標準の対応に準じた更新を行う

ということになりますので、S-JIS はやらないよと。

第一世代 S-JIS
: JIS78 or JIS83 + メーカー拡張 [ ㍾ ㍽ ㍼ ]が含まれている
: [ ㍻ ] は、JIS X 0208 JIS X 0212 には含まれない
第二世代 S-JIS
: 第一世代では互換性 / 相互運用が担保されないために、Microsoft が各メーカーと調整して
   マイクソロフト標準キャラクタセット (Windows-31J / Code Page 932) を作成 (JIS90、10646)

ちなみに、IME 辞書にも更新が入るらしいです。
A) Win 7 SP1 まで
B) Win 8 – Win 10 1803
C) Win 10 1809
A – C は辞書フォーマットが異なり、互換性が無い!

あらゆるところで、和暦に関するレジストリが公開されているので、今更感ありますが、一応、紹介。

新元号_レジストリ

[ HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\Calendars\Japanese\Eras ]
"1868 01 01" = "明治_明_Meiji_M"
"1912 07 30" = "大正_大_Taisho_T"
"1926 12 25" = "昭和_昭_Showa_S"
"1989 01 08" = "平成_平_Heisei_H"
"2019 05 01" = "令和_令_Reiwa_R"

なお、Windows OS、Office、.NET Framework 共に依存関係があるため、すべて最新に揃える必要があります。
Windows : KB4469068
Office  : KB4478844
.Net    : KB4477957

ちなみに、Windows 10 Version 1809 から、.Net Framework の累積更新プログラムは外出しされていますので、注意です。
平成 31 年 4 月末までに新元号対応を終了させたいとアナウンスされているので、そろそろ、フォント含めた累積更新が出てくるのではないでしょうか。

SQL Server に関して
SQL Server に対する新元号更新プログラムはないとのこと。(データベース機能には影響がない)
ただし、SQL Server 内部で .Net Framework を使っている機能は影響を受ける。
ストアドプロシージャや SQL CLR、SSRS、SSIS 等。
そのため、OS および .Net の新元号対応が必要になるため、結局、更新プログラムの適用が必要。
(特に SQL Server に接続するクライアントアプリは注意が必要)

OSの和暦表示

新元号への対応について
https://www.microsoft.com/ja-jp/mscorp/newera/default.aspx

2019 年 5 月の日本の元号変更に関する更新プログラム
https://support.microsoft.com/ja-jp/help/4470918/updates-for-may-2019-japan-era-change

Windows 用の日本の新元号対応更新プログラムについて – KB4469068
https://support.microsoft.com/ja-jp/help/4469068/summary-of-new-japanese-era-updates-kb4469068

.NET Framework 用の日本の新元号対応更新プログラムの概要
https://support.microsoft.com/ja-jp/help/4477957/new-japanese-era-updates-for-net-framework

日本の新元号に関する Office の更新プログラム
https://support.microsoft.com/ja-jp/help/4478844/office-updates-for-new-japanese-era

[経済産業省] 改元に伴う企業等の情報システム改修等への対応
https://www.meti.go.jp/policy/it_policy/kaigen/kaigen_taiou.html

Hyper-V 統合サービスの「ゲストサービス」

Hyper-V の統合サービスを見ると

Hyper-V_統合サービス

となりますが、ここの「ゲストサービス」って何?というのが今回ネタです。

を見ると、

Hyper-V ホストが仮想マシンとの間で双方向のファイル コピーを実行できるようにするためのインターフェイスを提供します。

とのこと。既定で無効なんですね。サービスコントロールマネージャーで見てみると

Hyper-V_統合サービスのサービス

ありました。
Copy-VMFile を使って、ホストマシンと仮想マシンとの間でファイルのコピーができるわけです。
使い方ですが、ホストマシン上の E:\Dotnet\ADO.NET\PoolingApp\Release\PoolingApp.exe.config というファイルを
仮想マシン “PC1 – Win10” の D:\work にコピーする場合は、こんな感じです。

Copy-VMFile "PC1 – Win10" -SourcePath "E:\Dotnet\ADO.NET\PoolingApp\Release\PoolingApp.exe.config" -DestinationPath "D:\work" -FileSource Host

注意点ですが、PowerShell を管理者権限で起動しておかないと、アクセス権が無い というエラーになります。

エクスプローラー上から GUI でファイル操作できると便利だと思うけどな。

Bot Builder SDK for .NET v4 を使ってみよう。

まずは、入門編から。
ネットで探してみても、いまいち、まとまったものが無いので、重い腰を上げて、自分で書いておこうと思う。
Visual Studio 2017 を使いますので、その準備をしておいてください。 (最新の 15.8 までアップデート)
Bot Builder のテンプレートとして、

が紹介されていることが多いですが、これはもう古いと思います。
今回は v4 ベースを使いたいので、こちらの方にアクセスして、vsix ファイルをダウンロードし、Visua Studio 2017 に組み込んでください。(2018/10/03 時点では、4.0.6.15 が最新です)

vsix をダブルクリックして、インストールしましょう。
[ツール] – [拡張機能と更新プログラム] を見ると、以下のようになっています。

botプロジェクトが拡張機能で準備できた

続いて、新規プロジェクトを見てみると、Bot Framework が追加され、以下のようになっています。

botプロジェクトの準備

で、このままにしておいて、今後は、Bot Framework エミュレーターをインストールしておきます。
以下の GitHub にアクセスします。

リリースサイトから、botframework-emulator-setup-XXXXX.exe をダウンロードしてインストールしておきましょう。
(2018/10/03 時点では、40025 が最新です)

では、早速、サンプルを作ってみましょう。
新規プロジェクトで、Bot Builder Echo Bot V4 を選択してみます。

BotBuilderEchoBotV4選択

このままでもビルド(.NET Core 2.0 SDK)できるのですが、今回、Visual Studio 2017 15.8 を使っているので、.NET Core 2.1 SDK を使うように変更します。

ターゲットフレームワークを変更

続いて、Bot Builder SDK を更新しましょう。プロジェクト [Bot Builder Echo Bot V41] を右クリックして、
[Nuget パッケージの管理] をクリックすると、更新プログラムがあることがわかります。

nugetで更新する

2018/10/03 時点では、v4.07 が最新です。
ちなみに、下記から個別に用意することもできますね。

では、ビルドしてみます。エラーもなく、成功するはずです。
デバッグ実行してみると、IIS Express で起動され、ブラウザが開くのですが、エラーになりました。
HTTP Error 502.5 – Process Failure ErrorCode = 0x80004005 : 0
イベントログにもしっかりとエラーが残っています。

Application ‘MACHINE/WEBROOT/APPHOST/BOT BUILDER ECHO BOT V41’ with physical root ‘E:\Developer\bot-dev\Bot Builder Echo Bot V41\Bot Builder Echo Bot V41\’ failed to start process with commandline ‘d:\program files (x86)\microsoft visual studio\2017\enterprise\common7\ide\extensions\microsoft\web tools\projectsystem\VSIISExeLauncher.exe -argFile "H:\Temp\tmp3E79.tmp"’, ErrorCode = ‘0x80004005 : 0.

悲しい。
調べてみたところ、.NET Core 2.1 の最新版をダウンロードしてインストールすることで無事に動くことがわかりました。

上記サイトから、.NET Core 2.1 SDK (Build apps – SDK v2.1.403)をダウンロードしてインストールしました。

再度、デバッグ実行すると、無事に動きます!やったー。

EchoBotが動いた

この状態で、Bot Framework エミュレーター を起動して、チャットしてみます。
ソリューションエクスプローラーを見ると、BotConfigration.bot が生成されているので、このファイルを
Bot Framework エミュレーターに読み込ませて起動します。

Bot Framework エミュレーターを使う1

Bot Framework エミュレーターを使う2

Bot Framework エミュレーターを使う3

すると、Bot Framework エミュレーターが起動します。

Bot Framework エミュレーターを使う4

さあ、何かメッセージを入力してみましょう!

Bot Framework エミュレーターを使う5

おぉ、ちゃんとエコーしてるじゃないですか。すばらしい。

では、今回はここまで。

Visual Studio 2017 MSDN 版でオフライン用インストールファイルを作る

MSDN サブスクライバーダウンロードで Visual Studio 2017 をダウンロードすると、Web インストーラーがダウンロードされてきます。Visual Studio 2017 からは ISO イメージの提供はありませんので、ネットワーク環境でのインストールが前提になります。ただ、当然のことですが、オフライン環境でもインストールできないと困るわけで…。
MSDN で提供される Visual Studio 2017 Enterprise 版は

mu_visual_studio_enterprise_2017_x86_x64_10049783.exe

がインストーラーです。(これがダウンロードされる)
これを使って、オフラインインストール用のキャッシュを作成することができます。
コマンドプロンプトを開いて

mu_visual_studio_enterprise_2017_x86_x64_10049783.exe --layout "G:\VS2017\Disk" --lang ja-JP

と実行すると、G:\VS2017\Disk にVisual Studio 2017 Enterprise の日本語インストール用のファイルをすべてダウンロードしてくれます。 ちなみに上記のダウンロードで70分くらいかかり、フォルダーサイズは約 20.7GB になりました。
コマンド打ったら、放置しておくのがよさそうです。待つのは辛いです。
このフォルダーごとインストール環境にもっていって、Disk 直下にある

mu_visual_studio_enterprise_2017_x86_x64_10049783.exe

を実行することで、オフライン環境でインストールすることができます。

参考情報

Bootable USB メディアを作ろう

Windows 10 Anivasary Update 1607 が公開されました。
ワタシの環境は、Windows 10 Enterprise なので、Windows 10 更新アシスタントからの更新や
メディア作成ツールが使えません…。悲しい。

そうなると、自前で Bootable USB を作ることになるわけ(わざわざ、DVD に焼くのが勿体無い)で
忘れないように残しておきます。やることは 3 つのステップです。

  1. USB メディアのフォーマットとアクティブ化
  2. インストールメディアファイルの全コピー
  3. ブートセクタの書き込み

まずは、「USB メディアのフォーマットとアクティブ化」を Diskpart コマンドを使ってやります。

管理者権限でコマンドプロンプトを開く
Diskpart コマンド実行
DISKPART> list disk
DISKPART> select disk X (USB メディアのディスク番号)
DISKPART> clean
DISKPART> create partition primary
DISKPART> select partition 1
DISKPART> active
DISKPART> format fs=fat32
DISKPART> assign
DISKPART> exit

続いて、持っている ISO イメージをマウントして、「インストールメディアファイルの全コピー」を xcopy で
全てコピーします。

マウントした ISO ドライブを S: ドライブ、USB メモリを U: ドライブとする
XCOPY S:\*.* /S /E /F U:\

最後に「ブートセクタの書き込み」です。これはインストールメディアにある bootsect コマンドを使います。

マウントした ISO ドライブを S: ドライブ、USB メモリを U: ドライブとする
管理者権限でコマンドプロンプトを開く
S:\boot> bootsect /nt60 U:\

これでおしまい。

SQL Server 2016 のオフラインインストールについて

SQL Server 2016 が GA となって一か月経過し、ポツポツ情報が出始めているこの頃です。
インストーラー(setup.exe)を起動してみると…

SQL2016インストーラートップ

なんか、過去バージョンと微妙に違っています。

SQL2014インストーラートップ

インストール対象環境がインターネット接続できる場合には何も問題ないですが、オフラインインストール時に
問題なくインストールできるのかは気になります。で、実際にやってみると、↓ で止まると思います。

SQL2016-R2

ウィザードに表示されている URL からダウンロードすればいいのですね。
では、アクセスしてみます。(ウィザードがテキスト表示だけでリンクになっていないのが残念)

https://go.microsoft.com/fwlink/?LinkId=761266&lcid=1041
https://go.microsoft.com/fwlink/?LinkId=735051&lcid=1041

すると、2016/07/01 現在だと

SRO_3.2.2.803_1033.cab
SRS_8.0.3.0_1033.cab

のファイルがダウンロードできます。このファイルを適当なフォルダーにコピーして選択してみると…

SQL2016-R3

「次へ」ボタンが非活性のままで、先に進まねえっすよ。
どうなってんだ、これ。

解決方法ですが、先ほどダウンロードしたファイルの名前を変更してから、再度、フォルダーを指定します。

  • SRO_3.2.2.803_1033.cab  SRO_3.2.2.803_1041.cab に変更する
  • SRS_8.0.3.0_1033.cab SRS_8.0.3.0_1041.cab に変更する

なんだかねぇ。
Microsoft のサイトを探しまくったら、米国サイトに情報がありました。

URL 文字列に 1041 を足しているんだから、こういうのは直してほしいもんです。

de:code 2016 二日目

de:code 二日目でした。

  • ARC-009    RDB技術者のためのNoSQLガイド
  • DEV-009    ここまでできる!Visual Studio 2015 ~強化されたC/C++ クロスプラットフォーム開発解説~
  • ARC-001    Updated: 5年後のアプリケーションアーキテクチャを考える
  • DBP-003    SQL Server 2016 Analysis Servicesのアーキテクチャとその活用方法
  • DEV-003    新しく生まれ変わったデータアクセステクノロジ ~Entity Framework Core 1.0の全貌~
  • PRD-005    Skype Developer Platformによるアプリケーション開発の最新情報

しかし、現地に行くまでの朝ラッシュがきつい。
都内に通勤する人ってすごい体力の持ち主よ。自分には無理だな。

DSC_0019DSC_0030

二日目はデータベーステクノロジーを中心に参加セッションをチョイス。

DSC_0029DSC_0033DSC_0034

今年一番感じたのは、ここ最近低迷が感じられた Microsoft テクノロジーが盛り返したなってことかな。
サポートエンジニア的な意見だけど、Windows に bash 入れるのはやめてほしいわ。
トラブルの元にしかならん。
せっかく、SUA(Subsystem for Unix Application) の呪縛から解放されたのに…。