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.
966 lines
34 KiB
966 lines
34 KiB
'
|
|
' Copyright (c) Microsoft Corporation. All rights reserved.
|
|
'
|
|
' VBScript Source File
|
|
'
|
|
' Script Name: IIsExt.vbs
|
|
'
|
|
|
|
Option Explicit
|
|
On Error Resume Next
|
|
|
|
' Error codes
|
|
Const ERR_OK = 0
|
|
Const ERR_GENERAL_FAILURE = 1
|
|
|
|
'''''''''''''''''''''
|
|
' Messages
|
|
Const L_NotEnoughParams_ErrorMessage = "Not enough parameters."
|
|
Const L_InvalidSwitch_ErrorMessage = "Invalid switch: %1"
|
|
Const L_CmdLib_ErrorMessage = "Could not create an instance of the CmdLib object."
|
|
Const L_ChkCmdLibReg_ErrorMessage = "Please register the Microsoft.CmdLib component."
|
|
Const L_ScriptHelper_ErrorMessage = "Could not create an instance of the IIsScriptHelper object."
|
|
Const L_ChkScpHelperReg_ErrorMessage = "Please, check if the Microsoft.IIsScriptHelper is registered."
|
|
Const L_OnlyOneOper_ErrorMessage = "Please specify only one operation at a time."
|
|
Const L_PassWithoutUser_ErrorMessage = "Please specify /u switch before using /p."
|
|
Const L_WMIConnect_ErrorMessage = "Could not connect to WMI provider."
|
|
Const L_Error_ErrorMessage = "Error &H%1: %2"
|
|
Const L_Admin_ErrorMessage = "You cannot run this command because you are not an"
|
|
Const L_Adminp2_ErrorMessage = "administrator on the server you are trying to configure."
|
|
Const L_GetWebSvcObj_ErrorMessage = "Could not get web service object"
|
|
Const L_EnApp_ErrorMessage = "Error while configuring application or extension."
|
|
Const L_NoApp_ErrorMessage = "The specified application does not exist in the application"
|
|
Const L_NoAppp2_ErrorMessage = "dependencies list."
|
|
Const L_NoDep_ErrorMessage = "The specified application-extension relationship does not"
|
|
Const L_NoDepp2_ErrorMessage = "exist in the application dependencies list."
|
|
Const L_NoExt_ErrorMessage = "The extension does not exist in the restriction list."
|
|
Const L_NoEfi_ErrorMessage = "The extension file does not exist in the restriction list."
|
|
|
|
Const L_EnDep_ErrorMessage = "Error while configuring dependency."
|
|
Const L_ShowList_ErrorMessage = "Error while showing list. Please confirm that the"
|
|
Const L_ShowList2_ErrorMessage = "WebSvcExtRestrictionList and ApplicationDependencies"
|
|
Const L_ShowList3_ErrorMessage = "properties exist and are set on the W3SVC node."
|
|
Const L_RmEfi_ErrorMessage = "Error trying to delete extension. Make sure it exists"
|
|
Const L_RmEfip2_ErrorMessage = "and is deletable."
|
|
Const L_EnAppComplete_Message = "Enabling application complete."
|
|
Const L_AddDpComplete_Message = "Adding dependency complete."
|
|
Const L_RemDpComplete_Message = "Removing dependency complete."
|
|
Const L_EnExtComplete_Message = "Enabling extension complete."
|
|
Const L_DsExtComplete_Message = "Disabling extension complete."
|
|
Const L_DsEFiComplete_Message = "Disabling extension file complete."
|
|
Const L_EnEFiComplete_Message = "Enabling extension file complete."
|
|
Const L_AdEFiComplete_Message = "Adding extension file complete."
|
|
Const L_RmEFiComplete_Message = "Deleting extension file complete."
|
|
Const L_ShowListFile_Message = "Status / Extension Path"
|
|
Const L_ShowListFile2_Message = "------------------------"
|
|
'''''''''''''''''''''
|
|
' Help
|
|
Const L_Empty_Text = ""
|
|
|
|
' General help messages
|
|
Const L_SeeHelp_Message = "Type IIsExt /? for help."
|
|
|
|
Const L_Help_HELP_General01_Text = "Description: Manages Web Service Extensions."
|
|
Const L_Help_HELP_General02_Text = "Syntax: IIsExt [/s <server> [/u <username> [/p <password>]]]"
|
|
Const L_Help_HELP_General02a_Text = " [/ListExt | /ListApp | /AddDep | /DisExt"
|
|
Const L_Help_HELP_General03_Text = " /EnExt | /RmDep | /EnApp | /EnFile | /DisFile"
|
|
Const L_Help_HELP_General04_Text = " /AddFile | /ListFile | /RmFile] <args>"
|
|
Const L_Help_HELP_General05_Text = "Switches:"
|
|
Const L_Help_HELP_General06_Text = "Value Description"
|
|
Const L_Help_HELP_General06a_Text = "/s <server> Connect to machine <server>."
|
|
Const L_Help_HELP_General06b_Text = " [Default: this system]"
|
|
Const L_Help_HELP_General06c_Text = "/u <username> Connect as <domain>\<username> or"
|
|
Const L_Help_HELP_General06d_Text = " <username>. [Default: current user]"
|
|
Const L_Help_HELP_General06e_Text = "/p <password> Password for the <username> user."
|
|
Const L_Help_HELP_General07_Text = "/EnApp <appname> Enables an application in the"
|
|
Const L_Help_HELP_General07a_Text = " application dependencies list."
|
|
Const L_Help_HELP_General08_Text = "/ListApp Lists the applications in the"
|
|
Const L_Help_HELP_General08a_Text = " application dependencies list."
|
|
Const L_Help_HELP_General09_Text = "/AddDep <appname> <ID> [<ID> ...]"
|
|
Const L_Help_HELP_General09a_Text = " Adds a dependency between an"
|
|
Const L_Help_HELP_General09b_Text = " application in the application"
|
|
Const L_Help_HELP_General09c_Text = " dependencies list and a Web Service"
|
|
Const L_Help_HELP_General09d_Text = " Extension ID."
|
|
Const L_Help_HELP_General10_Text = "/RmDep <appname> <ID> [<ID> ...]"
|
|
Const L_Help_HELP_General10a_Text = " Removes a dependency between an"
|
|
Const L_Help_HELP_General10b_Text = " application in the application"
|
|
Const L_Help_HELP_General10c_Text = " dependencies list and a Web Service"
|
|
Const L_Help_HELP_General10d_Text = " Extension ID."
|
|
Const L_Help_HELP_General11_Text = "/EnExt <ID> Enables all files for a Web Service"
|
|
Const L_Help_HELP_General11a_Text = " Extension with the specified Web"
|
|
Const L_Help_HELP_General11b_Text = " Service Extension ID."
|
|
Const L_Help_HELP_General12_Text = "/DisExt <ID> Disables all files for a Web Service"
|
|
Const L_Help_HELP_General12a_Text = " Extension with the specified Web"
|
|
Const L_Help_HELP_General12b_Text = " Service Extension ID."
|
|
Const L_Help_HELP_General13_Text = "/ListExt Lists Web Service Extension IDs for"
|
|
Const L_Help_HELP_General13a_Text = " all defined Web Service Extensions."
|
|
Const L_Help_HELP_General14_Text = "/EnFile <filename> Enables a single file in the"
|
|
Const L_Help_HELP_General14a_Text = " restriction list."
|
|
Const L_Help_HELP_General15_Text = "/DisFile <filename> Disables a single file in the"
|
|
Const L_Help_HELP_General15a_Text = " restriction list."
|
|
Const L_Help_HELP_General16_Text = "/ListFile Lists all the files in the"
|
|
Const L_Help_HELP_General16a_Text = " restriction list."
|
|
Const L_Help_HELP_General17_Text = "/RmFile <filename> Removes a file from the restriction"
|
|
Const L_Help_HELP_General17a_Text = " list if it is deletable."
|
|
Const L_Help_HELP_General18_Text = "/AddFile <args> Adds a file to the restriction list."
|
|
Const L_Help_HELP_General19_Text = "/AddFile /? Displays help for the /AddFile flag."
|
|
|
|
Const L_Help_HELP_AddFile01_Text = "Description: Adds a file to the restriction list."
|
|
Const L_Help_HELP_AddFile02_Text = "Syntax: IIsExt [/s <server> [/u <username> [/p <password>]]]"
|
|
Const L_Help_HELP_AddFile02a_Text = " /AddFile <filepath> <access> <ID> <deleteable>"
|
|
Const L_Help_HELP_AddFile03_Text = " <ShortDesc>"
|
|
Const L_Help_HELP_AddFile07_Text = "<filepath> The fully qualified path to the dll"
|
|
Const L_Help_HELP_AddFile08_Text = " or exe, including the filename and"
|
|
Const L_Help_HELP_AddFile09_Text = " extension. Special cases include"
|
|
Const L_Help_HELP_AddFile09a_Text = " *.dll to enable/disable unlisted"
|
|
Const L_Help_HELP_AddFile09b_Text = " ISAPI's and *.exe to enable/disable"
|
|
Const L_Help_HELP_AddFile09c_Text = " unlisted CGI's."
|
|
Const L_Help_HELP_AddFile10_Text = "<access> Set this to 0 to disable or 1 to"
|
|
Const L_Help_HELP_AddFile10a_Text = " enable the file after it is added."
|
|
Const L_Help_HELP_AddFile11_Text = "<ID> This ID is an arbitrary identifier"
|
|
Const L_Help_HELP_AddFile11a_Text = " that identifies the Web Service"
|
|
Const L_Help_HELP_AddFile11b_Text = " Extension the file is associated with."
|
|
Const L_Help_HELP_AddFile12_Text = " There can be one or more files for"
|
|
Const L_Help_HELP_AddFile12a_Text = " each Web Service Extension"
|
|
Const L_Help_HELP_AddFile13_Text = "<deletable> Set this to 0 to prevent this file"
|
|
Const L_Help_HELP_AddFile13a_Text = " from being deleted from the restriction"
|
|
Const L_Help_HELP_AddFile14_Text = " list or 1 to allow this file to be"
|
|
Const L_Help_HELP_AddFile14a_Text = " deleted from the restriction list."
|
|
Const L_Help_HELP_AddFile15_Text = "<ShortDesc> This is a brief text description of"
|
|
Const L_Help_HELP_AddFile15a_Text = " the Web Service Extension the file is"
|
|
Const L_Help_HELP_AddFile16_Text = " associated with. Files with the same"
|
|
Const L_Help_HELP_AddFile16a_Text = " ID should also have the same ShortDesc."
|
|
|
|
''''''''''''''''''''''''
|
|
' Operation codes
|
|
Const OPER_ENAPP = 1
|
|
Const OPER_ADDDP = 3
|
|
Const OPER_REMDP = 4
|
|
Const OPER_ENEXT = 5
|
|
Const OPER_DSEXT = 6
|
|
Const OPER_ENEFI = 7
|
|
Const OPER_DSEFI = 8
|
|
Const OPER_ADEFI = 9
|
|
Const OPER_RMEFI = 10
|
|
Const OPER_LSAPP = 11
|
|
Const OPER_LSEXT = 12
|
|
Const OPER_LSEFI = 13
|
|
|
|
'
|
|
' Main block
|
|
'
|
|
Dim oScriptHelper, oCmdLib
|
|
Dim intResult, intOperation
|
|
Dim strServer, strUser, strPassword
|
|
Dim strCmdLineOptions, strAppName
|
|
Dim oError, aArgs
|
|
|
|
' Default values
|
|
strServer = "."
|
|
strUser = ""
|
|
strPassword = ""
|
|
intOperation = 0
|
|
|
|
' Instantiate the CmdLib for output string formatting
|
|
Set oCmdLib = CreateObject("Microsoft.CmdLib")
|
|
If Err.Number <> 0 Then
|
|
WScript.Echo L_CmdLib_ErrorMessage
|
|
WScript.Echo L_ChkCmdLibReg_ErrorMessage
|
|
WScript.Quit(ERR_GENERAL_FAILURE)
|
|
End If
|
|
Set oCmdLib.ScriptingHost = WScript.Application
|
|
|
|
' Instantiate script helper object
|
|
Set oScriptHelper = CreateObject("Microsoft.IIsScriptHelper")
|
|
If Err.Number <> 0 Then
|
|
WScript.Echo L_ScriptHelper_ErrorMessage
|
|
WScript.Echo L_ChkScpHelperReg_ErrorMessage
|
|
WScript.Quit(ERR_GENERAL_FAILURE)
|
|
End If
|
|
|
|
Set oScriptHelper.ScriptHost = WScript
|
|
|
|
' Check if we are being run with cscript.exe instead of wscript.exe
|
|
oScriptHelper.CheckScriptEngine
|
|
|
|
' Command Line parsing
|
|
Dim argObj, arg
|
|
Set argObj = WScript.Arguments
|
|
|
|
strCmdLineOptions = "[server:s:1;user:u:1;password:p:1];enapp::1;listapp::0;adddep::n;" &_
|
|
"rmdep::n;enext::1;disext::n;listext::0;enfile::1;disfile::1;addfile::5;" &_
|
|
"rmfile::1;listfile::0"
|
|
|
|
Set oError = oScriptHelper.ParseCmdLineOptions(strCmdLineOptions)
|
|
|
|
If Not oError Is Nothing Then
|
|
If oError.ErrorCode = oScriptHelper.ERROR_NOT_ENOUGH_ARGS Then
|
|
' Not enough arguments for a specified switch
|
|
WScript.Echo L_NotEnoughParams_ErrorMessage
|
|
WScript.Echo L_SeeHelp_Message
|
|
Else
|
|
' Invalid switch
|
|
oCmdLib.vbPrintf L_InvalidSwitch_ErrorMessage, Array(oError.SwitchName)
|
|
WScript.Echo L_SeeHelp_Message
|
|
End If
|
|
|
|
WScript.Quit(ERR_GENERAL_FAILURE)
|
|
End If
|
|
|
|
If oScriptHelper.GlobalHelpRequested Then
|
|
DisplayHelpMessage
|
|
WScript.Quit(ERR_OK)
|
|
End If
|
|
|
|
For Each arg In oScriptHelper.Switches
|
|
Select Case arg
|
|
|
|
Case "server"
|
|
' Server information
|
|
strServer = oScriptHelper.GetSwitch(arg)
|
|
|
|
Case "user"
|
|
' User information
|
|
strUser = oScriptHelper.GetSwitch(arg)
|
|
|
|
Case "password"
|
|
' Password information
|
|
strPassword = oScriptHelper.GetSwitch(arg)
|
|
|
|
Case "enapp"
|
|
If (intOperation <> 0) Then
|
|
WScript.Echo L_OnlyOneOper_ErrorMessage
|
|
WScript.Echo L_SeeHelp_Message
|
|
WScript.Quit(ERR_GENERAL_FAILURE)
|
|
End If
|
|
|
|
intOperation = OPER_ENAPP
|
|
|
|
If oScriptHelper.IsHelpRequested(arg) Then
|
|
' display enapp specific help
|
|
End If
|
|
|
|
strAppName = oScriptHelper.GetSwitch(arg)
|
|
|
|
Case "adddep"
|
|
If (intOperation <> 0) Then
|
|
WScript.Echo L_OnlyOneOper_ErrorMessage
|
|
WScript.Echo L_SeeHelp_Message
|
|
WScript.Quit(ERR_GENERAL_FAILURE)
|
|
End If
|
|
|
|
intOperation = OPER_ADDDP
|
|
|
|
If oScriptHelper.IsHelpRequested(arg) Then
|
|
' display enapp specific help
|
|
End If
|
|
|
|
aArgs = oScriptHelper.GetSwitch(arg)
|
|
|
|
If UBound(aArgs) = -1 Then
|
|
WScript.Echo L_NotEnoughParams_ErrorMessage
|
|
WScript.Echo L_SeeHelp_Message
|
|
WScript.Quit(ERR_GENERAL_FAILURE)
|
|
End If
|
|
|
|
Case "rmdep"
|
|
If (intOperation <> 0) Then
|
|
WScript.Echo L_OnlyOneOper_ErrorMessage
|
|
WScript.Echo L_SeeHelp_Message
|
|
WScript.Quit(ERR_GENERAL_FAILURE)
|
|
End If
|
|
|
|
intOperation = OPER_REMDP
|
|
|
|
If oScriptHelper.IsHelpRequested(arg) Then
|
|
' display enapp specific help
|
|
End If
|
|
|
|
aArgs = oScriptHelper.GetSwitch(arg)
|
|
|
|
If UBound(aArgs) = -1 Then
|
|
WScript.Echo L_NotEnoughParams_ErrorMessage
|
|
WScript.Echo L_SeeHelp_Message
|
|
WScript.Quit(ERR_GENERAL_FAILURE)
|
|
End If
|
|
|
|
Case "enext"
|
|
If (intOperation <> 0) Then
|
|
WScript.Echo L_OnlyOneOper_ErrorMessage
|
|
WScript.Echo L_SeeHelp_Message
|
|
WScript.Quit(ERR_GENERAL_FAILURE)
|
|
End If
|
|
|
|
intOperation = OPER_ENEXT
|
|
|
|
If oScriptHelper.IsHelpRequested(arg) Then
|
|
' display enapp specific help
|
|
End If
|
|
|
|
strAppName = oScriptHelper.GetSwitch(arg)
|
|
|
|
Case "disfile"
|
|
If (intOperation <> 0) Then
|
|
WScript.Echo L_OnlyOneOper_ErrorMessage
|
|
WScript.Echo L_SeeHelp_Message
|
|
WScript.Quit(ERR_GENERAL_FAILURE)
|
|
End If
|
|
|
|
intOperation = OPER_DSEFI
|
|
|
|
If oScriptHelper.IsHelpRequested(arg) Then
|
|
' display enapp specific help
|
|
End If
|
|
|
|
strAppName = oScriptHelper.GetSwitch(arg)
|
|
|
|
Case "enfile"
|
|
If (intOperation <> 0) Then
|
|
WScript.Echo L_OnlyOneOper_ErrorMessage
|
|
WScript.Echo L_SeeHelp_Message
|
|
WScript.Quit(ERR_GENERAL_FAILURE)
|
|
End If
|
|
|
|
intOperation = OPER_ENEFI
|
|
|
|
If oScriptHelper.IsHelpRequested(arg) Then
|
|
' display enapp specific help
|
|
End If
|
|
|
|
strAppName = oScriptHelper.GetSwitch(arg)
|
|
|
|
Case "disext"
|
|
If (intOperation <> 0) Then
|
|
WScript.Echo L_OnlyOneOper_ErrorMessage
|
|
WScript.Echo L_SeeHelp_Message
|
|
WScript.Quit(ERR_GENERAL_FAILURE)
|
|
End If
|
|
|
|
intOperation = OPER_DSEXT
|
|
|
|
If oScriptHelper.IsHelpRequested(arg) Then
|
|
' display enapp specific help
|
|
End If
|
|
|
|
aArgs = oScriptHelper.GetSwitch(arg)
|
|
|
|
Case "addfile"
|
|
If (intOperation <> 0) Then
|
|
WScript.Echo L_OnlyOneOper_ErrorMessage
|
|
WScript.Echo L_SeeHelp_Message
|
|
WScript.Quit(ERR_GENERAL_FAILURE)
|
|
End If
|
|
|
|
intOperation = OPER_ADEFI
|
|
|
|
If oScriptHelper.IsHelpRequested(arg) Then
|
|
' display addfile specific help
|
|
DisplayAddFileHelp
|
|
WScript.Quit(ERR_OK)
|
|
End If
|
|
|
|
aArgs = oScriptHelper.GetSwitch(arg)
|
|
|
|
Case "rmfile"
|
|
If (intOperation <> 0) Then
|
|
WScript.Echo L_OnlyOneOper_ErrorMessage
|
|
WScript.Echo L_SeeHelp_Message
|
|
WScript.Quit(ERR_GENERAL_FAILURE)
|
|
End If
|
|
|
|
intOperation = OPER_RMEFI
|
|
|
|
If oScriptHelper.IsHelpRequested(arg) Then
|
|
' display enapp specific help
|
|
End If
|
|
|
|
strAppName = oScriptHelper.GetSwitch(arg)
|
|
|
|
Case "listapp"
|
|
If (intOperation <> 0) Then
|
|
WScript.Echo L_OnlyOneOper_ErrorMessage
|
|
WScript.Echo L_SeeHelp_Message
|
|
WScript.Quit(ERR_GENERAL_FAILURE)
|
|
End If
|
|
|
|
intOperation = OPER_LSAPP
|
|
|
|
If oScriptHelper.IsHelpRequested(arg) Then
|
|
' display enapp specific help
|
|
End If
|
|
|
|
Case "listext"
|
|
If (intOperation <> 0) Then
|
|
WScript.Echo L_OnlyOneOper_ErrorMessage
|
|
WScript.Echo L_SeeHelp_Message
|
|
WScript.Quit(ERR_GENERAL_FAILURE)
|
|
End If
|
|
|
|
intOperation = OPER_LSEXT
|
|
|
|
If oScriptHelper.IsHelpRequested(arg) Then
|
|
' display enapp specific help
|
|
End If
|
|
|
|
Case "listfile"
|
|
If (intOperation <> 0) Then
|
|
WScript.Echo L_OnlyOneOper_ErrorMessage
|
|
WScript.Echo L_SeeHelp_Message
|
|
WScript.Quit(ERR_GENERAL_FAILURE)
|
|
End If
|
|
|
|
intOperation = OPER_LSEFI
|
|
|
|
If oScriptHelper.IsHelpRequested(arg) Then
|
|
' display enapp specific help
|
|
End If
|
|
|
|
End Select
|
|
Next
|
|
|
|
' Check Parameters
|
|
If intOperation = 0 Then
|
|
WScript.Echo L_SeeHelp_Message
|
|
WScript.Quit(ERR_GENERAL_FAILURE)
|
|
End If
|
|
|
|
' Check if /p is specified but /u isn't. In this case, we should bail out with an error
|
|
If oScriptHelper.Switches.Exists("password") And Not oScriptHelper.Switches.Exists("user") Then
|
|
WScript.Echo L_PassWithoutUser_ErrorMessage
|
|
WScript.Quit(ERR_GENERAL_FAILURE)
|
|
End If
|
|
|
|
' Check if /u is specified but /p isn't. In this case, we should ask for a password
|
|
If oScriptHelper.Switches.Exists("user") And Not oScriptHelper.Switches.Exists("password") Then
|
|
strPassword = oCmdLib.GetPassword
|
|
End If
|
|
|
|
' Initializes authentication with remote machine
|
|
intResult = oScriptHelper.InitAuthentication(strServer, strUser, strPassword)
|
|
If intResult <> 0 Then
|
|
WScript.Quit(intResult)
|
|
End If
|
|
|
|
' Choose operation
|
|
Select Case intOperation
|
|
Case OPER_ENAPP
|
|
intResult = ChApp(strAppName, intOperation)
|
|
If intResult=0 Then
|
|
WScript.Echo(L_EnAppComplete_Message)
|
|
End If
|
|
|
|
Case OPER_ADDDP
|
|
intResult = ChDep(aArgs, intOperation)
|
|
If intResult=0 Then
|
|
WScript.Echo(L_AddDpComplete_Message)
|
|
End If
|
|
|
|
Case OPER_REMDP
|
|
intResult = ChDep(aArgs, intOperation)
|
|
If intResult=0 Then
|
|
WScript.Echo(L_RemDpComplete_Message)
|
|
End If
|
|
|
|
Case OPER_ENEXT
|
|
intResult = ChApp(strAppName, intOperation)
|
|
If intResult=0 Then
|
|
WScript.Echo(L_EnExtComplete_Message)
|
|
End If
|
|
|
|
Case OPER_ENEFI
|
|
intResult = ChApp(strAppName, intOperation)
|
|
If intResult=0 Then
|
|
WScript.Echo(L_EnEfiComplete_Message)
|
|
End If
|
|
|
|
Case OPER_DSEFI
|
|
intResult = ChApp(strAppName, intOperation)
|
|
If intResult=0 Then
|
|
WScript.Echo(L_DsEfiComplete_Message)
|
|
End If
|
|
|
|
Case OPER_DSEXT
|
|
intResult = DsExt(aArgs)
|
|
If intResult=0 Then
|
|
WScript.Echo(L_DsExtComplete_Message)
|
|
End If
|
|
|
|
Case OPER_ADEFI
|
|
intResult = ChDep(aArgs, intOperation)
|
|
If intResult=0 Then
|
|
WScript.Echo(L_AdEFiComplete_Message)
|
|
End If
|
|
|
|
Case OPER_RMEFI
|
|
intResult = RmEfi(strAppName)
|
|
If intResult=0 Then
|
|
WScript.Echo(L_RmEFiComplete_Message)
|
|
End If
|
|
|
|
Case OPER_LSAPP
|
|
intResult = ShowList(intOperation)
|
|
|
|
Case OPER_LSEXT
|
|
intResult = ShowList(intOperation)
|
|
|
|
Case OPER_LSEFI
|
|
intResult = ShowListFile()
|
|
|
|
End Select
|
|
|
|
' Return value to command processor
|
|
WScript.Quit(intResult)
|
|
|
|
'''''''''''''''''''''''''
|
|
' End Of Main Block
|
|
'''''''''''''''''''''
|
|
|
|
'''''''''''''''''''''''''''
|
|
' DisplayHelpMessage
|
|
'''''''''''''''''''''''''''
|
|
Sub DisplayHelpMessage()
|
|
WScript.Echo L_Help_HELP_General01_Text
|
|
WScript.Echo L_Empty_Text
|
|
WScript.Echo L_Help_HELP_General02_Text
|
|
WScript.Echo L_Help_HELP_General02a_Text
|
|
WScript.Echo L_Help_HELP_General03_Text
|
|
WScript.Echo L_Help_HELP_General04_Text
|
|
WScript.Echo L_Empty_Text
|
|
WScript.Echo L_Help_HELP_General05_Text
|
|
WScript.Echo L_Empty_Text
|
|
WScript.Echo L_Help_HELP_General06_Text
|
|
WScript.Echo L_Help_HELP_General06a_Text
|
|
WScript.Echo L_Help_HELP_General06b_Text
|
|
WScript.Echo L_Help_HELP_General06c_Text
|
|
WScript.Echo L_Help_HELP_General06d_Text
|
|
WScript.Echo L_Help_HELP_General06e_Text
|
|
WScript.Echo L_Help_HELP_General07_Text
|
|
WScript.Echo L_Help_HELP_General07a_Text
|
|
WScript.Echo L_Help_HELP_General08_Text
|
|
WScript.Echo L_Help_HELP_General08a_Text
|
|
WScript.Echo L_Help_HELP_General09_Text
|
|
WScript.Echo L_Help_HELP_General09a_Text
|
|
WScript.Echo L_Help_HELP_General09b_Text
|
|
WScript.Echo L_Help_HELP_General09c_Text
|
|
WScript.Echo L_Help_HELP_General09d_Text
|
|
WScript.Echo L_Help_HELP_General10_Text
|
|
WScript.Echo L_Help_HELP_General10a_Text
|
|
WScript.Echo L_Help_HELP_General10b_Text
|
|
WScript.Echo L_Help_HELP_General10c_Text
|
|
WScript.Echo L_Help_HELP_General10d_Text
|
|
WScript.Echo L_Help_HELP_General11_Text
|
|
WScript.Echo L_Help_HELP_General11a_Text
|
|
WScript.Echo L_Help_HELP_General11b_Text
|
|
WScript.Echo L_Help_HELP_General12_Text
|
|
WScript.Echo L_Help_HELP_General12a_Text
|
|
WScript.Echo L_Help_HELP_General12b_Text
|
|
WScript.Echo L_Help_HELP_General13_Text
|
|
WScript.Echo L_Help_HELP_General13a_Text
|
|
WScript.Echo L_Help_HELP_General14_Text
|
|
WScript.Echo L_Help_HELP_General14a_Text
|
|
WScript.Echo L_Help_HELP_General15_Text
|
|
WScript.Echo L_Help_HELP_General15a_Text
|
|
WScript.Echo L_Help_HELP_General16_Text
|
|
WScript.Echo L_Help_HELP_General16a_Text
|
|
WScript.Echo L_Help_HELP_General17_Text
|
|
WScript.Echo L_Help_HELP_General17a_Text
|
|
WScript.Echo L_Help_HELP_General18_Text
|
|
WScript.Echo L_Help_HELP_General19_Text
|
|
End Sub
|
|
|
|
'''''''''''''''''''''''''''
|
|
' DisplayHelpMessage
|
|
'''''''''''''''''''''''''''
|
|
Sub DisplayAddFileHelp()
|
|
WScript.Echo L_Help_HELP_AddFile01_Text
|
|
WScript.Echo L_Empty_Text
|
|
WScript.Echo L_Help_HELP_AddFile02_Text
|
|
WScript.Echo L_Help_HELP_AddFile02a_Text
|
|
WScript.Echo L_Help_HELP_AddFile03_Text
|
|
WScript.Echo L_Empty_Text
|
|
WScript.Echo L_Help_HELP_General05_Text
|
|
WScript.Echo L_Empty_Text
|
|
WScript.Echo L_Help_HELP_General06_Text
|
|
WScript.Echo L_Help_HELP_General06a_Text
|
|
WScript.Echo L_Help_HELP_General06b_Text
|
|
WScript.Echo L_Help_HELP_General06c_Text
|
|
WScript.Echo L_Help_HELP_General06d_Text
|
|
WScript.Echo L_Help_HELP_General06e_Text
|
|
WScript.Echo L_Help_HELP_AddFile07_Text
|
|
WScript.Echo L_Help_HELP_AddFile08_Text
|
|
WScript.Echo L_Help_HELP_AddFile09_Text
|
|
WScript.Echo L_Help_HELP_AddFile09a_Text
|
|
WScript.Echo L_Help_HELP_AddFile09b_Text
|
|
WScript.Echo L_Help_HELP_AddFile09c_Text
|
|
WScript.Echo L_Help_HELP_AddFile10_Text
|
|
WScript.Echo L_Help_HELP_AddFile10a_Text
|
|
WScript.Echo L_Help_HELP_AddFile11_Text
|
|
WScript.Echo L_Help_HELP_AddFile11a_Text
|
|
WScript.Echo L_Help_HELP_AddFile11b_Text
|
|
WScript.Echo L_Help_HELP_AddFile12_Text
|
|
WScript.Echo L_Help_HELP_AddFile12a_Text
|
|
WScript.Echo L_Help_HELP_AddFile13_Text
|
|
WScript.Echo L_Help_HELP_AddFile13a_Text
|
|
WScript.Echo L_Help_HELP_AddFile14_Text
|
|
WScript.Echo L_Help_HELP_AddFile14a_Text
|
|
WScript.Echo L_Help_HELP_AddFile15_Text
|
|
WScript.Echo L_Help_HELP_AddFile15a_Text
|
|
WScript.Echo L_Help_HELP_AddFile16_Text
|
|
WScript.Echo L_Help_HELP_AddFile16a_Text
|
|
End Sub
|
|
|
|
Function ChApp(strAppName, intOperation)
|
|
Dim WebSvcObj
|
|
|
|
On Error Resume Next
|
|
|
|
oScriptHelper.WMIConnect
|
|
If Err.Number Then
|
|
WScript.Echo L_WMIConnect_ErrorMessage
|
|
oCmdLib.vbPrintf L_Error_ErrorMessage, Array(Hex(Err.Number), Err.Description)
|
|
ChApp = Err.Number
|
|
Exit Function
|
|
End If
|
|
|
|
Set WebSvcObj = oScriptHelper.ProviderObj.get("IIsWebService='w3svc'")
|
|
If Err.Number Then
|
|
Select Case Err.Number
|
|
Case &H80070005
|
|
WScript.Echo L_Admin_ErrorMessage
|
|
WScript.Echo L_Adminp2_ErrorMessage
|
|
|
|
Case Else
|
|
WScript.Echo L_GetWebSvcObj_ErrorMessage
|
|
oCmdLib.vbPrintf L_Error_ErrorMessage, Array(Hex(Err.Number), Err.Description)
|
|
End Select
|
|
|
|
ChApp = Err.Number
|
|
Exit Function
|
|
End If
|
|
|
|
Select Case intOperation
|
|
Case OPER_ENAPP
|
|
WebSvcObj.EnableApplication strAppName
|
|
|
|
Case OPER_ENEXT
|
|
WebSvcObj.EnableWebServiceExtension strAppName
|
|
|
|
Case OPER_ENEFI
|
|
WebSvcObj.EnableExtensionFile strAppName
|
|
|
|
Case OPER_DSEFI
|
|
WebSvcObj.DisableExtensionFile strAppName
|
|
|
|
End Select
|
|
|
|
If Err.Number Then
|
|
WScript.Echo L_EnApp_ErrorMessage
|
|
WScript.Echo Err.Description
|
|
|
|
Select Case intOperation
|
|
Case OPER_ENAPP
|
|
WScript.Echo L_NoApp_ErrorMessage
|
|
WScript.Echo L_NoAppp2_ErrorMessage
|
|
|
|
Case OPER_ENEXT
|
|
WScript.Echo L_NoExt_ErrorMessage
|
|
|
|
Case OPER_ENEFI
|
|
WScript.Echo L_NoEfi_ErrorMessage
|
|
|
|
Case OPER_DSEFI
|
|
WScript.Echo L_NoEfi_ErrorMessage
|
|
End Select
|
|
|
|
ChApp = Err.Number
|
|
Exit Function
|
|
End If
|
|
|
|
End Function
|
|
|
|
Function RmEfi(strAppName)
|
|
Dim WebSvcObj, extObj, restrictions, i, bDel
|
|
|
|
bDel = False
|
|
|
|
On Error Resume Next
|
|
|
|
oScriptHelper.WMIConnect
|
|
If Err.Number Then
|
|
WScript.Echo L_WMIConnect_ErrorMessage
|
|
oCmdLib.vbPrintf L_Error_ErrorMessage, Array(Hex(Err.Number), Err.Description)
|
|
RmEfi = Err.Number
|
|
Exit Function
|
|
End If
|
|
|
|
Set WebSvcObj = oScriptHelper.ProviderObj.get("IIsWebService='w3svc'")
|
|
If Err.Number Then
|
|
Select Case Err.Number
|
|
Case &H80070005
|
|
WScript.Echo L_Admin_ErrorMessage
|
|
WScript.Echo L_Adminp2_ErrorMessage
|
|
|
|
Case Else
|
|
WScript.Echo L_GetWebSvcObj_ErrorMessage
|
|
oCmdLib.vbPrintf L_Error_ErrorMessage, Array(Hex(Err.Number), Err.Description)
|
|
End Select
|
|
|
|
RmEfi = Err.Number
|
|
Exit Function
|
|
End If
|
|
|
|
Set extObj = oScriptHelper.ProviderObj.get("IIsWebServiceSetting='w3svc'")
|
|
restrictions = extObj.WebSvcExtRestrictionList
|
|
|
|
For i=0 to UBOUND(restrictions)
|
|
If UCASE(restrictions(i).FilePath) = UCASE(strAppName) Then
|
|
If restrictions(i).Deletable = 1 Then
|
|
WebSvcObj.DeleteExtensionFileRecord strAppName
|
|
bDel = True
|
|
End If
|
|
End If
|
|
Next
|
|
|
|
If Err.Number Then
|
|
WScript.Echo L_EnApp_ErrorMessage
|
|
WScript.Echo Err.Description
|
|
|
|
RmEfi = Err.Number
|
|
Exit Function
|
|
End If
|
|
|
|
If bDel = False Then
|
|
WScript.Echo L_RmEfi_ErrorMessage
|
|
WScript.Echo L_RmEfip2_ErrorMessage
|
|
RmEfi = 1
|
|
End If
|
|
End Function
|
|
|
|
Function ChDep(aArgs, intOperation)
|
|
Dim WebSvcObj, i
|
|
|
|
On Error Resume Next
|
|
|
|
oScriptHelper.WMIConnect
|
|
If Err.Number Then
|
|
WScript.Echo L_WMIConnect_ErrorMessage
|
|
oCmdLib.vbPrintf L_Error_ErrorMessage, Array(Hex(Err.Number), Err.Description)
|
|
ChDep = Err.Number
|
|
Exit Function
|
|
End If
|
|
|
|
Set WebSvcObj = oScriptHelper.ProviderObj.get("IIsWebService='w3svc'")
|
|
If Err.Number Then
|
|
Select Case Err.Number
|
|
Case &H80070005
|
|
WScript.Echo L_Admin_ErrorMessage
|
|
WScript.Echo L_Adminp2_ErrorMessage
|
|
|
|
Case Else
|
|
WScript.Echo L_GetWebSvcObj_ErrorMessage
|
|
oCmdLib.vbPrintf L_Error_ErrorMessage, Array(Hex(Err.Number), Err.Description)
|
|
End Select
|
|
|
|
ChDep = Err.Number
|
|
Exit Function
|
|
End If
|
|
|
|
If OPER_ADEFI = intOperation Then
|
|
If ((aArgs(1) <> 0) And (aArgs(1) <> 1)) Then
|
|
aArgs(1) = 0
|
|
End If
|
|
|
|
WebSvcObj.AddExtensionFile aArgs(0), aArgs(1), aArgs(2), aArgs(3), aArgs(4)
|
|
Else
|
|
|
|
If UBOUND(aArgs) < 1 Then
|
|
WScript.Echo L_NotEnoughParams_ErrorMessage
|
|
WScript.Echo L_SeeHelp_Message
|
|
ChDep = ERR_GENERAL_FAILURE
|
|
Exit Function
|
|
End If
|
|
|
|
For i=1 to UBOUND(aArgs)
|
|
|
|
Select Case intOperation
|
|
Case OPER_ADDDP
|
|
WebSvcObj.AddDependency aArgs(0), aArgs(i)
|
|
|
|
Case OPER_REMDP
|
|
WebSvcObj.RemoveDependency aArgs(0), aArgs(i)
|
|
End Select
|
|
|
|
If Err.Number Then
|
|
WScript.Echo L_EnDep_ErrorMessage
|
|
WScript.Echo Err.Description
|
|
WScript.Echo L_NoDep_ErrorMessage
|
|
WScript.Echo L_NoDepp2_ErrorMessage
|
|
|
|
ChDep = Err.Number
|
|
Exit Function
|
|
End If
|
|
Next
|
|
|
|
End If
|
|
|
|
If Err.Number Then
|
|
WScript.Echo L_EnApp_ErrorMessage
|
|
WScript.Echo Err.Description
|
|
|
|
ChDep = Err.Number
|
|
Exit Function
|
|
End If
|
|
|
|
End Function
|
|
|
|
Function DsExt(aArgs)
|
|
Dim WebSvcObj, i
|
|
|
|
On Error Resume Next
|
|
|
|
oScriptHelper.WMIConnect
|
|
If Err.Number Then
|
|
WScript.Echo L_WMIConnect_ErrorMessage
|
|
oCmdLib.vbPrintf L_Error_ErrorMessage, Array(Hex(Err.Number), Err.Description)
|
|
DsExt = Err.Number
|
|
Exit Function
|
|
End If
|
|
|
|
Set WebSvcObj = oScriptHelper.ProviderObj.get("IIsWebService='w3svc'")
|
|
If Err.Number Then
|
|
Select Case Err.Number
|
|
Case &H80070005
|
|
WScript.Echo L_Admin_ErrorMessage
|
|
WScript.Echo L_Adminp2_ErrorMessage
|
|
|
|
Case Else
|
|
WScript.Echo L_GetWebSvcObj_ErrorMessage
|
|
oCmdLib.vbPrintf L_Error_ErrorMessage, Array(Hex(Err.Number), Err.Description)
|
|
End Select
|
|
|
|
DsExt = Err.Number
|
|
Exit Function
|
|
End If
|
|
|
|
For i=0 to UBOUND(aArgs)
|
|
|
|
WebSvcObj.DisableWebServiceExtension aArgs(i)
|
|
|
|
If Err.Number Then
|
|
WScript.Echo L_EnApp_ErrorMessage
|
|
WScript.Echo Err.Description
|
|
WScript.Echo L_NoExt_ErrorMessage
|
|
|
|
DsExt = Err.Number
|
|
Exit Function
|
|
End If
|
|
Next
|
|
|
|
End Function
|
|
|
|
Function ShowList(intOperation)
|
|
Dim WebSvcObj, holder, i, mylist
|
|
|
|
On Error Resume Next
|
|
|
|
oScriptHelper.WMIConnect
|
|
If Err.Number Then
|
|
WScript.Echo L_WMIConnect_ErrorMessage
|
|
oCmdLib.vbPrintf L_Error_ErrorMessage, Array(Hex(Err.Number), Err.Description)
|
|
ShowList = Err.Number
|
|
Exit Function
|
|
End If
|
|
|
|
Set WebSvcObj = oScriptHelper.ProviderObj.get("IIsWebService='w3svc'")
|
|
If Err.Number Then
|
|
Select Case Err.Number
|
|
Case &H80070005
|
|
WScript.Echo L_Admin_ErrorMessage
|
|
WScript.Echo L_Adminp2_ErrorMessage
|
|
|
|
Case Else
|
|
WScript.Echo L_GetWebSvcObj_ErrorMessage
|
|
oCmdLib.vbPrintf L_Error_ErrorMessage, Array(Hex(Err.Number), Err.Description)
|
|
End Select
|
|
|
|
ShowList = Err.Number
|
|
Exit Function
|
|
End If
|
|
|
|
Select Case intOperation
|
|
Case OPER_LSAPP
|
|
set holder=oScriptHelper.ProviderObj.execmethod("IIsWebService='w3svc'", "ListApplications")
|
|
mylist = holder.Applications
|
|
|
|
Case OPER_LSEXT
|
|
set holder=oScriptHelper.ProviderObj.execmethod("IIsWebService='w3svc'", "ListWebServiceExtensions")
|
|
mylist = holder.Extensions
|
|
|
|
End Select
|
|
|
|
If Err.Number Then
|
|
WScript.Echo L_ShowList_ErrorMessage
|
|
WScript.Echo L_ShowList2_ErrorMessage
|
|
WScript.Echo L_ShowList3_ErrorMessage
|
|
WScript.Echo Err.Description
|
|
|
|
ShowList = Err.Number
|
|
Exit Function
|
|
End If
|
|
|
|
For i = 0 to UBOUND(mylist)
|
|
WScript.Echo mylist(i)
|
|
Next
|
|
|
|
End Function
|
|
|
|
Function ShowListFile()
|
|
Dim WebSvcObj, fileList, i
|
|
|
|
On Error Resume Next
|
|
|
|
oScriptHelper.WMIConnect
|
|
If Err.Number Then
|
|
WScript.Echo L_WMIConnect_ErrorMessage
|
|
oCmdLib.vbPrintf L_Error_ErrorMessage, Array(Hex(Err.Number), Err.Description)
|
|
ShowList = Err.Number
|
|
Exit Function
|
|
End If
|
|
|
|
Set WebSvcObj = oScriptHelper.ProviderObj.get("IIsWebServiceSetting='w3svc'")
|
|
If Err.Number Then
|
|
Select Case Err.Number
|
|
Case &H80070005
|
|
WScript.Echo L_Admin_ErrorMessage
|
|
WScript.Echo L_Adminp2_ErrorMessage
|
|
|
|
Case Else
|
|
WScript.Echo L_GetWebSvcObj_ErrorMessage
|
|
oCmdLib.vbPrintf L_Error_ErrorMessage, Array(Hex(Err.Number), Err.Description)
|
|
End Select
|
|
|
|
ShowList = Err.Number
|
|
Exit Function
|
|
End If
|
|
|
|
fileList = WebSvcObj.WebSvcExtRestrictionList
|
|
|
|
|
|
If Err.Number Then
|
|
WScript.Echo L_ShowList_ErrorMessage
|
|
WScript.Echo L_ShowList2_ErrorMessage
|
|
WScript.Echo L_ShowList3_ErrorMessage
|
|
WScript.Echo Err.Description
|
|
|
|
ShowList = Err.Number
|
|
Exit Function
|
|
End If
|
|
|
|
WScript.Echo L_Empty_Text
|
|
WScript.Echo L_ShowListFile_Message
|
|
WScript.Echo L_ShowListFile2_Message
|
|
|
|
For i = 0 to UBOUND(fileList)
|
|
WScript.Echo fileList(i).Access & " " & fileList(i).FilePath
|
|
Next
|
|
End Function
|