ライセンス認証確認をバッチで一括取得。skyseaでクライアントPCに配布してみる。

社内で利用しているwindowsパソコンのライセンス認証が作業漏れで出来てなかった。。。

かなりマニアックな現象ですが、そんなことがありました。

状況は、、、

・クライアントPCはインターネットに接続できない

・インターネットに接続できないので、ライセンス認証が出来ない

・ライセンス認証できていないクライアントPCを把握する必要がある

・資産管理ソフト(skysea)で管理はされているので、スクリプト(バッチ含む)の配布は可能

条件はこんな感じ。

普通であればインターネット側に出られるだけで認証は通るはずですが、ちょっと特殊な状況だったのでバッチファイルを作って資産管理ソフト skyseaで配布し状況を把握するひつようがありました。

つくったバッチファイルを紹介していきます。

割と簡単にできた

いきなり種明かし。

バッチの中身はこんな感じ。

スポンサードリンク

@echo off

rem 本batの起動ディレクトリをカレントディレクトリにする
cd /d %~dp0

rem コンピュータ名を環境変数から取得しファイル名にする。それを変数に格納
SET pc=”c:\temp\%COMPUTERNAME%_check.txt”

rem どのホスト名かわかるようにテキスト内にもhostnameを記述
hostname > %pc%

rem ライセンス認証確認結果をさっき作ったのCドライブのtempにあるテキストに保存
cscript //nologo c:\Windows\System32\slmgr.vbs /dli >> %pc%

rem 自分のPCがworkgroupだったのでIP指定。権限無いとファイルコピーできないのでnet use。
net use \\192.168.0.10\共有 /user:administrator password

rem 結果ファイルを自分のPCに持ってくる
copy %pc% \\192.168.0.10\共有

権限を削除して後処理
net use \\192.168.0.10\共有 /delete

exit

ただ単にライセンス認証の結果だけ出すのは「c:\Windows\System32\slmgr.vbs /dli」でいけます。

このスクリプトをskyseaで撒くとどうなるかというと、

「あらかじめ自分のPCに作った【共有】というフォルダに各PCからライセンス認証されているか/そうでないか、という結果が入ったテキストが送られてくる」

まあこんな感じ。

注意点として、

・共有フォルダを予め作成

・CIFSとNTFSの権限を対向のクライアントPCが書き込めるように設定

・共有フォルダの同時接続数は20なので、net config server /autodisconnect:0 のコマンドでクライアントが通信が終わるとセッションも切れるようにしておく 

これはなかなか重要。

net config server /autodisconnect:0

とくにこれ。

共有フォルダの同時接続20というのは忘れがち。

設定を忘れると、ファイルの取得が大幅に遅れます。

取得したファイルはエクセルにでも張り付けて加工すれば、これで社内のライセンス認証が出来てない端末を把握することが出来ました。

色々応用できそう。。。

skyseaで収集したテキストファイルを一つに結合。csv化してエクセルで管理も可能。

エクセルで一定間隔ごとに行列を入れ替えする。5行ごとに関数を使って入れ替え。

収集したテキストの結合やエクセルの加工も↑で紹介してます。

スポンサードリンク