[リダイレクトを設定する(IIS 6.0)]
IISのリダイレクト先を設定(または変更)します。
リモート操作する場合は、操作するPCにもIISのコンポーネント(共通コンポーネントだけあれば良いです)が必要です。
【ソースコード】
[tips0193.vbs]
Option Explicit
On Error Resume Next
Dim objService
Dim strServerName
Dim strServiceName
Dim strADSIObjName
Dim strRedirectStatus
Dim strRedirectUrl
Dim strWMIPath
Dim objWMIService
Dim objCollection
Dim objItem
Dim strWebRootName
Dim blnRetCode
blnRetCode = True
strServerName = "localhost"
strServiceName = "既定の Web サイト"
strRedirectUrl = "http://www.yahoo.co.jp/"
strRedirectStatus = "STOP"
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 & "/ROOT"
WScript.Echo strADSIObjName
Set objService = GetObject(strADSIObjName)
If Not objService Is Nothing Then
If strRedirectStatus = "START" Then
objService.PutEx 1, "HttpRedirect", ""
WScript.Echo "リダイレクトを停止しました(" & strServiceName & ")"
Else
objService.HttpRedirect = strRedirectUrl & ", EXACT_DESTINATION"
WScript.Echo "リダイレクトを設定しました(" & strServiceName & ")(" & strRedirectUrl & ")"
End If
objService.SetInfo
Else
WScript.Echo "サービスに接続できませんでした(" & strADSIObjName & ")"
blnRetCode = False
End If
End If
Set objService = Nothing
Set objCollection = Nothing
Set objWMIService = Nothing
【実行結果】
C:\> cscript //NoLogo tips0193.vbs
IIS://localhost/W3SVC/1/ROOT
リダイレクトを設定しました(既定の Web サイト)(http://www.yahoo.co.jp/)