"============================================================================== " " 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"
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " 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)
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " 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