こんにちは、ジンです。
今回はVBScriptを使って、PCが万が一ネットワークに接続できなくなった場合、PCを再起動するVBScriptのサンプルを書いておきます。最近会社のPCがなんかの拍子で急にネットワークにつながらなくなることがあり、再起動しないと復旧しないのでこんなものを作りました。会社外からリモートで操作できなくなっては仕事ができないので(笑)これをタスクマネージャーに仕込んで、30分に一回でも起動するようにしておけば何とかなりそうです。
サンプルではpingを送信して返って来なかったらPCを再起動するようにしています。「www.ocn.ne.jp」の部分は好きなアドレス(pingを返してくれるアドレス)に変更して使います。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
| Dim objWMIService
Dim PingSet
Dim Ping
Dim objShut
Dim objOS
Dim objSystem
Set objWMIService = GetObject("winmgmts:\\.")
Set PingSet = objWMIService.ExecQuery _
("Select * From Win32_PingStatus Where Address = 'www.ocn.ne.jp'")
For Each Ping In PingSet
Select Case Ping.StatusCode
Case 0
checkPing = True
Case 11010
checkPing = False
End Select
Next
If checkPing = False Then
Set objShut = GetObject("winmgmts:{impersonationLevel = impersonate, (Shutdown)}")
Set objOS = objShut.InstancesOf("Win32_OperatingSystem")
For Each objSystem In objOS
objSystem.Win32Shutdown 2
Next
End If |
Dim objWMIService
Dim PingSet
Dim Ping
Dim objShut
Dim objOS
Dim objSystem
Set objWMIService = GetObject("winmgmts:\\.")
Set PingSet = objWMIService.ExecQuery _
("Select * From Win32_PingStatus Where Address = 'www.ocn.ne.jp'")
For Each Ping In PingSet
Select Case Ping.StatusCode
Case 0
checkPing = True
Case 11010
checkPing = False
End Select
Next
If checkPing = False Then
Set objShut = GetObject("winmgmts:{impersonationLevel = impersonate, (Shutdown)}")
Set objOS = objShut.InstancesOf("Win32_OperatingSystem")
For Each objSystem In objOS
objSystem.Win32Shutdown 2
Next
End If