日期:2009-07-12  浏览次数:20982 次

This script removes un-needed script mappings on an IIS 5.0 web server.  Script mappings are the isapi dlls or exe's that execute webpages through IIS.   This script requires administrator access, and ADSI 2.5 files.  This script queries the IIS metabase and returns a multi-valued array list.  The script loops through the array and build a new set of Script-Mappings.  We assume no responsibility for someone trying this script and any damages that may occur(Try at own risk!).   Testing on a development machine is strongly recommend before running in a production environment.  Backing up the metabase is also strongly recommended.

Here is the code

Dim strExt
Dim myValue
dim strNothing
dim strBuild
dim i
dim iValue

Set myValue = GetObject("IIS://LocalHost/W3SVC/1/root")

'Returns an array multi valued list
'Puts the values in a local array variable myArray
myArray = myValue.Get("ScriptMaps")

'Loops through building a string
'based on myArray list of values
For i = 0 To UBound(myArray)
          iValue = InStr(myArray(i), ",")
         strExt = Left(myArray(i), iValue - 1)

                 Select Case strExt

                 Case ".idq", ".ida", ".printer", ".htw", ".htr"
                    'Builds a bogus string of un-needed mappings
                            strNothing = strNothing & myArray(i)

                 Case Else
                    'Builds a string of mappings with
                    'the # as the delimiter
                           strBuild = strBuild & myArray(i) & "#"
                 End Select
Next

'Returns a 1-dimensinonal array based
'on the string i build existing values
strBuild = split(strBuild, "#")

'Clears current Script Mappings in the metabase
myValue.Put "ScriptMaps", VBNull

'Inserts values without un-needed mappings into metabase
myValue.Put "ScriptMaps", strBuild
myValue.SetInfo
set myValue = Nothing