こんにちは。ポガ研です。久々の更新となります。
先日、顧客(客先情シス担当者)の方からこんな相談を頂きました。
社内用WindowsPCを200台調達して、それぞれのコンピュータ名とS/N(シリアル番号)を紐づけて台帳管理をしたいが、200台もあるので手入力をしていると荷が勝ちすぎる。何か良い方法はないか?
というわけで今回はコンピュータ名とシリアル番号を自動取得するバッチスクリプトの作成方法をご紹介します。
まずはバッチスクリプトそのものの前に、コンピュータ名とシリアル番号の取得コマンドをそれぞれ下記にご紹介します。
■ホスト名取得コマンド
1 |
echo %computername% |
■シリアル番号取得コマンド
1 |
wmic csproduct get identifyingnumber |
上記2コマンドはネットで検索すると簡単に見つかりますので、単純にコンピュータ名とシリアル番号を知りたいだけなら、ほとんどの場合上記のコマンドのみで要件を充足すると思います。
ただ、今回の要件では端末が200台もあるので、いちいち手動でコマンドを打ってられないし、選択してコピーしてExcelに貼り付けなんてとてもじゃないけどやっていられないと思います。
なぜなら200台もあるケースだと、たとえ1台2分で台帳記入が終わっても400分かかりますし、それ以前にミスをする可能性が高いため台帳誤記入のリスクが高まります。
情シスの方は時間よりも誤記入のことを気にするはずですのでこういう場合ではスクリプトの使用が推奨されます。
さて、前置きもここまでにして今回の本丸であるスクリプトの中身をご紹介します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
@echo off setlocal enabledelayedexpansion set SRtxt="%~dp0SR.txt" set n=0 for /f "usebackq tokens=*" %%a in (`wmic csproduct get identifyingnumber`) do ( set string[!n!]=%%a set /a n=n+1 ) echo %computername% >> %SRtxt% echo %string[1]% >> %SRtxt% exit /b 0 |
上記のテキストボックスの上部にある「Copy」アイコンをクリックしてコピーし、ご自身の端末のテキストエディタ上に貼り付け「GetPC_Info.bat」という名前で保存してください。
それでは、実際に使い方を説明していきます。
実際に使ってみよう!
このスクリプトの使い方については下記のとおりです。
① スクリプトをUSBメモリの中に配置する。
② 取得対象のPCに差し込み、「GetPC_Info.bat」を実行する。
③ USBメモリを抜く。
④ ①~③をPCの台数分実行したら、「GetPC_Info.bat」と同じ階層にある「SR.txt」をコピーし、台帳に転記する。
PC200台はもちろんそれぞれキッティング作業が発生すると思うので、その間に上記の工程を差し込んでください。
もちろん、ネットワーク上に配置してそれぞれにネットワーク上で実行させることも可能です。
注意点としては1つだけで、SKYSEAなどの資産管理ソフトがインストールされる前に行ってください。
USBメモリへの書き込み制限など、いろんな部分に制約が発生した状態になるためです。
※「SR.txt」には奇数行にコンピュータ名、偶数行にシリアル番号が並ぶようにしています。
台帳に転記する場合はいったんExcelの新規ワークシートに貼り付けてから、Excelの関数やツールを使って台帳の形式に合うようにカスタマイズしてください。
※対象のPCはメーカー製PCを想定しています。BTOパソコンや自作パソコンなど、シリアル番号がHWにそもそも登録されていないPCには正常に動作しない可能性があります。
以上、ご参考になれば幸甚です。