採取しようとするパソコン群の中ではコンピュータ名が一意であることが必要ですね
Dell-PC とかNEC-PCとかHP-PCなんてつけるやつが複数いると、ファイルを上書きしてしまいます。
そこでこのフォルダにファイルが来ると自動起動でファイルを別のところに移して、同じ名前のファイルがあると(2)とかをつけるスクリプトを作ったことがあります(昔のことで忘れちゃいましたが)。
それとこのままでは何回もログオンするとそのたびにファイルを作るので、ログオンスクリプトで「コンピュータ名と同じファイルがあったらPcAssetは起動しない」という風にしていました(昔のことなので具体的にどのように記述したか忘れちゃいましたが)。
ウチは今はログオンスクリプトではなくて、パソコンの一覧を公開して「このパソコンの担当者はパソコンを起動してPCASSETを実行しなさい」にしています。 期間内に一度もパソコンを起動しない者もいるのでこうしました。 うるさく言っても期限内にやらないやつがやっぱり居て、何度も請求することになりますけど...
PCAssetでできたCSVファイル群を DOSコマンドバッチ
type *.csv PCASSET.txt
で結合して
それをExcelのマクロで読み込んでおいて あたらしくシート
"IPアドレス" Selection.AutoFilter Field:=4, Criteria1:="=IPアドレス" という感じで 行を特定して それを持ってくる
"MACアドレス"
"ユーザー名"
"コンピュータ名"
"シリアルナンバー"
"ベンダー"
"モデル"
"タイプ" NotebookとかLaptopとかMini Towerとか
"OS"
"アンチウィルス" ウチはESETなので ESETの行を抽出 出てこないなら「アンチウィルス未設定」ということになる
"MSOffice" 「Microsoft Office Personal 2010」というような文字列で抽出、新バージョンが出ると条件を追加
を作って、条件にあった行の一覧をそれぞれ作って 最後のその集大成で
シート "機器一覧" にまとめる(コンピュータ名をキーにして各シートからVlookupで持ってくる)
というVBA をつくっていました
これを見て、「登録と違う(勝手にOSを変えちゃったり)」「アンチウィルスが入ってない」「シリアル番号が登録と違う(勝手に同じ機種のPCと入れ替えていたり)」...を調べてユーザを摘発(!!)します。
WindowsのActive Directoryを利用している環境にて、各クライアントPCの情報収集をフリーソフト「PCAsset」を使ってログイン時にサイレント起動して収集する方法をシェアします。
ご参考まで。
<効果>
・ドメイン参加しているクライアントPCのPC情報を自動で収集することができます
・ログイン時に収集するので、各ユーザーのログイン時間を知ることができます
<前提条件>
・WindowsのActive Directoryによるドメイン環境があること
・クライアントPCがWindowsであり、ドメイン参加していること
・「隠しフォルダ」が設定可能なファイルサーバがあること
<設定情報例>
・ファイルサーバーのIPアドレス:192.168.100.250
・共有フォルダ名:\\192.168.100.250\asset$
・PCAsset保存先 :\\192.168.100.250\asset$\PCAsset
<設定手順(30分~1時間程度)>
①ファイルサーバで隠し共有フォルダを作成します
Windowsの場合は共有名に[$]をつけることで隠しフォルダになります
②PCAssetをダウンロードします
http://www.vector.co.jp/soft/winnt/hardware/se487759.html
③PCAssetを隠し共有フォルダに展開します
④PCAssetの設定ファイルで隠しフォルダにサイレント起動、CSV形式で保存する設定を行います
(設定例)\\192.168.100.250\asset$\PCAsset\PCAsset.ini
⑤ドメインコントローラーのグループポリシーの管理にて新しいグループポリシーオブジェクトを作成します
⑥作成したグループポリシーオブジェクトをユーザーに適用します
ユーザーに対してのログインスクリプトになります