首页 > 编程 > VBScript > 正文

CreateWeb.vbs 代码

2020-06-26 18:09:48
字体:
来源:转载
供稿:网友
'============================================================================== 

'  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
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表