GWも最終日。今日も良い天気ですなあ。そんな16日目。
午前中微妙に暇だったので、設置したPCの生存状態を調べるbatとか作ってみた。いや一応アプリの機能の一部にそういうのがあるはずではあるんだけど、なんか信頼できない感じなので(←それはちゃんと調べて障害に挙げるべき)。アプリの機能はアプリ画面が動いているかどうかを監視するものなので、俺が求めているものとは若干違うのだ。あと、今さわれるのがまっさらなWindowsしかないので、そらでwshとか書けない俺としては必然的に簡素なbatを作るという選択肢しかなくなるわけだ。で、設置してるPCは全部で15台くらい。pingを撃ったときに少なくとも100%lossの場合はerrorlevelが1となるので、for文で全PCにpingを1発ずつ撃つことを考える。と、まあこんな感じ。なおこれは再現映像なのでそのままじゃ動かないかも。ネットワークが重かったり遠かったりするとNGと誤認するのは仕様。

for /L %%i in (1,1,15) do (
	ping computer%%i -n 1 -w 3 >NUL
	if %errorlevel% equ 0 ( echo computer%%i OK ) else ( echo computer%%i NG )
)

で、やってみるんだけど、なんかうまくいかない。うまくいかないというか、必ず%errorlevel%に0が入っているような感じになる。setのhelpを見ると書いてあるんだけど、これが環境変数の即時変数展開の問題というやつらしい。つまり、外側のfor文をを読んだときに%errorlevel%の値が確定してしまうとこういうわけだ。じゃあ遅延展開にすりゃあ良いんだろと言うことで!errorlevel!にしてみる(←こうすると遅延展開になるらしい)と今度は環境変数として認識されないというありさま。あーもうやってられんということで展開して書いた。保守とかする気も必要もないんだからはじめからそうすれば良かったんだよな。で、それを日記に書くためにまた調べ直してたら、環境変数の遅延展開はデフォルト無効で、cmd /v:onとかで有効にできるよとか書いてある。そして試してみたらうまくいったorz。遅延展開なんか扱うのはじめてだからデフォルト無効だなんて知らなかったよー。
あとは"mstsc /v:targethost"とか覚えた。これユーザー名とパスワードもコマンドラインから入れられれば便利なんだけどなあ。セキュリティ的に良くない(.rdpファイルだとパスワード保存しても平文じゃないし、そのまま別PCに持って行っても使えないみたい)のはわかるんだけどさー。
端末用PCの設置は昨日の段階で概ね終わってたわけだけど、最終確認ということでもう一度見に行くとなんか微妙に挙動が違う感じが。どうもWindows起動後のログイン画面でNumLockがオンになってるのとなってないのとある。調べてみるとレジストリの値が違うのが何台かある。こいつらはNortonGhostで作ったクローンなのでそこが違うのはなんかおかしいと思うんだけど。と思ったけど、厳密には2台の外付けHDDを使って2回イメージを取っている(その間にちょっと弄った)ので、全部が完全に同一というわけではないんだよな。んーとりあえずそこでなぜか設定が変わってしまったということにしよう。クローン作成もしくは復元に不備があったせいで、運用が始まってから環境問題発生とかないと良いけど。
最終的なデータの移行とかも全部終わっていよいよ稼働開始。と、ちょうどそんなタイミングで24時間の休みが与えられた。これは徹夜なしで日勤→夜勤となるからなんだけど。明日の昼何しようかなーって話になるんだけど、労働時間自体は変わってないのでそれは夜更かしと変わらないんだよなー。あくまでも勤務形態が変わるだけなので連勤記録は継続で。いや実際本当に休みだってんならいったん家帰るしね。AmazonからのCDとかMEGAPEERのチケットとか受け取りたいし。まあ何もなければ8日の昼には家に帰れるはずだ。また夜来ることになるんだけど。