You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
274 lines
9.5 KiB
274 lines
9.5 KiB
<%@ Language=VBScript %>
|
|
<% Option Explicit
|
|
'-------------------------------------------------------------------------
|
|
' service_dispatch.asp This is the customised page which acts as a
|
|
' intemediate page for redirecting to respective pages
|
|
' (with task that to be done)
|
|
'
|
|
' Copyright (c) Microsoft Corporation. All rights reserved.
|
|
'
|
|
' Date Description
|
|
' 09 Aug 2000 Creation Date
|
|
' 15 mar 2001 Creation Date
|
|
'-------------------------------------------------------------------------
|
|
%>
|
|
<!-- #include virtual="/admin/inc_framework.asp" -->
|
|
<!-- #include file="loc_services.asp" -->
|
|
<%
|
|
'-------------------------------------------------------------------------
|
|
'Global Variables
|
|
'-------------------------------------------------------------------------
|
|
Dim G_strURL 'url obtained
|
|
Dim G_strPageType 'page type to get from registry
|
|
Dim G_FlagNotDisable 'flag value for not disable key
|
|
Dim G_arrPkeyvalue 'pkey array
|
|
Dim G_strPkeyValue 'pKey value
|
|
Dim G_PageTitle 'page title on browser that has to be passed through query string
|
|
|
|
Const CONST_SERVICES_CONTAINER = "SERVICES"
|
|
Const CONST_FLAGNOTDISABLE = 1 'notdisable reg key value - service cannot disable
|
|
|
|
G_arrPkeyvalue = split(Request.QueryString("Pkey") ,"~")
|
|
G_strPkeyValue = G_arrPkeyvalue(0)
|
|
|
|
'to get url,page type from registry
|
|
Call GetServicePropertyURL(G_strPkeyValue, G_strURL, G_strPageType)
|
|
G_strURL = m_VirtualRoot + G_strURL
|
|
|
|
'page url is set and redirecting to the respective page depending on the request
|
|
Call setPageURL()
|
|
|
|
'-------------------------------------------------------------------------
|
|
' Function name: setPageURL
|
|
' Description: page url is set and redirecting to the respective
|
|
' page depending on the request
|
|
' Input Variables: None
|
|
' Output Variables: None
|
|
' Return Values: None
|
|
' Global Variables: strReturnUrl,strPageRedirectURL
|
|
'-------------------------------------------------------------------------
|
|
Sub setPageURL()
|
|
|
|
Dim strPkeyvalue 'pkey value
|
|
Dim strReturnUrl 'return url
|
|
|
|
Dim tab1 'tab1
|
|
Dim tab2 'tab2
|
|
|
|
'getting tab 1 and tab2 values
|
|
tab1 = GetTab1()
|
|
tab2 = GetTab2()
|
|
|
|
'obtaining qurystring variables
|
|
strPkeyvalue = G_strPkeyValue
|
|
|
|
|
|
'return url obtained from previous page- query string
|
|
strReturnUrl = Request.QueryString("ReturnUrl")
|
|
|
|
Call SA_MungeURL(strReturnUrl, "service", "")
|
|
|
|
'properties page -- on clicking properties page
|
|
'Frame set url
|
|
If ( 0 = StrComp(UCase(G_strPageType), "FRAMESET", vbTextCompare)) Then
|
|
Dim strFrameSetURL
|
|
|
|
' URL for requested page
|
|
If ( Len(strPkeyvalue ) > 0 ) Then
|
|
Call SA_MungeURL(G_strURL, "PKey", strPkeyvalue)
|
|
End If
|
|
|
|
Call SA_MungeURL(G_strURL, SAI_FLD_PAGEKEY, SAI_GetPageKey())
|
|
|
|
'
|
|
' Frameset for this page
|
|
|
|
strFrameSetURL = m_VirtualRoot + "sh_taskframes.asp"
|
|
|
|
'appending the title to the url
|
|
Call SA_MungeURL(strFrameSetURL, "Title", G_PageTitle)
|
|
|
|
Call SA_MungeURL(strFrameSetURL, "URL", G_strURL)
|
|
|
|
If ( Len(tab1) > 0 ) Then
|
|
Call SA_MungeURL(strFrameSetURL, "Tab1", tab1)
|
|
End If
|
|
|
|
If ( Len(tab2) > 0 ) Then
|
|
Call SA_MungeURL(strFrameSetURL, "Tab2", tab2)
|
|
End If
|
|
|
|
Call SA_MungeURL(strFrameSetURL, "ReturnUrl", strReturnUrl)
|
|
Call SA_MungeURL(strFrameSetURL, SAI_FLD_PAGEKEY, SAI_GetPageKey())
|
|
|
|
SA_TraceOut "SERVICE_DISPATCH", "Redirect to frameset URL: " + strFrameSetURL
|
|
|
|
'redirecting to properties page
|
|
Response.Redirect ( strFrameSetURL )
|
|
Else
|
|
'appending the title to the url
|
|
Call SA_MungeURL(G_strURL, "Title", G_PageTitle)
|
|
|
|
Call SA_MungeURL(G_strURL, "PKey", strPkeyvalue)
|
|
SA_TraceOut "SERVICE_DISPATCH", "Redirect to normal page URL: " + G_strURL
|
|
|
|
'adding the return url content
|
|
Call SA_MungeURL(G_strURL, "ReturnUrl", strReturnUrl)
|
|
|
|
Call SA_MungeURL(G_strURL, SAI_FLD_PAGEKEY, SAI_GetPageKey())
|
|
|
|
'redirecting to no properties page --when there no configuration properties for the selected service
|
|
Response.Redirect( G_strURL )
|
|
End If
|
|
|
|
End Sub
|
|
|
|
'-------------------------------------------------------------------------
|
|
' Function name: IsSameElementID
|
|
' Description: Compares 2 service names and returns true if they are
|
|
' same else false
|
|
' Input Variables: sElementID1 - System Service
|
|
' sElementID2 - Manged service
|
|
' Output Variables: None
|
|
' Return Values: True if equals else false
|
|
' Global Variables: None
|
|
'-------------------------------------------------------------------------
|
|
Function IsSameElementID(ByVal sElementID1, ByVal sElementID2)
|
|
Err.Clear
|
|
on error resume next
|
|
|
|
Dim s1, s2
|
|
s1 = LCase(Trim(sElementID1))
|
|
s2 = LCase(Trim(sElementID2))
|
|
IsSameElementID = CBool(s1 = s2)
|
|
|
|
End Function
|
|
|
|
'-------------------------------------------------------------------------
|
|
' Function name: GetServicePropertyURL
|
|
' Description: Serves in getting the Service URL from Registry.
|
|
' Input Variables: strServiceName,strServicePropURL,G_strPageType
|
|
' Output Variables: strServicePropURL,G_strPageType
|
|
' Return Values: None
|
|
' Global Variables: 1/0
|
|
'-------------------------------------------------------------------------
|
|
Function GetServicePropertyURL(ByVal strServiceName, ByRef strServicePropURL, ByRef G_strPageType)
|
|
|
|
Dim sElementID 'element id
|
|
Dim objElement 'element object
|
|
Dim objManagedServices 'services obtained from registry
|
|
|
|
Err.Clear
|
|
on error resume next
|
|
|
|
GetServicePropertyURL = 0
|
|
|
|
strServicePropURL = ""
|
|
Set objManagedServices = SA_GetElements(CONST_SERVICES_CONTAINER)
|
|
|
|
For Each objElement In objManagedServices
|
|
sElementID = objElement.GetProperty("ServiceName")
|
|
If IsSameElementID(sElementID, strServiceName) Then
|
|
strServicePropURL = objElement.GetProperty("URL")
|
|
G_strPageType = objElement.GetProperty("PageType")
|
|
If ( Err.Number <> 0 ) Then
|
|
SA_TraceOut "SERVICE_DISPATCH", "GetServicePropertyURL encountered error: " + CStr(Hex(Err.Number))
|
|
End If
|
|
GetServicePropertyURL = 1
|
|
'getting the flag for cannot disable the service
|
|
G_FlagNotDisable = objElement.GetProperty("NotDisable")
|
|
'getting the title
|
|
G_PageTitle = SA_GetLocString(objElement.GetProperty("Source"), objElement.GetProperty("ServiceNameRID"), "") & " " & L_TASKTITLE_TEXT
|
|
Exit For
|
|
End If
|
|
|
|
Next
|
|
|
|
Set objManagedServices = nothing
|
|
|
|
If GetServicePropertyURL <> 1 Then
|
|
SA_TraceOut "SERVICE_DISPATCH", "Cound not locate Service Specific URL for service: " + strServiceName
|
|
End If
|
|
|
|
End Function
|
|
|
|
'-------------------------------------------------------------------------
|
|
' Function name: GetServiceState
|
|
' Description: Serves in getting the Service status
|
|
' Input Variables: strServiceName
|
|
' Output Variables: None
|
|
' Return Values: Returns the state of the service
|
|
' Global Variables: None
|
|
'-------------------------------------------------------------------------
|
|
Function GetServiceState(strServicename)
|
|
Err.Clear
|
|
On Error Resume Next
|
|
|
|
Dim objService 'services list
|
|
Dim strWMIPath 'wmi path
|
|
Dim objWMIService 'wmi object
|
|
|
|
GetServiceState = ""
|
|
|
|
strWMIPath = "Win32_Service.Name=" & chr(34) & strServicename & chr(34)
|
|
|
|
'connecting to WMI
|
|
Set objWMIService = GetWMIConnection(CONST_WMI_WIN32_NAMESPACE)
|
|
If ( Err.Number <> 0 ) Then
|
|
Call SA_TraceOut(SA_GetScriptFileName(), "WMI Connection error: " & Hex(Err.Number) & " " & Err.Description)
|
|
Exit Function
|
|
End If
|
|
set objService = objWMIService.get(strWMIPath)
|
|
If ( Err.Number <> 0 ) Then
|
|
Call SA_TraceOut(SA_GetScriptFileName(), "WMI.get(" & strWMIPath & " ) error: " & Hex(Err.Number) & " " & Err.Description)
|
|
Exit Function
|
|
End If
|
|
|
|
GetServiceState = objService.StartMode
|
|
If ( Err.Number <> 0 ) Then
|
|
Call SA_TraceOut(SA_GetScriptFileName(), "objService.StartMode error: " & Hex(Err.Number) & " " & Err.Description)
|
|
Exit Function
|
|
End If
|
|
|
|
Set objService = Nothing
|
|
Set objWMIService = Nothing
|
|
End Function
|
|
|
|
'-------------------------------------------------------------------------
|
|
' Function name: CheckServiceStatus
|
|
' Description: Serves in getting the Service status
|
|
' Input Variables: strRequest,strService
|
|
' Output Variables: None
|
|
' Return Values: True- when present service status is the same as requested.
|
|
' False- when present service status is not the same as requested.
|
|
' Global Variables: None
|
|
'-------------------------------------------------------------------------
|
|
Function CheckServiceStatus(Byval strRequest,Byval strService)
|
|
|
|
Dim strServiceStatus 'service state variable
|
|
|
|
Const CONST_ENABLE = "Enable"
|
|
Const CONST_DISABLE = "Disable"
|
|
Const CONST_AUTO = "Auto"
|
|
Const CONST_DISABLED = "Disabled"
|
|
|
|
'services status is obtained by given input
|
|
If lcase(strRequest) = lcase(CONST_ENABLE) then
|
|
strRequest = CONST_AUTO
|
|
Else IF lcase(strRequest) = lcase(CONST_DISABLE) then
|
|
strRequest = CONST_DISABLED
|
|
End IF
|
|
End If
|
|
|
|
'gets the service state
|
|
strServiceStatus = GetServiceState(strService)
|
|
|
|
'check if the present service status is the same as requested.
|
|
If lcase(strRequest) = lcase(strServiceStatus) then
|
|
CheckServiceStatus = True
|
|
Else
|
|
CheckServiceStatus = False
|
|
End if
|
|
|
|
End Function
|
|
%>
|