|
|
' ' 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
|