
高性能・高品質なPCが、一般市場に出回るようになって井上久しい今日この頃ですが、まだまだ課題として残っている、小さな大問題があることは、皆様も俺様もご存じでしょうか。それはPCのOSのアップデート問題です。
WIndows10(以下Win10と呼称)のサポート期限が2025年10月14日であるとMicrosoftから発表されて以来、その日までにPC本体を新たにWindows11(以下Win11と呼称)搭載のPCに買い換えるか、もしくは既存のWin10PCのOSを、Win11へアップデートするかどうか、見て見ぬ振りをして肥だめに蓋をするか否かは、企業のPC管理担当者にとって大きな不安の種となっていました。というか現在進行形で「まっつん、どうするべ…」の人もいますよね?私も以前はそうでした。今は別の仕事をしていますので、お気楽極楽、優雅にパジャマのままでモーニングコーヒーを飲んでいます。
各企業は、ある程度の規模であれば必要に応じて、ご利用は計画的に、もしくは場当たり的に、複数のPCを所有してます。 そしてそのPCは、ただ購入後の素(す)のままの状態で頒布するケースはあまりなく、大抵の場合、その企業特有のアプリケーションのインストールや、各種設定を行うための「キッティング」と呼ばれる作業を行わなければなりません。
特に企業のIT部門や「おひとり様情シス」の方々にとっては、アップデート期限が迫る中で、様々な課題やトラブルシューティング、予算のやりくりが求められる状況となりました。
今回の記事では、実際に直面する現場のキッティング(パソコンやスマートフォン、タブレットなどのデバイスの導入の際に、各種設定やソフトウェアのインストール、ハードウェアの構成などを行う作業)担当者が感じると思われる「リアルな面倒くささ」と、その解決のための作業プロセスを、具体的なエピソードや手順とともにご紹介致します。
事前準備と環境チェックの重要性

Win11は、従来のWin10と比べて必要なシステムの要件が厳格になっています。特に、「TPM 2.0」の搭載や「セキュアブート」の対応、対応しているCPUの可否など(後述します)、何やら小難しい、ハードウェア面での要件が明確に定義されているのです。キッティング担当者としては、現在所有している端末のハードウェアが、Win11の要件を満たしているかどうかが、まず一番最初の、検証の一丁目一番地という訳になるということです。
- そもそも現在、どんなPCをどれだけ保有して稼働しているのか?PC資産台帳を完成させよう
IT部門がちゃんとある会社であれば、おおよそ考えられない話だとは思いますが、中小企業の中には、現在、どんなPCをどれだけ保有して稼働しているのか…?なんて全~然把握していない、PCが壊れたら新しく買い直すだけ、みたいなチョー管理がテキトーな企業が多数存在するみたいです。
例えば複数の支店がある場合、管理部門が定期的に「今、PCが何台あるかリストに買いて送って~」とレポートや報告を求める程度で、PC自体にナンバリングもラベリングもしていない場合が、まれに良くあります。そんな状態では、Win10PCをWin11にアップグレードやアップデートするなんて、もはや「管理っていうレベルじゃねぇぞ!」……な訳です。
という訳で、何はともあれ真っ先にPCを管理する為の表を作ることになりますが、最低限以下の項目を収集出来ればまあ良しとしましょう。それでも結構あるけど。 - 管理番号/PC名(連番にしておくと後の管理が楽です。「支店名ー連番」とか良きかと)
- 支店名
- 利用者
- PC導入日
- 10万円以上のPCで資産計上しているのであれば償却年数・減価償却期間
- リースしているのであればリース期間
- PC償却終了日/リース終了日
- メーカー名
- 機種名
- 種類(ノート、デスクトップなど)
- 現OSの種類
特に「現在購入後何ヶ月目」か、もう「償却終了予定月から何ヶ月オーバーしているのか」を管理する事については、日々リアルタイムに日時が変わっていく訳で、それを毎月、表を手作業で修正していくのは大変すぎます。
こういう無駄な作業はエクセルの関数を使って、ちゃちゃっと楽をしてしまいませう。 仕方がないから作りましたですよ。まあデータベースを作って対応出来るのであればそれが一番ですが。簡易にエクセルの表で管理するならの話です。
例えば以下の様な表で、仮にK・M・N列に式を入れようとすると (セルの番地の整理はしていないので実際に使う場合は読み替えてね)……。

各セルの計算値はこんな感じの式を入れておくと幸せになれます。ご利用はあくまでも自己責任にてよろち〇びbyキムタク。
K221 =IFERROR(IF(J221=””,””,DATEDIF(J221,TODAY(),”M”)&”ヵ月”),””)
M221 =IF(J221=””,””,IF(ISERROR(DATE(YEAR(J221)+MID(L221,1,1),MONTH(J221),DAY(J221))-1),””,(DATE(YEAR(J221)+MID(L221,1,1),MONTH(J221),DAY(J221))-1)))
N221 =IF(J221=””,””,IF(ISERROR(DATEDIF(M221,TODAY(),”M”)),””,(DATEDIF(M221,TODAY(),”M”))))
PC情報の収集はどうする?これが結構大変!

さて、上記の管理項目を、実際のPCから収集しなければいけないのですが、IT意識系の高い企業であれば、いわゆるIT資産管理ツールを導入して、定期的に最新のデータを収集出来るんでしょうけれど、大半の企業は「何それ? オイシイの?」なんてレベルでしょうから、この手の有料ツールの導入に予算なんか出る筈がにゃ~い。投資金額ゼロで何とかしにゃきゃいきゃん。
したがって自分でバンバンするしかない訳なのでありまして。
仕方がないから作りましたですよ。ご利用はあくまでも自己責任にてよろしこbyキムタク。
'On Error Resume Next
'WMIにて使用する各種オブジェクトを定義・生成する。
Dim oClassSet
Dim oClassSet2
Dim oClassSet3
Dim oClass
Dim oLocator
Dim oService
Dim sMesStr
Dim IP
Dim OneDrive
'ローカルコンピュータに接続する。
Set oLocator = WScript.CreateObject("WbemScripting.SWbemLocator")
Set oService = oLocator.ConnectServer
'クエリー条件を WQL にて指定する。
Set oClassSet = oService.ExecQuery("Select * From Win32_ComputerSystemProduct")
Set oClassSet2 = oService.ExecQuery("Select * From Win32_NetworkAdapter Where NetConnectionID IS NOT NULL")
Set oClassSet3= oService.ExecQuery("Select * From Win32_NetworkAdapterConfiguration")
Set objWshShell = WScript.CreateObject("WScript.Shell")
'姓・名を取得。
'Dim objsysInfo , objUser , totalPathNM
'USet objSysInfo = CreateObject("ADSystemInfo")
''Set objUser = GetObject("LDAP://" & objSysInfo.UserName)
'totalPathNM = objUser.displayName
'ユーザ名を取得する
Dim strUserName,objNet
Set objNet = CreateObject("WScript.Network")
AccountNM = objNet.UserName
'IPを取得する
For Each oClass In oClassSet3
If oClass.IPEnabled = True Then
'DHCP = oClass.DHCPEnabled
IP = oClass.IPAddress(0)
'SUBNET = oClass.IPSubnet(0)
End If
Next
'インターフェース名環境変数代入SCRIPT
''WMIにて使用する各種オブジェクトを定義・生成する。
Dim oClassSet_I
Dim oClass_I
Dim oLocator_I
Dim oService_I
Dim sMesStr_I
Dim i_I
Dim ii_I
Dim array_I
Dim LAN_I
Dim LAN2_I
Dim LAN3_I
Dim LAN4_I
Dim LAN5_I
Dim LAN6_I
Dim objWshShell_I ' WshShell オブジェクト
Dim objUsrEnv_I ' 環境変数情報
Dim IFNAME_I 'インターフェース名
Dim IFNAME2_I 'インターフェース名
Dim IFNAME2_M 'MACADDRESS名
IFNAME_I = "IFNAME"
LAN_I = "Ethernet"
LAN2_I = "PCI"
LAN3_I = "Gigabit"
LAN4_I = "Desktop"
LAN5_I = "Realtek"
LAN6_I = "Tcpip"
'ローカルコンピュータに接続する。
Set oLocator_I = WScript.CreateObject("WbemScripting.SWbemLocator")
Set oService_I = oLocator_I.ConnectServer
'クエリー条件を WQL にて指定する。
Set oClassSet_I = oService_I.ExecQuery("Select * From Win32_NetworkAdapter Where NetConnectionID IS NOT NULL")
'コレクションを解析する。
For Each oClass_I In oClassSet_I
If Instr(oClass_I.Name,LAN_I) > 0 Then
'IFNAME2_M = oClass_I.MACAddress
IFNAME2_I = oClass_I.NetConnectionID
End If
Next
'コレクションを解析する。
For Each oClass_I In oClassSet_I
If Instr(oClass_I.Name,LAN2_I) > 0 Then
'IFNAME2_M = oClass_I.MACAddress
IFNAME2_I = oClass_I.NetConnectionID
End If
Next
'コレクションを解析する。
For Each oClass_I In oClassSet_I
If Instr(oClass_I.Name,LAN3_I) > 0 Then
'IFNAME2_M = oClass_I.MACAddress
IFNAME2_I = oClass_I.NetConnectionID
End If
Next
'コレクションを解析する。
For Each oClass_I In oClassSet_I
If Instr(oClass_I.Name,LAN4_I) > 0 Then
'IFNAME2_M = oClass_I.MACAddress
IFNAME2_I = oClass_I.NetConnectionID
End If
Next
'コレクションを解析する。
For Each oClass_I In oClassSet_I
If Instr(oClass_I.Name,LAN5_I) > 0 Then
'IFNAME2_M = oClass_I.MACAddress
IFNAME2_I = oClass_I.NetConnectionID
End If
Next
'コレクションを解析する。
For Each oClass_I In oClassSet_I
If Instr(oClass_I.Name,LAN6_I) > 0 Then
'IFNAME2_M = oClass_I.MACAddress
IFNAME2_I = oClass_I.NetConnectionID
End If
Next
'MACアドレス取得の為のコレクションを解析する。
For Each oClass_I In oClassSet_I
IF oClass_I.NetConnectionID =IFNAME2_I Then
IFNAME2_M = oClass_I.MACAddress
End IF
Next
'使用した各種オブジェクトを後片付けする。
Set oClassSet_I = Nothing
Set oClass_I = Nothing
Set oService_I = Nothing
Set oLocator_I = Nothing
Set objWshShell_I = Nothing' WshShell オブジェクト
Set objUsrEnv_I = Nothing' 環境変数情報
'PCの種類をPC_TYPEに書き出す
Dim PC_TYPE
Dim objWMIService
Dim colChassis
Dim strChassisType
Dim strComputer
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colChassis = objWMIService.ExecQuery _
("Select * from Win32_SystemEnclosure")
For Each objChassis in colChassis
For Each strChassisType in objChassis.ChassisTypes
Select Case strChassisType
Case 1
PC_TYPE="Other"
Case 2
PC_TYPE="Unknown"
Case 3
PC_TYPE="Desktop"
Case 4
PC_TYPE="Low Profile Desktop"
Case 5
PC_TYPE="Pizza Box"
Case 6
PC_TYPE="Mini Tower"
Case 7
PC_TYPE="Tower"
Case 8
PC_TYPE="Portable"
Case 9
PC_TYPE="Laptop"
Case 10
PC_TYPE="Notebook"
Case 11
PC_TYPE="Handheld"
Case 12
sPC_TYPE="Docking Station"
Case 13
PC_TYPE="All-in-One"
Case 14
PC_TYPE="Sub-Notebook"
Case 15
PC_TYPE="Space Saving"
Case 16
PC_TYPE="Lunch Box"
Case 17
PC_TYPE="Main System Chassis"
Case 18
PC_TYPE="Expansion Chassis"
Case 19
PC_TYPE="Sub-Chassis"
Case 20
PC_TYPE="Bus Expansion Chassis"
Case 21
PC_TYPE="Peripheral Chassis"
Case 22
PC_TYPE="Storage Chassis"
Case 23
PC_TYPE="Rack Mount Chassis"
Case 24
PC_TYPE="Sealed-Case PC"
Case Else
PC_TYPE="Unknown"
End Select
Next
Next
dim oShell
dim OSname,OSVer,OSbuild
Set oShell = WScript.CreateObject("WScript.Shell")
' OS名
OSname = oShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProductName")
' バージョン
OSVer = oShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\DisplayVersion")
' ビルド
OSbuild = oShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\CurrentBuild")
'コレクションを解析する。
For Each oClass In oClassSet
sMesStr = "PC名 : " & objWshShell.ExpandEnvironmentStrings("%COMPUTERNAME%") & vbCrLf & "PCの種類 : " & PC_TYPE & vbCrLf & "氏名 : " & totalPathNM & vbCrLf & "アカウント名 : " & AccountNM & vbCrLf & "メーカー : " & oClass.Vendor & vbCrLf & "機種名 : " & oClass.Name & vbCrLf & _
"製造番号 : " & oClass.IdentifyingNumber & vbCrLf & _
"型番 : " & oClass.Version & vbCrLf & "OS_VER : " & OSVer & vbCrLf & "OS_build : " & OSbuild& vbCrLf
Next
'"OS:" & OSname & vbCrLf &
'msgbox sMesStr
'systemInfo
Dim WshShela1, outExe1c, outStream,strOut1,Dir1
Set WshShela1 = CreateObject("WScript.Shell")
Set outExec1 = WshShela1.Exec("systeminfo")
Set outStream = outExec1.StdOut
strOut = ""
Do While Not outStream.AtEndOfStream
strOut1 = strOut1 & vbNewLine & outStream.ReadLine()
Loop
'インストール済みアプリケーション
Dim strComputer1
strComputer1 = "."
Call Query_InstalledAPP()
Sub Query_InstalledAPP()
Dim refRegistry
Dim strKeyPath
Dim retval
Dim arrSubKeys
Dim SubKey
Dim strAppsName
Dim strAppsName1
Const HKEY_LOCAL_MACHINE = &H80000002
Set refRegistry = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" &_
strComputer & "\root\default:StdRegProv")
'64bit OS用
strKeyPath = "SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall"
retval = refRegistry.EnumKey(HKEY_LOCAL_MACHINE,strKeyPath,arrSubKeys)
If isNull(arrSubKeys) = False Then
For each SubKey in arrSubKeys
retval = refRegistry.GetStringValue (HKEY_LOCAL_MACHINE,strKeyPath & "\" &_
subkey,"DisplayName",strAppsName)
If strAppsName<>"" then
strAppsName1 = strAppsName1 & vbCrLf & strAppsName
End if
Next
End If
'msgbox strAppsName1
'ドライブ容量
Dim strType ' ドライブ種類の文字列
Dim DriveInfo
Dim youryou
Dim akiyouryou
Dim objDrive1
Dim objFSO1
'strDrive = WScript.Arguments.Item(0)
strDrive = "C:\"
Set objFSO1 = WScript.CreateObject("Scripting.FileSystemObject")
If Err.Number = 0 Then
'strType = Array("Unknown", "Removable", "HDD","Network", "CD-ROM", "RAM")
' WScript.Echo
If objFSO1.DriveExists(strDrive) Then
Set objDrive1 = objFSO1.GetDrive(strDrive)
If objDrive1.IsReady = True Then
youryou = (FormatNumber(objDrive1.TotalSize, 0)/1000000000)
youryou = CInt(youryou)
akiyouryou = (FormatNumber(objDrive1.FreeSpace, 0)/1000000000)
akiyouryou = CInt(akiyouryou)
DriveInfo = "ドライブ " & strDrive & " の情報" & vbCrLf & " ボリュームラベル:" & objDrive1.VolumeName & vbCrLf & _
" ファイルシステム:" & objDrive1.FileSystem & vbCrLf & _
" 容量:" & youryou & " GB" & vbCrLf & _
" 空き領域:" & akiyouryou & " GB" & vbCrLf & _
" ドライブシリアルナンバー:" & Hex(objDrive1.SerialNumber)
Else
WScript.Echo " 準備ができていません"
End If
Else
WScript.Echo " 存在しません。"
End If
Else
WScript.Echo "エラー: " & Err.Description
End If
'msgbox DriveInfo
'Set objDrive1 = Nothing
'Set objFSO1 = Nothing
'Office_Ver
on error resume next
Dim objExcel, verExcel, Ver,officever
Set objExcel = CreateObject("Excel.Application")
verExcel = int(objExcel.Version)
objExcel.Quit
Set objExcel = Nothing
officever = "Office Ver: " & verExcel & vbCrLf
'msgbox officever
'プリンター
Dim objLocator, objService, objClassSet, objClass, strName
Set objLocator = WScript.CreateObject("WbemScripting.SWbemLocator")
Set objService = objLocator.ConnectServer
Set objClassSet = objService.ExecQuery("Select * From Win32_Printer")
For Each objClass In objClassSet
If objClass.Default Then
strName = objClass.Caption
End If
Next
'MsgBox strName,,"通常使うプリンター名"
strName = "通常使うプリンター名: " & strName & vbCrLf
Dim oClassSet, oClass, oLocator, oService
Dim szMsg
Set oLocator = WScript.CreateObject("WbemScripting.SWbemLocator")
Set oService = oLocator.ConnectServer
Set oClassSet = oService.ExecQuery("SELECT * FROM Win32_Processor")
For Each oClass In oClassSet
'MsgBox "CPU Name: " & oClass.Name & vbCrLF
CPUname = oClass.Name
Next
Dim sMesStra
dim CPUname
'msgbox CPUname
Set oClassSet = Nothing
Set oClass = Nothing
Set oService = Nothing
Set oLocator = Nothing
sMesStr = sMesStr & officever & strName & CPUname & vbCrLf
sMesStra = sMesStr & DriveInfo & strOut1 & strAppsName1
MsgBox "コンピュータの製品情報一覧です。" & vbCrLf & vbCrLf & sMesStra, vbSystemModal
msgbox "カレントディレクトリに結果を保存しました。", vbSystemModal
Set objFso = CreateObject("Scripting.FileSystemObject")
Dim strFormattedDate
Dim objFile
'yyyy/mm/dd hh:mm:ss 形式の文字列で現在日時を取得
strFormattedDate = Now()
'yyyy/mm/dd hh:mm:ss から / を削除
strFormattedDate = Replace(strFormattedDate, "/", "")
'yyyy/mm/dd hh:mm:ss から : を削除
strFormattedDate = Replace(strFormattedDate, ":", "")
'yyyy/mm/dd hh:mm:ss からスペースを削除
strFormattedDate = Replace(strFormattedDate, " ", "")
Set objFile = objFso.OpenTextFile(objWshShell.ExpandEnvironmentStrings("%COMPUTERNAME%") & " " & strFormattedDate & ".txt", 2, True)
If Err.Number > 0 Then
WScript.Echo "Open Error"
Else
objFile.WriteLine sMesStra
End If
objFile.Close
Set objFile = Nothing
Set objFso = Nothing
'使用した各種オブジェクトを後片付けする。
Set objMail = Nothing
Set oClassSet = Nothing
Set oClassSet2 = Nothing
Set oClass = Nothing
Set oService = Nothing
Set oLocator = Nothing
Set objsysInfo = Nothing
Set objUser = Nothing
Set objWshShell = Nothing' WshShell オブジェクト
Set objUsrEnv = Nothing' 環境変数情報
End Sub
Function GetOSVersion()
Dim strComputer
Dim Wmi
Dim colTarget
Dim strWork
Dim objRow
Dim aData
strComputer = "."
Set Wmi = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colTarget = Wmi.ExecQuery( "select Version from Win32_OperatingSystem" )
For Each objRow in colTarget
strWork = objRow.Version
Next
aData = Split( strWork, "." )
strWork = aData(0) & "." & aData(1)
GetOSVersion = CDbl( strWork )
End Function
Public Sub PutInClipboardText(ByVal str)
Dim txt
With CreateObject("InternetExplorer.Application")
.Visible = False
.Navigate "about:blank"
While .Busy Or .ReadyState <> 4
WScript.Sleep 10
Wend
Set txt = .document.createElement("textarea")
txt.Value = str
.document.body.appendChild txt
txt.Focus
Set txt = Nothing
.ExecWB 17, 0
.ExecWB 12, 0
.Quit
End With
End Sub
雑に作ったvbsなので、変数の整理とか書式の整理とか全然していないので、適当に修正して参考程度に自己責任でアレしてみて下さい。
カレントディレクトリにログを吐いてくれます。これを各拠点にUSBメモリで撒いて、スクリプトを実行させて、あとからUSBメモリを回収するか、全拠点共有のネットワークドライブがあるならば、そこで各ユーザーにおのおの実行させるか、Active Directoryのログオンスプリクトで実行させて、ファイルサーバのどこかにまとめてログを保存させるとか、色々方法はあると思います。
まあ、コンピューターのリテラシーの低い企業が、自作PCやBTO(受注生産)パソコンを購入することは、そうあることではないでしょうから(ようするに、ほぼ「ない」)、PCの購入履歴や、もしそれが見つからなかったとしても、PC本体の裏面や底面を確認して、メーカー名と機種名さえ判明すれば、あとはメーカーのサイトから、その 機種の導入時のOSが何であるか、そもそもwin10パソコンなのか、Win11のアップグレードに対応しているのか、対応していないので買い換えが必要なのかくらいは分かるのではないかと思います。
PCを買い換えずに済み、OSのアップデートだけで対応可能な場合は、その方法もサイトのどこかに書いてあるはずです。分からなければメーカーに問い合わせてみて下さい(←投げやり)。
それでもよく分からない場合は、以下のWin11のハードウェア互換性を自力で、各々のPCごとに確認することになるのですが、調べる内容によっては結構大変なので、分からない場合は、観念して新しいWin11のPCを買いませう。
- BIOSでTPMの確認…TPM(Trusted Platform Module/トラステッド プラットフォーム モジュール) とは、コンピュータのマザーボードに直付けされている、セキュリティに関する各種機能を備えた半導体部品です。
データの暗号化・復号や鍵ペアの生成、ハッシュ値の計算、デジタル署名の生成・検証などの機能を有しますが、正直筆者を含め、何が何のことやら分からない人がほとんどだと思います。これに対応しているハードウェア(おおむねマザーボード)は、「セキュリティがマジつぉい(小並感)」奴であると思って貰えれば幸いです。
BIOS(WindowsなどのOSが起動する前に起動するプログラム。 プログラムを動かすためのプログラム。)は、PC起動時に、何らかのキーを押しっぱなしにすると起動することが多い様ですが、ざっくり、そのBIOSのメニューのどこかに「TPM」という文言があれば、そのハードウェアはたぶん「TPM」対応です。(←オイ)また、「セキュアブート(英語表記を含む)」のメニューがあればオンに、「レガシーブートモード(英語表記含む)」のメニューがあればオフにしておきましょう。そもそもBIOSメニューにそれらの記載がないのであれば、Win11に対応していない可能性が高いです。
CPUのチェック…Win11に対応しているCPUは、親切にもMicrosoftが一覧表を作成してくれているので、こちらを参考にしてください。こちらの表に載っていなければ、基本、Win11には対応しません。
「古いCPUのPCを裏技でWin11化しる!」……なんて、したり顔で紹介しているサイトや動画がネット上でチラホラ散見されますが、何せ今回取り扱うのは、企業用のPCです。個人用のPCならいざ知らず、もし何かしらのトラブルにあったときに10時間の記者会見の後、第三者委員会を開催されて、調査の結果、解任、もとい懐妊させられるのは嫌なので、ここはセオリー通りにいたしましょう。
リスクヘッジはサラリーマンの生存戦略に必須です。ちなみにソニック・ヘッジホッグはヘッジホッグ (HH) ファミリーに属する、5種類のタンパク質の内の1つであり、青いハリネズミとは別物ですので注意しましょう。
Learn/Windows 11 でサポートされている Intel プロセッサ
Learn/Windows 11 でサポートされている AMD プロセッサ
Learn/Windows 11 でサポートされている Qualcomm プロセッサ
何が何だかよく分からない!……といった場合、ものスゴくザックリとした見分け方となりますが、「CPUがcore iシリーズの8世代未満(core i7-7XXXXとかcore i5-6XXXXなど)もしくはAMD Ryzen 2000シリーズ未満」は、Win11のアップデートに対応しないので、新しいPCを買え!迷ったら買え!何でもいいから買え!」と、アキバの神の託宣に従わなくてはいけないということになります。

参考文献
ITトレンド/キッティング
atmarKIT/Windowsのsysteminfoコマンドでシステムの情報を収集する
Wikipedia/Trusted Platform Module
Wikipedia/Basic Input/Output System