壁紙一発設定スクリプトで気分転換 = 3回目の道場も終わりました(ホッ)

とうとう第3回目の道場も終わりました。

今回こそは万事スムーズに行くことをイメージして開始したんですが、またもやスムーズには行きませんでした。完成度を高めようと少しずつよくしているつもりなんですが、今回はR2へのアップグレードのタイミングでトラブル。。。とりあえず1枚のPPTを使ったR2の説明で時間を埋めましたが、参加者の方にはご迷惑(それともご心配)をおかけしました。ごめんなさい。

終わった後の懇親会で「R2だけのセミナーをやってくれ」というご要望をいただいたのは不幸中の幸いかもしれませんが(^^ゞ ただR2の情報が少ないだけかな?

さて、そんなこんなで上手くいかなかったことや体の疲れなどから最近はちょっと曇りぎみなのです。そこで、気分転換に講習で使えるものを作ろうと思って各マシンごとに作った壁紙を一発設定できるスクリプトを作りました。

3つのスクリプトを組み合わせたので、バラバラ感がありますが、とりあえずできたので今日はよしとしよう!!
*****************************************************************
’コンピュータ名の取得
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\." & "\root\cimv2")
Set colSystems = objWMIService.ExecQuery("SELECT * FROM Win32_ComputerSystem")
For Each objSytem In colSystems
  GetComputerName = objSytem.Name
Next

'壁紙が指定してあるレジストリの変更
HKEY_CURRENT_USER = &H80000001
strComputer = GetComputerName
Set objReg = GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv")
strKeyPath = "Control Panel\Desktop"
objReg.CreateKey HKEY_CURRENT_USER, strKeyPath
ValueName = "Wallpaper"
strValue = "c:\windows\" & strComputer & ".bmp"
objReg.SetStringValue HKEY_CURRENT_USER, strKeyPath, ValueName, strValue

'レジストリ設定を実際の画面に反映させるための処理
Set WshShell = WScript.CreateObject("Wscript.Shell")
wshShell.Run "RUNDLL32.EXE user32.dll,UpdatePerUserSystemParameters ",1,true
*******************************************************************

簡単に解説すると、コンピュータ名を自動取得して、c:\windows\ の下にある "コンピュータ名.bmp"ファイル名を壁紙指定レジストリに書き込み、最後に反映させるというものです。

今回はこちらの "Tweakomatic" というツールを使ってレジストリ変更までたどり着き、
http://www.microsoft.com/japan/technet/scriptcenter/tools/twkmatic.mspx
レジストリは変更できてもすぐに壁紙に反映されないことがわかった(どうもしばらくほっとくと反映されていたりするみたいなのですが)ので、即時反映のためにどうしようかなあって思ってたら同僚の奥主さんが「こんなんあったよ~」って教えてくれたのでそのまま利用させてもらいました。
さらに、道場だと4台の仮想マシンがあるのですが、bmpファイル名をスクリプトにハードコーディングもつまらないので、コンピュータ名を自動取得してコンピュータ名と同じ名前のファイルを壁紙にするように変えてみたわけです。

ここまでできると、あ~したい、こ~したいって出てくるんですが、今回は気分転換の意味もあったので、スクリプトを起動して「おっ、壁紙が変わった!(^^)!」って喜んだところでOK。あとは道場のシナリオに付け加えるだけです。

話は変わりますが、先週は気分転換に道場のロゴを作ってみました。”世界の道場”をイメージして作ったら、アメリカ西海岸のカレッジ風ロゴとなり、汗臭さを感じないさわやかなものになってしまいました(^^ゞ これはこれでいいかなあなんて思いながら、第3回の道場に出ていただいた方にだけお披露目しました。いかがだったでしょうか??? 他の皆さんにも見てもらえるようにもう少しきれいにしようっと。

ということで、話を戻して、もしよかったら壁紙一発設定スクリプトも試してみてください。
それと、第3回目の道場にご参加いただいた皆さん、本当にお疲れ様でした。ありがとうございました。そして、これからもよろしくお願いします。