hb

SWbemRefresher を使ったオブジェクトの更新

パニックにならないで。スクリプトを使用してパフォーマンスを監視できます
いつも思うんだけど、スクリプトセンターの日本語って凄いですよね。元の英文を見たわけじゃないけど、どうやったらこんな日本語になるのかという感じですが...それとも米国人のセンスをそのまま日本語にするとこうなるんでしょうか?
それはそれとして、ちょっと Windows のサービスの設定を WMI で引っ張ってきて書き換えた後にちゃんと変わってるかどうか確認したかったんですけど、例えば何も考えずにこんなようなスクリプトを書いて

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colServiceList = objWMIService.ExecQuery _
("Select * from Win32_Service where DisplayName = 'DHCP Client'")

For Each objService in colServiceList
If objService.State = "Running" Then
objService.StopService
WScript.Sleep 20000
Else
End If

If objService.State <> "Stopped" Then
MsgBox "止まってねーよバカ"
Else
MsgBox "あっそう、良かったね"
End If
Next

実際にちゃんとサービスが止まっていても、

バカ言われてちょっと悩んだんですけど、SWbemRefresher オブジェクトを使おうとしたら Windows 2000 では使えないし、スマートじゃないけど仕方ないのでオブジェクトを初期化 & 再取得して解決。他にもちょっと気になる部分があるんだけど、明日には何とかできると良いんですが。