[Webサイトを開始する(IIS 6.0)]
Webサイトを開始します。
リモート操作する場合は、操作するPCにもIISのコンポーネント(共通コンポーネントだけあれば良いです)が必要です。
【ソースコード】
[tips0191.vbs]
Option Explicit
On Error Resume Next
Dim objService
Dim strServerName
Dim strServiceName
Dim strADSIObjName
Dim strWMIPath
Dim objWMIService
Dim objCollection
Dim objItem
Dim strWebRootName
Dim blnRetCode
blnRetCode = True
strServerName = "localhost"
strServiceName = "既定の Web サイト"
WScript.Echo "サーバー:" & strServerName
WScript.Echo "Webサイト:" & strServiceName
strWMIPath = "winmgmts:{authenticationLevel=pktPrivacy}\\.\root\microsoftiisv2"
Set objWMIService = GetObject(strWMIPath)
If Err.Number = 0 Then
strWebRootName = ""
Set objCollection = objWMIService.ExecQuery("Select * From IISWebServerSetting Where ServerComment = '" & strServiceName & "'")
If Err.Number = 0 Then
For Each objItem in objCollection
strWebRootName = objItem.Name
Next
End If
If strWebRootName = "" Then
WScript.Echo "サービス名称が見つかりませんでした。(" & strServiceName & ")"
blnRetCode = False
End If
Else
WScript.Echo "サーバー番号が取得できませんでした。"
blnRetCode = False
End If
If blnRetCode <> False Then
strADSIObjName = "IIS://" & strServerName & "/" & strWebRootName
Set objService = GetObject(strADSIObjName)
If Not objService Is Nothing Then
If objService.ServerState = 4 Then
objService.Start
If Err.Number = 0 Then
WScript.Echo " 開始しました。"
Else
WScript.Echo " 開始できませんでした。(" & Err.Description & ")"
End If
Else
WScript.Echo " 既に開始しています。"
End If
Else
WScript.Echo "サービスに接続できませんでした(" & strADSIObjName & ")"
blnRetCode = False
End If
End If
Set objService = Nothing
Set objCollection = Nothing
Set objWMIService = Nothing
【実行結果】
C:\> cscript //NoLogo tips0191.vbs
サーバー:localhost
Webサイト:既定の Web サイト
開始しました。