Windows 10のサポート終了は2025/10/14なので、残り1年を切った。我が家では既にWindows 11への入れ替えが完了しており何の問題もないが、会社となるとそうはいかない。そこここにWindows 10マシンが点在しており、そのマシンでないと業務がまわらない。物価上昇、円安、半導体不足なんかはこれからも継続するので、早目に新しいマシンをゲットしておくべし。いやいや、そう簡単に新しいマシンなんて買えないぜという人は、Windows 10を11にアップグレードしようとするわけだがTPM2.0という高いハードルがあるのよ。TPM2.0にさえなれば、Windows 11にアップグレードできるマシンになるのになと思っている人は、以下をぜひ読んでくれ。
2024/10/26追記:TPM2.0への更新は以下でできるのいいが、本質的な目的であるWindows 11へのアップグレードができないことが判明。原因はCPUで、Core i7-6700ではダメだった。要件は1GHz以上2コアで、左記のものは3.4GHzの4コアだから大丈夫だと思い込んでいた。Intelなら第8世代Coreというのは必須らしく、MicrosoftがリストアップしているCPU以外ははねられるとのこと。だったら「1GHz以上で2コア」なんていう表現はしないでほしいもんだ。
2024/11/2追記:第6世代CPUであっても何とかWindows 11にアップグレードしたいという思いが強く、MS公式情報を元にレジストリ変更して、無事アップグレードが完了した。AllowUpgradesWithUnsupportedTPMOrCPUなる項目を追加すればいいだけなので簡単。アップグレード中、75%くらいで30くらい停滞したのでいったんキャンセルして、その晩に夜通し実行させたことで完了。CPU以外はクリアしているからきっと問題なく使えるだろう。なお、レジストリにキーLabConfigを追加して、ByPass何たらの項目を追加することでセキュアブートやメモリーなんかもチェックする方法がネットにあるが、非セキュアブートマシンでこの対策が効かなかった。24H2ではもう封印された方法なのだろう。
【TPMとは】
Windows 11の動作要件がいくつかある中、最も注目すべきはTPM2.0。Trasted Platform ModuleでTPM。1.2と2.0があり、古めのマシンだと1.2になっていてWindows 11の動作要件を満たさない(もっと古いマシンだとTPM非対応もあり)。暗号化用アルゴリズムエンジン、ハッシュエンジンなどを備えたハードウェアモジュール。BitLockerでドライブを暗号化なんかで使われている。
【Intel製CPUなら第8世代以上】
TPMがどうなのかはCPUによってだいたいわかる。Interl製CPUなら第8世代以上なら手堅く、第7世代でも大丈夫な場合がある。これがクリアできなければ、Windows 11へのアップグレードをあきらめてしまいそうだが、まだチャンスはある。
【TPM1.2を2.0にできる場合あり】
パソコンメーカーにより対応がわかれるところだが、HPはこの対応をしてくれている。TPM1.2を2.0に変更するための手順を公開していて、これによってBIOS(UEFI)レベルでの更新が行われてTPM2.0にアップグレードできるのだ。ハード的な能力がもとものあるのを、ソフト的に1.2におさえこんでいたということ。最初から2.0で動くようにしておいてくれって今なら考えてしまうが、当時からWindows 11の動作要件でTPM2.0が必要になるということは予言できないのは当たり前。
【HPのWebサイト】
以下は手順を示したもの。Windows再起動後のファームウェアのアップデートなど、かなり込み入ったことをやることになる。これがけっこうすんなりいかなくいので、そのポイントを以下に書いていく。
TPM1.2の端末をTPM2.0に変更したい
【HPでTPM2.0化ができる機種】
以下のビジネスデスクトップなどのカテゴリーをクリックすると、HPでTPM2.0化ができる機種がわかる。
Infineon TPMセキュリティアップデート
EliteDesk 800 G2 SFFが手近にあったので実際にやってみたところ、いくつかハマりポイントがありながらも何とかTPM2.0化に成功した。EliteDesk 800 G2はインテル第6世代CPUだから、上に書いた基準をクリアしていないというのがポイント。さらにはEliteDesk 800 G1も対応機種として掲載されており、こちらは第4世代CPUというのがおどろき。
【TPM2.0化のハマりポイント1(VTx編)】
手順は上記のHPのサイトに書いてある通りで参照されたし。TPMconfig64.exeを実行した際、赤バッテンだけが表示されたメッセージボックスが出た。メッセージが存在しないので手がかりがないぞと、ここであきらめる人が多そう。TPMConfig64.exeと同一パスにTPMConfig64.logファイルが残されており、そこからエラー番号306が出ていることがわかった。
HPのTPM Configuration ToolのPDF
から、306が「VTx is currently enabled.」とわかる。このPDFを見れば、エラー番号ごとの対策がわかるだろう。VTxと言えば、Intel Virtualization Technologyのこと。BIOS(UEFI)から無効にしてから再実行したら先に進んだ。
【TPM2.0化のハマりポイント2(id 117 or 118)】
赤バッテンの画面が出ずに先に進んだ結果として出たのが、Optionsというタイトルが付いたラジオボタン。
・Error loading string id: 117
・Error loading string id: 118
デフォルトチェックが118だったのでそのまま進めたらダメだった。Windows再起動後にデバイスマネージャで確認したらTPM1.2のまま。やっぱ117だったかなと考えて再度、TPMconfig64.exe実行からはじめたら、さっきのラジオボタンが117だけの単数選択になっていた。はじめから117を選択しておけばよかったのか、117と118の両方について実行しなければいけないのかは不明。ともあれ、この手順によってTPM2.0化に成功したのだった。
117と118を選ぶ画面は、以下サイトの真ん中よりちょっとしたに掲載されている。
【Z440】TPMファームウェアのアップデート
【BIOS画面表示ってけっこうやっかい編】
上記ではすんなりとBIOS画面が表示されたように書いているが、そこもけっこうハマった。EliteDesk 800 G2にグラボを差しているいる環境。グラボがDVIとRGBしかない古いものなのに対して、ディスプレイはHDMIとディスプレイポートのみ。よってマシン本体にあるディスプレイポートを使ってディスプレイとつないでいた。この状態だとBIOSの画面が絶対でないということが今回わかった。Windows再起動時にShiftキーを押しておけば、次回起動時にBIOS起動のメニューが出てくるって方法と電源投入後にEscキーを押し続ける方法の両方を試してダメ。マシン本体のRGBならどうかと思って、わざわざ古いディスプレイを引っ張り出してきて接続したがダメ。結局のところ、グラボのRGBでディスプレイと接続したら解決した。古いマシンというのはタイヘンなことだ。
【BIOSが出ないのはCMOSバッテリー切れか?】
BIOSが出ない原因をググった際、CMOSバッテリーが切れていることが原因になる場合があるとわかった。CMOSバッテリーとはボタン電池のことで、具体的にはCR2032だった(マシンによってちがう)。5年経過したら切れるということで、7年も経つマシンなら当然切れていると判断して、ダイソーで2個110円で購入してきて交換。電源導入したらビープ音がなってうんともすんとも言わなくなった。この時点でBIOSの画面がでていなかったので詳細は不明だが、F1キーで機器変更を有効化しなければいけなかったのだろう。しばらく放置してから再び電源ONにしたら、しばらく待たされたあげくにWindowsが起動してきた。BIOSが出ないのにCMOSバッテリーを交換するのは危険な所業。あるいは、ビープ音がなったらF1キーを押す習慣を身に着けておくべきか。結局のことろ、CMOSバッテリーが切れていたかどうかは不明。おそらく切れていなかっただろう。