VBScriptでWindowsサービスの停止と開始をするサンプルです。
Windowsサービスとは
Microsoft Windows オペレーティングシステム (OS) で長時間動作し、ユーザーとのやりとり無しで特定機能を実行するものである。
まずは停止です。
Option Explicit 'WMIにて使用する各種オブジェクトを定義・生成する。 Dim oClassSet Dim oClass Dim oLocator Dim oService Dim sMesStr Dim lRet Dim serviceName 'ここにサービス名を書く。 serviceName = "WSearch" 'ローカルコンピュータに接続する。 Set oLocator = WScript.CreateObject("WbemScripting.SWbemLocator") Set oService = oLocator.ConnectServer 'クエリー条件を WQL にて指定する。 Dim query query = "Select * From Win32_Service Where Name='" & serviceName & "'" msgbox query Set oClassSet = oService.ExecQuery(query) 'コレクションを解析する。 For Each oClass In oClassSet lRet = oClass.StopService() Next If lRet = 0 Then MsgBox "サービスの停止に成功しました。" Else MsgBox "サービスの停止に失敗しました。" End If '使用した各種オブジェクトを後片付けする。 Set oClassSet = Nothing Set oClass = Nothing Set oService = Nothing Set oLocator = Nothing
続いて、開始です。
Option Explicit 'WMIにて使用する各種オブジェクトを定義・生成する。 Dim oClassSet Dim oClass Dim oLocator Dim oService Dim sMesStr Dim lRet Dim serviceName 'ここにサービス名を書く。 serviceName = "WSearch" 'ローカルコンピュータに接続する。 Set oLocator = WScript.CreateObject("WbemScripting.SWbemLocator") Set oService = oLocator.ConnectServer 'クエリー条件を WQL にて指定する。 Dim query query = "Select * From Win32_Service Where Name='" & serviceName & "'" msgbox query Set oClassSet = oService.ExecQuery(query) 'コレクションを解析する。 For Each oClass In oClassSet lRet = oClass.StartService() Next If lRet = 0 Then MsgBox "サービスの開始に成功しました。" Else MsgBox "サービスの開始に失敗しました。" End If '使用した各種オブジェクトを後片付けする。 Set oClassSet = Nothing Set oClass = Nothing Set oService = Nothing Set oLocator = Nothing
違いとしては、oClassに対しコマンドがStartService、StopServiceなのかだけです。
ちなみにサービス名を確認する方法は下記です。
コントローラパネル→管理ツール→サービスを起動し、対象のサービスの行を右クリックプロパティを表示し、サービス名と書かれているところが該当します。