isapi_install.vbs

来自「Tomcat 4.1与WebServer集成组件的源代码包.」· VBS 代码 · 共 265 行

VBS
265
字号
' ========================================================================= '                                                                           '                 The Apache Software License,  Version 1.1                 '                                                                           '          Copyright (c) 1999-2001 The Apache Software Foundation.          '                           All rights reserved.                            '                                                                           ' ========================================================================= '                                                                           ' Redistribution and use in source and binary forms,  with or without modi- ' fication, are permitted provided that the following conditions are met:   '                                                                           ' 1. Redistributions of source code  must retain the above copyright notice '    notice, this list of conditions and the following disclaimer.          '                                                                           ' 2. Redistributions  in binary  form  must  reproduce the  above copyright '    notice,  this list of conditions  and the following  disclaimer in the '    documentation and/or other materials provided with the distribution.   '                                                                           ' 3. The end-user documentation  included with the redistribution,  if any, '    must include the following acknowlegement:                             '                                                                           '       "This product includes  software developed  by the Apache  Software '        Foundation <http://www.apache.org/>."                              '                                                                           '    Alternately, this acknowlegement may appear in the software itself, if '    and wherever such third-party acknowlegements normally appear.         '                                                                           ' 4. The names  "The  Jakarta  Project",  "Jk",  and  "Apache  Software     '    Foundation"  must not be used  to endorse or promote  products derived '    from this  software without  prior  written  permission.  For  written '    permission, please contact <apache@apache.org>.                        '                                                                           ' 5. Products derived from this software may not be called "Apache" nor may '    "Apache" appear in their names without prior written permission of the '    Apache Software Foundation.                                            '                                                                           ' THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES ' INCLUDING, BUT NOT LIMITED TO,  THE IMPLIED WARRANTIES OF MERCHANTABILITY ' AND FITNESS FOR  A PARTICULAR PURPOSE  ARE DISCLAIMED.  IN NO EVENT SHALL ' THE APACHE  SOFTWARE  FOUNDATION OR  ITS CONTRIBUTORS  BE LIABLE  FOR ANY ' DIRECT,  INDIRECT,   INCIDENTAL,  SPECIAL,  EXEMPLARY,  OR  CONSEQUENTIAL ' DAMAGES (INCLUDING,  BUT NOT LIMITED TO,  PROCUREMENT OF SUBSTITUTE GOODS ' OR SERVICES;  LOSS OF USE,  DATA,  OR PROFITS;  OR BUSINESS INTERRUPTION) ' HOWEVER CAUSED AND  ON ANY  THEORY  OF  LIABILITY,  WHETHER IN  CONTRACT, ' STRICT LIABILITY, OR TORT  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ' ANY  WAY  OUT OF  THE  USE OF  THIS  SOFTWARE,  EVEN  IF  ADVISED  OF THE ' POSSIBILITY OF SUCH DAMAGE.                                               '                                                                           ' ========================================================================= '                                                                           ' This software  consists of voluntary  contributions made  by many indivi- ' duals on behalf of the  Apache Software Foundation.  For more information ' on the Apache Software Foundation, please see <http://www.apache.org/>.   '                                                                           ' =========================================================================' =========================================================================' Description: Install script for Tomcat ISAPI redirector                              ' Author:      Peter S. Horne <horneps@yahoo.com.au>                           ' Version:     $Revision: 1.2 $                                           ' ========================================================================='' This script automatically installs the tomcat isapi_redirector for use in' both out-of and in-process installations on IIS/Win2K. See the command line' usage section for usage instructions.''  Check the command line'set args = wscript.argumentsif args.count <> 6 then 	info ""	info "Tomcat ISAPI Redirector Installation Utility"	info "usage: isapi_install <server> <fdir> <worker> <mount> <log> <level>"	info "	server:	The Web Server Name (for example 'Default Web Site')"	info "	fdir:	the full path to the directory that contains the isapi filter"	info "	worker:	Full path and file name of the worker properties file"	info "	mount:	Full path and file name of the worker mount properties file"	info "	log:	Full path and file name of the log file"	info "	level:	The log level emerg | info"	info "(Re-runs are ok and will change/reset settings)"	info ""	fail "Incorrect Arguments"end if' Setup the argsserverName = args(0)filterDir = args(1)filterName = "jakarta"filterLib = "\isapi_redirector.dll"workerFile = args(2)mountFile = args(3)logFile = args(4)logLevel = args(5)'' Get a shell'dim shellset shell = WScript.CreateObject("WScript.Shell")'' Find the indicated server from all the servers in the service ' Note: they aren't all Web!'set service = GetObject("IIS://LocalHost/W3SVC" )serverId = ""for each thing in service	 if thing.Class = "IIsWebServer" then		if thing.ServerComment = serverName then 			set server = thing			serverId = thing.name			exit for		end if	end ifnextif serverId = "" then fail "Server " + serverName + " not found."info "Found Server <" + serverName + "> at index [" + serverId + "]."'' Stop everything to release any dlls - needed for a re-install'' info "Stopping server <" + serverName + ">..."' server.stop' info "Done"'' Get a handle to the filters for the server - we process all errors'On Error Resume Nextdim filtersset filters = GetObject("IIS://LocalHost/W3SVC/" + serverId + "/Filters")if err then 	err.clear	info "Filters not found for server - creating"	set filters = server.create( "IIsFilters", "Filters" )	filters.setInfo	if err then fail "Error Creating Filters"end ifinfo "Got Filters"'' Create the filter - if it fails then delete it and try again'name = filterNameinfo "Creating Filter  - " + filterNamedim filterset filter = filters.Create( "IISFilter", filterName )if err then	err.clear	info "Filter exists - deleting"	filters.delete "IISFilter", filterName	if err then fail "Error Deleting Filter"	set filter = filters.Create( "IISFilter", filterName )	if err then fail "Error Creating Filter"end ifinfo "Created Filter"'' Set the filter info and save it'filter.FilterPath = filterDir + filterLib  filter.FilterEnabled=truefilter.description = filterNamefilter.notifyOrderHigh = truefilter.setInfo'' Set the load order - only if it's not in the list already'on error goto 0loadOrders = filters.FilterLoadOrderlist = Split( loadOrders, "," )found = falsefor each item in list	if Trim( item ) = filterName then found = truenextif found = false then 	info "Filter is not in load order - adding now."	if len(loadOrders) <> 0  then loadOrders = loadOrders + ","	filters.FilterLoadOrder = loadOrders + filterName	filters.setInfo	info "Filter added."else	info "Filter already exists in load order - no update required."end if'' Set the registry up' regRoot = "HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Jakarta Isapi Redirector\1.0\"err.clearon error resume nextshell.RegDelete( regRoot )if err then 	info "Entering Registry Information for the first time"else 	info "Deleted existing Registry Setting"end ifon error goto 0info "Updating Registry"shell.RegWrite regRoot + "extension_uri", "/jakarta/isapi_redirector.dll"shell.RegWrite regRoot + "log_file", logFileshell.RegWrite regRoot + "log_level", logLevelshell.RegWrite regRoot + "worker_file", workerFileshell.RegWrite regRoot + "worker_mount_file", mountFileinfo "Registry Settings Created"'' Finally, create the virtual directory matching th extension uri' on error goto 0set root = GetObject( "IIS://LocalHost/W3SVC/" + serverID + "/ROOT" )on error resume nextset vdir = root.Create("IISWebVirtualDir", filterName )if err then	info "Directory exists - deleting"	on error resume next	root.delete "IISWebVirtualDir", filterName	root.setInfo	if err then fail "Error Deleting Directory"	set vdir = root.create("IISWebVirtualDir", filterName )	if err then fail "Error Creating Directory"end ifinfo "Directory Created"' Set the directory information - make it an application directoryinfo "Setting Directory Information"vdir.AppCreate2 1vdir.AccessExecute = TRUEvdir.AppFriendlyName = filterNamevdir.AccessRead = falsevdir.ContentIndexed = falsevdir.Path = filterDirvdir.setInfoif err then fail "Error saving new directory"info "Directory Saved"'' Re Start '' info "Starting server <" + serverName + ">..."' server.start' info "Done"info "All done... Bye."wscript.quit(0)' ' Helper function for snafus'function fail( message )	wscript.echo "E: " + message	wscript.quit(1)end function'' Helper function for info'function info( message )	wscript.echo " " + messageend function 

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?