'============================================================================== ' ' 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 html' target='_blank'>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)