この記事について
この記事は、生成AIを活用した自動生成フローで作成しています。Win32_OperatingSystem、Win32_Processor、Win32_ComputerSystemの読み取り用途を見直し、旧記事のDomain Admin推奨、疑似タイムアウト説明、不要なSleep依存を修正しました。検証ステータス:✅ Windows WMI構造確認済み
ExcelのA列にPC名を並べ、WMIからOS・CPU・物理メモリを取得する仕組みは小規模な棚卸しに使えます。ただし「動けばよい」より、読み取り専用・最小権限・失敗しても次へ進めることを重視します。
取得対象は3クラスに分ける
| 情報 | WMIクラス | 主なプロパティ |
|---|---|---|
| OS | Win32_OperatingSystem | Caption / Version |
| CPU | Win32_Processor | Name |
| 物理メモリ | Win32_ComputerSystem | TotalPhysicalMemory |
Domain Adminを前提にしない
旧記事は「ドメイン管理者推奨」としていましたが、資産情報取得のために広い管理権限を常用するのは避けます。対象PCで必要なWMI名前空間とリモート管理権限だけを持つ専用実行主体を検討します。
GetObjectに疑似タイムアウトを付けたつもりにならない
単にOn Error Resume NextやSleep 10を入れても、WMI接続のタイムアウト制御にはなりません。大量PCでは、事前疎通、1台単位の経過時間記録、一定時間で別プロセス側から打ち切る設計などを検討します。
結果は配列へ貯めて一括出力
セルへ1項目ずつ書くより、結果配列にOS/CPU/RAM/Statusを格納し、最後にResize(...).Value = resultsで書き出す方がExcel側のI/Oを減らせます。
- PC名が空ならスキップする。
- 接続失敗時はErr.Descriptionだけでなく取得時刻も残す。
- 変更系WMIメソッドは同じマクロに混ぜない。
- 対象台数が増えたらPowerShell/CIMや管理製品と比較する。
公式情報
- Microsoft Learn ― Win32_OperatingSystem
- Microsoft Learn ― Win32_Processor
- Microsoft Learn ― Win32_ComputerSystem
この記事の更新履歴
- 2026-09-14 追加:最小権限、失敗記録、疑似タイムアウトへの注意を追加。
- 2026-09-14 変更:広い管理者権限前提の記事から、読み取り専用棚卸しの設計へ変更。
- 2026-09-14 削除:内部style_prompt、本文H1、Domain Admin推奨、Sleepでネットワーク負荷やタイムアウトを制御できるという説明を削除。

