IntuneのCSVでWindows 11非対応端末を仕分ける — Claudeで買い替え台数まで出す
IntuneのデバイスCSVをWindows 11の要件表と照合し、更新・買い替え・要確認に分ける手順。足りない列の扱いと台数の出し方までClaudeで進めます。
Intuneの端末一覧から出したCSVは、Windows 11の要件のうちRAM・ストレージ・TPMまでは判定できます。CPUの世代とSecure Bootは、標準の端末詳細に列がありません。そのため全台を「対応か非対応か」の2択で切ると、足りない列の分だけ誤判定が混ざります。
Intuneには、これとは別に「Windows feature update device readiness report」(Reports > Windows updates > Reportsタブ)があり、非対応の理由をプロセッサーファミリー・TPM・Secure Boot・RAMなどの項目で端末ごとに出せます。データ元はWindows診断データなので、診断データを送るよう構成された端末でしか値が出ません。このレポートが使える環境ではまずそれを見て、使えない環境や、資産台帳と合わせて台数と時期まで出したい場面で、この記事のCSV仕分けが役に立ちます。
この記事では、判定を「更新対象」「買い替え」「整理後に更新」「要確認」の4つに分けます。要件表の数字をルールに直し、Claudeには判定の下ごしらえと台数の集計を任せる流れです。
判定は2択にせず4つに分ける
最初に決めておくのは、仕分けの出口です。Windows 11の要件は、プロセッサー、メモリー、ストレージ、システムファームウェア、TPMなど複数の条件のAND(すべて満たすこと)で成り立っています。1つでも欠ければアップグレードできないので、CSVの列が欠けている端末を「対応」に入れるのは危険です。
出口は次の4つにします。
- 更新対象: 取れた列がすべて要件を満たし、空き容量にも余裕がある
- 整理後に更新: 要件は満たすが、空き容量が少ない
- 買い替え(増設を含む): RAM・容量・TPMのどれかが要件に届かない
- 要確認: 判定に必要な列が空か、CPUが世代リストで確かめられない
買い替え台数の見積もりは「買い替え」の行から出します。「要確認」を買い替えに数えると予算が膨らみ、更新対象に数えると後で穴があきます。要確認は別枠で件数だけ持ち、実機確認で潰してから振り分けるのが安全です。
要件表の数字をルールに直す
Microsoft Learnの要件ページには、ハードウェア要件として次の項目が並びます。判定に使える形に直すと、次の表になります。
| 要件 | 基準 | Intuneの端末詳細で見る列 |
|---|---|---|
| プロセッサー | 基準1GHz以上・2コア以上の対応64ビットCPU | Intuneの端末詳細で見る列プロセッサーアーキテクチャーのみ。型番の列は一覧にない |
| メモリー | 基準4GB以上 | Intuneの端末詳細で見る列Total physical memory |
| ストレージ | 基準64GB以上の利用可能なディスク容量 | Intuneの端末詳細で見る列Total storage space / Free storage space |
| システムファームウェア | 基準UEFIでSecure Boot対応 | Intuneの端末詳細で見る列一覧にない(BIOSバージョンの列はある) |
| TPM | 基準バージョン2.0 | Intuneの端末詳細で見る列TPM version |
| グラフィックス | 基準DirectX 12以降・WDDM 2.0ドライバー | Intuneの端末詳細で見る列一覧にない |
| ディスプレイ | 基準9インチ以上・720p・各色8ビット | Intuneの端末詳細で見る列一覧にない |
OSの条件もあります。Windows 10から直接上げるには、バージョン2004以降で、2021年9月14日以降のセキュリティ更新を適用している必要があります。こちらはOSのビルド番号の列で拾えるので、「要件は満たすが、先にWindows 10側の更新が要る」端末を見つける材料になります。
表の右列を見ると、CSVだけで確定できるのはメモリー・ストレージ・TPMの3項目です。プロセッサーは型番が別途必要で、Secure Boot・グラフィックス・ディスプレイは別の手段で確かめます。この「列が無い項目をどう扱うか」が、仕分けの精度を決めます。
端末詳細にある列と、ない列
Intuneの端末詳細ページ(Devices > All devices > 端末 > Device details)の一覧には、Windows向けに次のハードウェア項目が載っています。
- Total physical memory(GB)
- Total storage spaceとFree storage space(GB)
- TPM version、TPM manufacturer ID、TPM manufacturer version
- Processor architecture(x64やARM)
- System management BIOS version
- Operating system、Operating system build number、Operating system edition
同じ一覧には、CPUの型番や世代、Secure Bootの状態を示す項目がありません。端末の機種名はDevice Manufacturerなどから分かりますが、機種名からCPUが決まるとは限らないので、機種名だけでCPU世代を断定しないでください。
組み込みのレポートは、この列の不足を補えます。Windows feature update device readiness reportのSys req issues列には、Processor family、TPM、Secure boot、RAM、System drive size、Storageなどが端末ごとに入ります。CSVに書き出すと、この列は「1, 2」のような数値のコンマ区切りになり、1・8・10がプロセッサーファミリー、7がSecure bootという対応表がMicrosoft Learnにあります。前提はWindows診断データが送られていることで、データは1日1回程度のアップロードを経て、最大52時間ほど遅れて反映されます。Readiness statusがUnknownの端末は、診断データの構成を見直すところから始めます。
そのレポートの結果は、この記事の「CPUとSecure Bootは要確認」を減らす入力として使えます。Sys req issuesに出た端末は「買い替え」寄り、Unknownの端末は「要確認」のまま、という形で、次節以降のCSVの判定に重ねてください。
もう1点、ここに載る情報は取得のタイミングに注意が必要です。ハードウェアとソフトウェアのインベントリは、登録日から7日ごとに更新されます。入れ替えた直後の端末や、メモリーを増設した端末は、CSVの値が古いことがあります。
CPUの型番が手元にない場合は、資産台帳やOEMの機種仕様、PC Health Checkの結果などから別途集め、CSVに結合してから渡す形になります。Windows 10のHome・Pro・Pro for WorkstationsではPC Health Checkで資格を確認でき、EnterpriseとEducationの利用者は管理者からの案内を待つ前提です。管理者側の評価は、Endpoint analyticsなどの既存ツールに組み込まれていく、と同じページに書かれています。
Claudeに渡す前に落とす列
CSVをそのままClaudeに渡す必要はありません。判定に要らない列は、渡す前に消します。
- 落とす列: 端末名、シリアル番号、ユーザー名・メールアドレス、EntraのデバイスID、MACアドレス
- 残す列: 機種名、Total physical memory、Total storage space、Free storage space、TPM version、OSのビルド番号、CPU型番(結合した場合)
仕分けに必要なのは機種ごとの仕様と台数であって、誰の端末かではありません。ユーザー名を残すと、後工程で個人に紐づく資料が増えます。行を識別する必要があれば、連番の列を足して対応表を手元に残してください。
Claude.aiにアップロードする場合も、Claude Codeでローカルに読ませる場合も、この手順は同じです。組織のデータ取り扱い規程でCSVの持ち出しが制限されている場合は、規程が先です。
判定スクリプトを作らせる
判定ロジックを毎回チャットで説明させるより、スクリプトにして再現できる形にしたほうが、翌月の再実行で結果がぶれません。Claude Codeに次のような指示を出し、要件表のルールを渡します。
添付のCSV(列名は Model / Total physical memory / Total storage space /
Free storage space / TPM version / CPU)を読み、1台ずつ判定する
Pythonスクリプトを作ってください。
判定ルール:
- RAM が4GB未満、または総容量が64GB未満 → 買い替え・増設
- TPM version が空 → 要確認(理由: TPM が空)
- TPM が 2.0 で始まらない → 買い替え
- CPU が空、または渡した対応世代リストに無い → 要確認
- 空き容量が20GB未満 → 整理後に更新
- 上記のいずれでもない → 更新対象
判定は上から順に行い、最初に当たったものを採用する。
CPU は私が渡す Microsoft の対応リストの文字列と照合し、
あなたの記憶で対応・非対応を決めないこと。「空き容量20GB未満」は、ここでは仮に置いた閾値です。Microsoft Learnには、更新や機能のために将来的にストレージ要件が増える可能性があるという注記があるだけで、20GBという数字は載っていません。自社の運用に合わせて変えてください。
生成されたスクリプトの一例が次です。列名はエクスポートに合わせて、先頭の COLS を書き換えます。supported_cpus.txt はMicrosoftの一覧から自分で作るファイルで、リスト全文を入れる前提です。世代名の部分一致や「Ryzen」のような系列名だけで通すと、一覧に無い古い型番まで更新対象に入ります。
import csv, sys
COLS = {"model": "Model", "ram": "Total physical memory",
"total": "Total storage space", "free": "Free storage space",
"tpm": "TPM version", "cpu": "CPU"}
# Microsoft の対応プロセッサー一覧から型番を1行1件で書き出したテキスト
# (例: i5-8250u)。小文字で保存し、CSV の CPU 列(例: Intel(R) Core(TM)
# i5-8250U CPU @ 1.60GHz)に型番が含まれるかで照合する
CPU_OK = [l.strip().lower() for l in open("supported_cpus.txt", encoding="utf-8")
if l.strip()]
def num(s):
try:
return float(str(s).split()[0])
except (ValueError, IndexError):
return None
def judge(r):
ram, total, free = (num(r[COLS[k]]) for k in ("ram", "total", "free"))
tpm, cpu = r[COLS["tpm"]].strip(), r[COLS["cpu"]].strip()
if None in (ram, total):
return "要確認", "RAM/容量が空"
if ram < 4 or total < 64:
return "買い替え・増設", f"RAM {ram}GB / 容量 {total}GB"
if not tpm:
return "要確認", "TPM version が空"
if not tpm.startswith("2.0"):
return "買い替え", f"TPM {tpm}"
if not cpu:
return "要確認", "CPU 列が空"
if not any(k in cpu.lower() for k in CPU_OK):
return "要確認", "CPU が世代リストの手元一覧に無い"
if free is not None and free < 20:
return "整理後に更新", f"空き {free}GB"
return "更新対象", ""
rows = list(csv.DictReader(open(sys.argv[1], encoding="utf-8-sig")))
counts = {}
for r in rows:
label, why = judge(r)
counts[label] = counts.get(label, 0) + 1
print(r[COLS["model"]], label, why, sep=" | ")
print(counts)このスクリプトの肝は、判定の順序です。RAMと容量が最優先で、次にTPM、最後にCPUを見ます。CPUを後ろに置いたのは、CPU列が空の端末が多い現場では、先に確実に落とせる端末を落としてから要確認を数えたほうが、要確認の件数が減るからです。
動かして出力を読む
6行のダミーCSVで動かした出力です。値は検証用に作ったもので、実在の端末ではありません。
python3 win11_triage.py sample.csvLatitude 5400 | 更新対象 |
ThinkPad T470 | 要確認 | CPU が世代リストの手元一覧に無い
OptiPlex 3040 | 買い替え | TPM 1.2
Surface Go | 要確認 | CPU が世代リストの手元一覧に無い
Dynabook B65 | 要確認 | TPM version が空
ProBook 450 | 整理後に更新 | 空き 15.0GB
{'更新対象': 1, '要確認': 3, '買い替え': 1, '整理後に更新': 1}出力から読み取れることが2つあります。
1つ目は、要確認が6台中3台と多いことです。理由はそれぞれ違い、7世代CPUの端末はCPUが対応リスト外、Surface GoはCPU型番が手元のリストに無いため、TPMが空の端末は列の欠損が原因です。理由列を見れば、要確認の中身を実機確認に回すのか、手元のCPUリストを見直すのかを切り分けられます。
2つ目は、「買い替え」が1台だけという点です。TPM 1.2のOptiPlexだけが確実に落ちています。対応リスト外のCPUを「買い替え」と言い切らない設計にしたのは、後述のとおりMicrosoftがOEMへの確認を勧めているためです。
CPUの照合は手元のリストで行う
Microsoftは、Windows 11の対応プロセッサーをIntelとAMDなどメーカーごとのページで一覧にしています。Intelのページを見ると、Coreシリーズは第8世代から第13世代までが並び、Celeron・Pentium・Xeonなども載っています。ページ冒頭には、このリストは対応世代の下限から最新までを示すもので、後から出る同等の世代は明記がなくても対応扱いになる、と書かれています。
つまり、リストに無い=非対応とは言い切れません。Microsoftのプロセッサー要件のページも、対象のWindowsが載るかどうかはOEMに確認できると案内しています。また、リストの更新はWindowsの一般提供ごとなので、直近のCPUが載っていない期間もあります。
そのためCPUの判定は、次の運用が現実的です。
- Microsoftの対応プロセッサー一覧(Intel・AMD)をテキストにして手元に置く
- CSVのCPU列を、そのテキストの文字列と照合させる
- 一致しなければ「要確認」に入れ、理由を残す
- 要確認のCPUは、機種単位でOEMに確認する(同じ機種の台数分をまとめて1回で済む)
Claudeに「このCPUはWindows 11に対応していますか」と聞くと、記憶に頼った答えが返ることがあります。リストの文字列と突き合わせる、と手順に固定しておくことで、判定の根拠をページに戻せます。
台数と時期案を出す
仕分けが済んだら、Claudeには集計と叩き台を任せます。集計の単位は、機種ごとの台数です。買い替え台数は端末単位でなく、機種単位に束ねたほうが、見積もりの取りやすさが変わります。
判定結果のCSVを使って、次の2つの表を作ってください。
1. 判定区分 × 機種ごとの台数(要確認は理由別に分ける)
2. 「買い替え」「買い替え・増設」の機種ごとの台数と、同じ機種で
要確認に入っている台数(買い替えに転ぶ可能性がある台数として別列)
推測で単価や納期を入れず、空欄のまま残すこと。単価と納期を空欄で返させるのは、ここに入る数字が資産台帳や見積もりの値だからです。購入時期やリース満了日は、IntuneのCSVには入っていません。資産台帳から機種ごとの取得日・リース満了日を結合すれば、満了が近い機種から買い替える、という時期案の骨格が作れます。Claudeが出す案はあくまで叩き台で、予算化は人が決めます。
ソフトウェア側のサポート終了日を突き合わせる作業は、資産台帳のサポート終了日を突合する手順が扱っています。ハードウェア要件の判定と組み合わせると、「OSが切れる端末」と「ソフトが切れる端末」が同じ台帳で並びます。
要確認を潰す順番
要確認が残るのは普通です。減らす順番を決めておくと、確認作業が散りません。
- 台数が多い機種から確認する。1機種の確認が数十台の判定を動かす
- TPM versionが空の端末は、TPMが載っていないのか、値が取得できていないのかを切り分ける。空欄の理由は端末詳細ページに書かれていないため、実機のTPM管理で確認する
- 登録からの経過が短い端末や、最近ハードを触った端末は、インベントリの更新(7日周期)を待ってから見直す
- Secure Bootは要件が「対応していること」で、有効であることまでは求めていません。ファームウェアの設定で有効化できるのか、そもそも非対応なのかを、機種単位で確認する
- OS側の条件(バージョン2004以降・2021年9月14日の更新)が満たされない端末は、ハードウェアが要件を満たしていても先にWindows 10側の更新が要る
Windows Updateのクライアントポリシーを使っている組織では、最低要件を満たさない端末にWindows 11のアップグレードが自動で提案されない、という利点があります。Microsoft Learnのプランニングのページに書かれています。非対応端末を仕分けたあとも、ポリシー側で誤ってアップグレードが走らないことは別に確認する価値があります。
なお、Intune管理下のモバイル端末にClaudeを配る手順はClaude for Intuneの設定手順にあります。こちらはiPhone/iPad側の話で、この記事のWindows端末の仕分けとは対象が違います。
まとめ
Intuneの端末CSVだけでWindows 11の対応可否を確定できるのは、メモリー、ストレージ、TPMの3項目です。CPUとSecure Bootは別の入力が要るので、「判定できない」を第3の出口として持っておくと、台数の見積もりが外れにくくなります。
Claudeに任せる範囲は、要件表をルールにしたスクリプトの作成、結果の集計、機種別の台数表までです。CPUの対応可否は、Microsoftの一覧文字列との照合で行い、記憶では決めさせません。時期と金額は資産台帳の値を人が結合して決めます。