‘==============================================================================



‘  The .NET PetShop Blueprint Application WebSite Setup



‘  File: createweb.vbs

‘  Date: November 10, 2001



‘  Creates a new vdir for this project. Set vName to name of folder on disk 

‘  that holds the files.



‘==============================================================================



‘ Copyright (C) 2001 Microsoft Corporation



‘==============================================================================

Option Explicit

dim vPath

dim scriptPath

dim vName

vName=”PetShop” ‘ name of web to create

‘ *****************************************************************************



‘ 1. Create the IIS Virtual Directory



‘ *****************************************************************************

‘ get current path to folder and add web name to it

scriptPath = left(Wscript.ScriptFullName,len(Wscript.ScriptFullName ) -len(Wscript.ScriptName))

vPath = scriptPath & “Web”

‘call to create vDir

CreateVDir(vPath)

‘ —————————————————————————-



‘ Helper Functions



‘ —————————————————————————–

”””””””””””””””””””””””””””””””””””””””’

‘ Creates a single Virtual Directory (code taken from mkwebdir.vbs and 

‘ changed for single vDir creation).

”””””””””””””””””””””””””””””””””””””””’

Sub CreateVDir(vPath)

    Dim vRoot,vDir,webSite

    On Error Resume Next

    ‘ get the local host default web

    set webSite = findWeb(“localhost”, “Default Web Site”)

    if IsObject(webSite)=False then

        Display “Unable to locate the Default Web Site”

        exit sub

    else

        ‘display webSite.name

    end if

    ‘ get the root

    set vRoot = webSite.GetObject(“IIsWebVirtualDir”, “Root”)

    If (Err <> 0) Then

        Display “Unable to access root for ” & webSite.ADsPath

        Exit sub

    else

        ‘display vRoot.name

    End IF

    ‘ delete existing web if needed

    vRoot.Delete “IIsWebVirtualDir”,vName

    vRoot.SetInfo

    Err=0 ‘ reset error 

    ‘ create the new web

    Set vDir = vRoot.Create(“IIsWebVirtualDir”,vName)

    If (Err <> 0) Then

        Display “Unable to create ” & vRoot.ADsPath & “/” & vName & “.”

        exit sub

    else

        ‘display vdir.name

    end if

    ‘ set properties on the new web 

    vDir.AccessRead = true

    vDir.Path = vPath

    vDir.Accessflags = 529

        VDir.AppCreate False

    If (Err <> 0) Then

        Display “Unable to bind path ” & vPath & ” to ” & vRoot.Name & “/” & vName & “. Path may be invalid.”

        exit sub

    end If

    ‘ commit changes

    vDir.SetInfo

    If (Err <> 0) Then

        Display “Unable to save changes for ” & vRoot.Name & “/” & vName & “.”

        exit sub

    end if

    ‘ report all ok

    WScript.Echo Now & ” ” & vName & ” virtual directory ” & vRoot.Name & “/” & vname & ” created successfully.”

End Sub

”””””””””””””””””””””””””””””””””””””””’

‘ Finds the specified web.

”””””””””””””””””””””””””””””””””””””””’

Function findWeb(computer, webname)

    On Error Resume Next

    Dim websvc, site

    dim webinfo

    Dim aBinding, binding

    set websvc = GetObject(“IIS://”&computer&”/W3svc”)

    if (Err <> 0) then

        exit function

    end if

    ‘ First try to open the webname.

    set site = websvc.GetObject(“IIsWebServer”, webname)

    if (Err = 0) and (not isNull(site)) then

        if (site.class = “IIsWebServer”) then

            ‘ Here we found a site that is a web server.

            set findWeb = site

            exit function

        end if

    end if

    err.clear

    for each site in websvc

        if site.class = “IIsWebServer” then

            ‘

            ‘ First, check to see if the ServerComment

            ‘ matches

            ‘

            If site.ServerComment = webname Then

                set findWeb = site

                exit function

            End If

            aBinding=site.ServerBindings

            if (IsArray(aBinding)) then

                if aBinding(0) = “” then

                    binding = Null

                else

                    binding = getBinding(aBinding(0))

                end if

            else 

                if aBinding = “” then

                    binding = Null

                else

                    binding = getBinding(aBinding)

                end if

            end if

            if IsArray(binding) then

                if (binding(2) = webname) or (binding(0) = webname) then

                    set findWeb = site

                    exit function

                End If

            end if 

        end if

    next

End Function

”””””””””””””””””””””””””””””””””””””””’

‘ Gets binding info.

”””””””””””””””””””””””””””””””””””””””’

function getBinding(bindstr)

    Dim one, two, ia, ip, hn

    one=Instr(bindstr,”:”)

    two=Instr((one+1),bindstr,”:”)

    ia=Mid(bindstr,1,(one-1))

    ip=Mid(bindstr,(one+1),((two-one)-1))

    hn=Mid(bindstr,(two+1))

    getBinding=Array(ia,ip,hn)

end function

”””””””””””””””””””””””””””””””””””””””’

‘ Displays error message.

”””””””””””””””””””””””””””””””””””””””’

Sub Display(Msg)

    WScript.Echo Now & “. Error Code: ” & Hex(Err) & ” – ” & Msg

End Sub

”””””””””””””””””””””””””””””””””””””””’

‘ Display progress/trace message.

”””””””””””””””””””””””””””””””””””””””’

Sub Trace(Msg)

    WScript.Echo Now & ” : ” & Msg  

End Sub

”””””””””””””””””””””””””””””””””””””””’

‘ Remove the web.

”””””””””””””””””””””””””””””””””””””””’

Sub DeleteWeb(WebServer, WebName)

    ‘ delete the exsiting web (ignore error if missing)

    On Error Resume Next

    Dim vDir

    display “deleting ” & WebName

    WebServer.Delete “IISWebVirtualDir”,WebName

    WebServer.SetInfo

    If Err=0 Then

        DISPLAY “WEB ” & WebName & ” deleted.”

    else

        display “can’t find ” & webname

    End If

End Sub

声明:本站(华域联盟www.cnhackhy.com)所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。