次のような Powershell スクリプトの作成に成功しました。
- AD に問い合わせてコンピュータのリストを取得する
- ソフトウェア/ハードウェア情報を取得するために WMI を介してすべてのコンピューターにクエリを実行する
- 収集したデータを MySQL データベースに挿入します。
スクリプトは正常に動作しますが、実装方法が気に入りません。これは手続き型であり、コードの重複が多く、何かを変更する必要があるたびに混乱を引き起こします。
さて、お聞きしたいのは、OOPを使用してPythonで実装する最もクリーンな方法は何ですか? 私はこれに似たものを考えました(疑似コード):
Class ADquery
function get_computers( UO ): return a list of computers in the specified UO
Class Computer
constructor( computername )
function query(): connect to the computer and pull the info through WMI
function print(): print the collected info to the console (debug)
property RAM
property CPU
...
質問:
収集したデータをデータベースに保存するには、別のオブジェクト (データベースなど) を作成して Computer オブジェクトを渡すか、Computer クラスにメンバー関数 (save_db() など) を追加する必要がありますか?
2 番目のオプションを選択した場合、複数のオブジェクトを扱っているときに膨大な数の MySQL 接続が発生することはありませんか?
どうもありがとう、私の悪い英語でごめんなさい