﻿ObservePC Ver 1.8 詳細説明ドキュメント（DOC_v1.8.txt）

1. はじめに（ObservePC の目的）
───────────────────────────────────────────────
ObservePC は、AI との技術対話やトラブル相談を円滑にするための
「前提整形支援ツール」です。  
Windows 環境の構成情報を広く浅く収集し、それを AI に渡すことで、
前提情報の不足から生じる誤診断や説明不足を防ぐことを目的としています。

・GUI 不要、インストール不要、USB から実行可能  
・出力はすべてテキスト形式で、AI 共有に最適化  
・「診断ツール」ではなく「前提情報整形ツール」である点が特徴


2. 出力セクションと解説（出力順・取得元・整形方針）
───────────────────────────────────────────────
ObservePC の出力は、Windows 標準 API、WMI、レジストリ、イベントログなどから取得した
情報を整形し、セクションごとにまとめています。  

[0] ヘッダー  
　取得元：System 情報、起動引数  
　内容：バージョン、実行時刻、タイムゾーン、起動オプション（expertMode など）

[1] PC 起動時刻  
　取得元：WMI（Win32_OperatingSystem）  
　内容：LastBootUpTime をローカル時刻へ変換して表示

[2] コンピュータ名、ドメイン、ユーザー  
　取得元：System.Environment  
　内容：MachineName、UserName、UserDomainName、OS アーキテクチャ

[3] OS 情報  
　取得元：WMI（Win32_OperatingSystem）  
　内容：OS 名、バージョン、ビルド番号、64bit 判定

[4] マザーボード情報  
　取得元：WMI（Win32_BaseBoard）  
　内容：メーカー、製品名、シリアル番号

[5] BIOS 情報  
　取得元：WMI（Win32_BIOS）  
　内容：ベンダー、バージョン、リリース日

[6] CPU とメモリ情報  
　取得元：WMI（Win32_Processor, Win32_PhysicalMemory）  
　内容：CPU 名、コア数、スレッド数、RAM 合計、スロット別スペック（速度・種別・容量）

[7] ストレージ情報  
　取得元：WMI（Win32_LogicalDisk）  
　内容：ドライブ種別（ローカル / リムーバブル）、容量、空き容量、ボリューム名

[8] GPU 情報  
　取得元：WMI（Win32_VideoController）  
　内容：GPU 名、ドライバーバージョン、VRAM（正確に取れない場合は注記）、解像度

[9] ディスプレイ情報  
　取得元：Win32 API（EnumDisplayDevices）  
　内容：GPU と接続モニターの PnP 名。代表的な 1 台のみ表示

[10] ネットワーク構成  
　取得元：WMI（Win32_NetworkAdapterConfiguration）、System.Net  
　内容：NIC 名、製造元、種別、状態、MAC、IP、DNS、Gateway、リンク速度  
　補足：ループバックや無効 NIC を自動除外

[11] 接続デバイス一覧  
　取得元：WMI（Win32_PnPEntity）  
　内容：「録音・映像機器」と「その他デバイス」に分類。  
　　　　通常は最大 10 件（-E で 30 件）。  
　補足：USB など電源 ON・接続状態のものが対象

[12] 環境変数  
　取得元：Environment.GetEnvironmentVariables()  
　内容：ユーザー変数とシステム変数を表示（Path は最大 5 件）

[13] Windows Update 履歴  
　取得元：WMI（Win32_QuickFixEngineering）  
　内容：KB 番号とインストール日を抽出。  
　　　　環境によっては 50 件以上表示される場合もあり

[14] 最近インストールされたソフト  
　取得元：レジストリ（Uninstall キー）  
　内容：InstallDate が存在する項目を抽出  
　補足：レジストリ仕様により欠落や重複の可能性あり  
　　　　最大 10 件（-E で 30 件）

[15] スタートアップアプリ一覧  
　取得元：レジストリ（Run キー）、WMI（Win32_StartupCommand）  
　内容：ユーザーとシステムのスタートアップ項目を統合表示  
　注意：数が多いと PC 起動速度に影響する場合があります

[16] サードパーティ製プロセス一覧  
　取得元：System.Diagnostics.Process  
　内容：Microsoft 製以外の常駐候補プロセスを抽出  
　補足：不明なプロセスは注意が必要

[17] セキュリティソフト状況  
　取得元：WMI（AntiVirusProduct）、プロセス名  
　内容：Defender またはサードパーティ製を推定表示

[18] FW プロファイル状態  
　取得元：NetSecurity API（PowerShell 非依存）  
　内容：Domain / Private / Public の有効状態と送受信ポリシー  
　推奨：すべて有効が望ましい

[19] 異常ドライバー検出  
　取得元：WMI（Win32_PnPEntity）  
　内容：Status が Error / Degraded のデバイス  
　補足：安定動作している場合は即問題ではないが、周辺機器の注意喚起として有用

[20] イベントログ  
　取得元：Application / System ログ  
　内容：Error または Warning のイベントを抽出  
　　　（DCOM ノイズ：EventID 10016 は除外）  
　補足：最大 15 件（-E で 35 件）

[21] 電源プラン
　取得元：コマンドライン powercfg /getactivescheme
　内容：現在設定されている電源プラン名を表示

[22] ユーザーアカウント一覧（-E 専用）  
　取得元：WMI（Win32_UserAccount）  
　内容：有効 / 無効状態、健全性（OK / Degraded）

[23] タスクスケジューラ登録一覧（-E 専用）  
　取得元：schtasks.exe 出力を整形  
　内容：登録者、状態、トリガー種別、実行コマンド  
　注意：Microsoft 製タスクは除外  
　　　　不審なタスクの発見に有効

[24] 削除ソフト痕跡（-E 専用）  
　取得元：レジストリ Uninstall キーの残骸、イベントログ（MsiInstaller）  
　内容：削除された可能性のあるソフトを推定または確定表示

[25] サービス一覧（-E 専用）  
　取得元：WMI（Win32_Service）  
　内容：停止中・無効・異常状態のサービスを抽出（最大 30 件）

[26] ユーザー設定 FW ルール（-E 専用）  
　取得元：NetSecurity API、レジストリ  
　内容：DisplayName（名前）のみ表示  
　補足：アンインストール済みアプリのルールが残っている場合は削除推奨

[27] NTP設定（-E 専用）
  取得元：コマンドライン w32tm /query /status
　内容：現在設定されているNTP設定を表示

3. -E モードの詳細
───────────────────────────────────────────────
-E オプションを指定すると、以下の拡張が有効になります。

・表示件数の上限拡大：10 → 30  
・情報の詳細化：環境変数・異常ドライバーなど  
・追加セクション：  
　- ユーザーアカウント情報  
　- タスクスケジューラ（整形済）  
　- 削除ソフト痕跡（レジストリ／イベントログ）  
　- 停止・無効・異常サービス一覧  
　- ユーザー／アプリが設定した FW ルール
　- 日付と時刻の設定

用途：  
AI 相談よりも「自分で環境を把握したい」「問題点を深掘りしたい」向けの詳細モードです。  
-F, -S の出力も -E に準じます。


4. FW ルールの表示方針（名前のみ）
───────────────────────────────────────────────
ObservePC は FW ルールの表示を DisplayName（名前）のみに限定しています。  
理由は以下の通りです。

1. Windows 設定画面と同様の構成であり、ON/OFF の判断が容易  
2. Protocol, Port, IP などの詳細は目的に対して冗長であり、ノイズとなりやすい  
3. アンインストール済みアプリの痕跡が残っている場合、その判断材料として有用  


5. AI との連携方法（Copilot / Gemini など）
───────────────────────────────────────────────
ObservePC の出力は Copilot、Gemini、ChatGPT などの AI へ直接渡すことで、  
技術相談やトラブル診断がスムーズに行えます。

推奨手順：  
1. 出力されたテキストファイル（例：PC_Observation_GESO_20251118.txt）を AI へアップロード  
2. 「このファイルを確認して」と入力  
3. 質問を続けて記述

質問例：  
・この PC を診断してほしい  
・××(特定の機能・アプリ)が動かない原因と対策を教えて
・起動が遅い原因を教えて  
・ゲーム用途に GPU を交換すべきか？  
・HDR が有効にならない（※ケーブル規格は user_note.txt に記入）


6. 起動オプションの意味と使い分け
───────────────────────────────────────────────
-L：初心者向け。AI に平易な説明を促す  
-H：経験者向け。簡潔な応答を AI に促す  
-M="..."：メッセージを AI に付加  
-E：詳細モード。出力拡張。安定性に配慮した限定的な並列処理+取得失敗時に再試行。
-F：高速モード。全情報を全力で並列取得。再試行なし。高スペックPCで素早く取得用途向け
-S：安全モード。逐次取得し取得失敗時に再試行。低スペックPCやServerで推奨します


7. AI への質問例
───────────────────────────────────────────────
〈基本診断・トラブル解消〉  
・この PC の問題点を総合的に診断して  
・時々重くなる原因と対策は？  
・起動が遅い時に確認すべき箇所は？  

〈ハードウェア・性能相談〉  
・パーツ交換の優先順位を知りたい  
・特定ゲームを快適に遊ぶには GPU 交換が必要？  
・動画再生を綺麗にする設定は？  
・HDR が使えない（ケーブル規格を補足）  

〈互換性・設定相談〉  
・古いアプリの互換モード設定を教えて  
・セキュリティソフトが重い場合の対策は？  

〈AI 連携活用〉  
・AI 診断に使うプロンプト例を作って  
・ローカル AI 学習環境を構築する場合の強化点は？  


8. 出力ファイルと補足ファイル
───────────────────────────────────────────────
●出力ファイル  
　PC_Observation_マシン名_日付.txt  
　例：PC_Observation_GESO_20251118.txt  
　保存先：ObservePC.exe と同じディレクトリ

●補足ファイル：user_note.txt  
　同一ディレクトリに置くと、出力末尾に自動連結されます。  
　AI に伝えたい追加情報を自由に記述できます。

記述例：  
・HDR が有効にできない。HDMI ケーブルは Ver 1.4  
・Win11 非対応のため移行検討中  
・症状が発生する条件（温度、時間帯、特定ソフトなど）


9. 処理時間と環境差（Ver1.7参考値）
───────────────────────────────────────────────
Intel Celeron N3050 / 4 GB / Win10（-E, USB 2.0） ：約 50 秒  
Pentium J5005 / 16 GB / Server 2019（-E, USB 3.0）：約 23 秒  
Core i5-13500 / 32 GB / Win11（-F, SSD）　　　　：約 3 秒  
Core i5-13500 / 32 GB / Win11（-S, SSD）　　　　：約 10 秒  

※ あくまで参考値であり、環境により大きく変動します。


10.使用タイミング 
───────────────────────────────────────────────
Windowsが変な挙動してからObservePCを使うのが一般的でしょうが、
Windowsはエラーなどが有っても以外と粘って動くので、環境変化(新規ドライバーや新規ソフトインストール、
Windows Update)後などに確認のために動かすことを勧めます。
1ヶ月に一回など定期的な実行も良いでしょう。出力ファイルを残しておけば、何が変化したかの確認に役立ちます。


11. ソースコードと改変方法
───────────────────────────────────────────────
ObservePC は Visual Studio 上で改変可能な C# ソースコードを同梱しています。

・ファイル名：Source code_1.8.cs.txt  
・推奨環境：Visual Studio 2022 / .NET Framework 4.7.2  
・改変例：  
　- 出力件数の調整（MaxDataOutput変数の書き換え）  
  - ディスプレイ情報の複数台対応
　- FW ルールフィルタの強化  
　- 任意のセクション追加、既存セクションの表示位置変更
　- GUI 実装や LAN 送信機能（OutputSender.cs）の利用


12. Visual Studio での実行手順（初心者向け）
───────────────────────────────────────────────
1. Visual Studio を起動し「新しいプロジェクトの作成」を選択  
2. C# → .NET Framework → コンソールアプリ を選択  
3. Program.cs に同梱のソースコードを貼り付け  
4. 参照追加が必要な場合は System.Management / Microsoft.Win32 を追加  
5. 「開始」ボタンで実行

※ Ver 1.4 以前のコードは構造が素直で初心者向けです。
※ Ver 1.8コードは1.7より可読性に考慮しているので取得項目の追加や表示順の変更など改造のベースなら推奨。


13. カスタマイズ（簡単な変更）
───────────────────────────────────────────────
ObservePC はマスターテーブル方式を採用しており、
簡単なカスタマイズで以下が可能です。

・出力項目の追加／削除
・出力順の変更
・-E 専用項目の制御(-E専用をオプション無しでも実行表示させるなど)
・負荷レベルの調整

具体的な実装方法や注意点は、
ソースコード内のコメントを参照してください。


14. 開発思想と背景（人通信プロトコル仮説）
───────────────────────────────────────────────
ObservePC は「AI との対話における前提情報の欠如」を解消するため設計されました。

人間同士であっても、前提が共有されなければ誤解が生じます。  
この現象を「人通信プロトコル（仮説）」と捉え、ObservePC は  
その“前提整形層”を担うツールとして位置付けられています。

・AI に合わせて人間が説明を工夫するのではなく  
・情報処理技術によって摩擦を減らす  

という思想が、出力形式・オプション構成・ドキュメント全体に反映されています。


15. 開発経緯と AI 活用
───────────────────────────────────────────────
ObservePC は、Copilot やその他の生成 AI を活用しながら開発されています。

・WMI クエリやイベントログ API の構文補完  
・冗長コードの整理  
といった定型作業を AI が補助し、  
構造設計・仕様策定・安全設計などの核心部分は開発者が担当しています。

“AI に理解させるためのツールを、AI と協働して作る”  
という点が特徴です。


16. 雑記
───────────────────────────────────────────────
新規に取得項目を増やそうとしたらVer1.7のコードが汚くて。
手軽に自分が欲しいツールを作ろうとして始めたけど気がつくと機能追加が続き巨大化していてスパゲティコードに
なっていた。我慢できなくてVer1.8で内部構造まで整理の手を入れた。マスターテーブル化したので、これにより
カスタマイズが容易になった。
ObservePCで様々な情報を取得しているがWindowsのトラブルシュートではイベントログが一番重要との考えから
出力上限を+5拡張しました。


本ドキュメントは Ver 1.8 時点の仕様に基づいています。
