Network Security Internet Technology Development Database Servers Mobile Phone Android Software Apple Software Computer Software News IT Information

In addition to Weibo, there is also WeChat

Please pay attention

WeChat public account

Shulou

What is the use of the improved mkw3site.vbs

2025-03-30 Update From: SLTechnology News&Howtos shulou NAV: SLTechnology News&Howtos > Development >

Share

Shulou(Shulou.com)06/03 Report--

This article is to share with you about the use of the improved mkw3site.vbs. The editor thinks it is very practical, so share it with you as a reference and follow the editor to have a look.

'-

'create a virtual directory POWER BY JARON, Jiangdu Information Network, 1999-2002.

If you need to set permissions, please modify the code for 40-56. * * according to Microsoft Corp. AdminScripts rewriting based on

'

Usage: mkw3site

'

'[--computer |-c COMPUTER1 [, COMPUTER2...]]

'[--HostName |-h HOST NAME]

'[--port |-o PORT NUM]

'[--IPAddress |-i IP ADDRESS]

'[--SiteNumber |-n SITENUMBER]

'[--DontStart]

'[--verbose |-v]

'[--help | -?]

'

'IP ADDRESS The IP Address to assign to the new server. Optional.

'HOST NAME The host name of the web site for host headers.

'WARNING: Only use Host Name if DNS is set up find the server.

'PORT NUM The port to which the server should bind

'ROOT DIRECTORY Full path to the root directory for the new server.

'SERVER COMMENT The server comment-- this is the name that appers in the MMC.

'SITENUMBERThe Site Number is the number in the path that the web server

'will be created at. I.e. W3svc/3

'

'Example 1: mkw3site-r D:\ Roots\ Company11-- DontStart-t "My Company Site"

'Example 2: mkw3site-r C:\ Inetpub\ wwwroot-t Test-o 8080

'-

'Force explicit declaration of all variables

Option Explicit

On Error Resume Next

Dim ArgIPAddress, ArgRootDirectory, ArgServerComment, ArgSkeletalDir, ArgHostName, ArgPort

Dim ArgComputers, ArgStart

Dim ArgSiteNumber

Dim oArgs, ArgNum

Dim verbose

'set writeable and script execution permissions

Dim prop (15par 2)

Dim propNum

Prop (propNum,0) = "AccessRead"

Prop (propNum,1) = true' is readable to TRUE and unreadable to FALSE

PropNum = propNum + 1

Prop (propNum, 0) = "AccessWrite"

Prop (propNum, 1) = true 'can be set to TRUE, not writable to FALSE

PropNum = propNum + 1

Prop (propNum, 0) = "AccessScript"

Prop (propNum, 1) = true 'runnable script file is set to TRUE, non-runnable script file is set to FALSE

PropNum = propNum + 1

Prop (propNum, 0) = "AccessExecute"

Prop (propNum, 1) = false 'runnable executable file is set to TRUE, non-runnable executable file is set to FALSE

PropNum = propNum + 1

Prop (propNum, 0) = "EnableDirBrowsing"

Prop (propNum, 1) = true 'allows listing directories to be set to TRUE, but does not allow listing directories to be set to FALSE

PropNum = propNum + 1

ArgIPAddress = ""

ArgHostName = ""

ArgPort = 80

ArgStart = True

ArgComputers = Array (1)

ArgComputers (0) = "LocalHost"

ArgSiteNumber = 0

Verbose = false

Set oArgs = WScript.Arguments

ArgNum = 0

While ArgNum

< oArgs.Count Select Case LCase(oArgs(ArgNum)) Case "--port","-o": ArgNum = ArgNum + 1 ArgPort = oArgs(ArgNum) Case "--ipaddress","-i": ArgNum = ArgNum + 1 ArgIPAddress = oArgs(ArgNum) Case "--rootdirectory","-r": ArgNum = ArgNum + 1 ArgRootDirectory = oArgs(ArgNum) Case "--comment","-t": ArgNum = ArgNum + 1 ArgServerComment = oArgs(ArgNum) Case "--hostname","-h": ArgNum = ArgNum + 1 ArgHostName = oArgs(ArgNum) Case "--computer","-c": ArgNum = ArgNum + 1 ArgComputers = Split(oArgs(ArgNum), ",", -1) Case "--sitenumber","-n": ArgNum = ArgNum + 1 ArgSiteNumber = CLng(oArgs(ArgNum)) Case "--dontstart": ArgStart = False Case "--help","-?": Call DisplayUsage Case "--verbose", "-v": verbose = true Case Else: WScript.Echo "Unknown argument "& oArgs(ArgNum) Call DisplayUsage End Select ArgNum = ArgNum + 1 Wend If (ArgRootDirectory = "") Or (ArgServerComment = "") Then if (ArgRootDirectory = "") then WScript.Echo "Missing Root Directory" else WScript.Echo "Missing Server Comment" end if Call DisplayUsage WScript.Quit(1) End If Call ASTCreateWebSite(ArgIPAddress, ArgRootDirectory, ArgServerComment, ArgHostName, ArgPort, ArgComputers, ArgStart) Sub ASTCreateWebSite(IPAddress, RootDirectory, ServerComment, HostName, PortNum, Computers, Start) Dim w3svc, WebServer, NewWebServer, NewDir, Bindings, BindingString, NewBindings, ComputerIndex, Index, SiteObj, bDone Dim comp On Error Resume Next For ComputerIndex = 0 To UBound(Computers) comp = Computers(ComputerIndex) If ComputerIndex UBound(Computers) Then Trace "Creating web site on " & comp & "." End If ' Grab the web service object Err.Clear Set w3svc = GetObject("IIS://" & comp & "/w3svc") If Err.Number 0 Then Display "Unable to open: "&"IIS://" & comp & "/w3svc" End If BindingString = IpAddress & ":" & PortNum & ":" & HostName Trace "Making sure this web server doesn't conflict with another..." For Each WebServer in w3svc If WebServer.Class = "IIsWebServer" Then Bindings = WebServer.ServerBindings If BindingString = Bindings(0) Then Trace "The server bindings you specified are duplicated in another virtual web server." WScript.Quit (1) End If End If Next Index = 1 bDone = False Trace "Creating new web server..." ' If the user specified a SiteNumber, then use that. Otherwise, ' test successive numbers under w3svc until an unoccupied slot is found If ArgSiteNumber 0 Then Set NewWebServer = w3svc.Create("IIsWebServer", ArgSiteNumber) NewWebServer.SetInfo If (Err.Number 0) Then WScript.Echo "Couldn't create a web site with the specified number: " & ArgSiteNumber WScript.Quit (1) Else Err.Clear ' Verify that the newly created site can be retrieved Set SiteObj = GetObject("IIS://"&comp&"/w3svc/" & ArgSiteNumber) If (Err.Number = 0) Then bDone = True Trace "Web server created. Path is - "&"IIS://"&comp&"/w3svc/" & ArgSiteNumber Else WScript.Echo "Couldn't create a web site with the specified number: " & ArgSiteNumber WScript.Quit (1) End If End If Else While (Not bDone) Err.Clear Set SiteObj = GetObject("IIS://"&comp&"/w3svc/" & Index) If (Err.Number = 0) Then ' A web server is already defined at this position so increment Index = Index + 1 Else Err.Clear Set NewWebServer = w3svc.Create("IIsWebServer", Index) NewWebServer.SetInfo If (Err.Number 0) Then ' If call to Create failed then try the next number Index = Index + 1 Else Err.Clear ' Verify that the newly created site can be retrieved Set SiteObj = GetObject("IIS://"&comp&"/w3svc/" & Index) If (Err.Number = 0) Then bDone = True Trace "Web server created. Path is - "&"IIS://"&comp&"/w3svc/" & Index Else Index = Index + 1 End If End If End If ' sanity check If (Index >

10000) Then

Trace "Seem to be unable to create new web server. Server number is" & Index& "."

WScript.Quit (1)

End If

Wend

End If

NewBindings = Array (0)

NewBindings (0) = BindingString

NewWebServer.ServerBindings = NewBindings

NewWebServer.ServerComment = ServerComment

NewWebServer.SetInfo

'Now create the root directory object.

Trace "Setting the home directory..."

Set NewDir = NewWebServer.Create ("IIsWebVirtualDir", "ROOT")

NewDir.Path = RootDirectory

NewDir.AccessRead = true

Err.Clear

NewDir.SetInfo

NewDir.AppCreate (True)

If (Err.Number = 0) Then

Trace "Home directory set."

Else

Display "Error setting home directory."

End If

Trace "Web site created!"

If Start = True Then

Trace "Attempting to start new web server..."

Err.Clear

Set NewWebServer = GetObject ("IIS://" & comp & "/ w3svc/" & Index)

NewWebServer.Start

If Err.Number 0 Then

Display "Error starting web server!"

Err.Clear

Else

Trace "Web server started succesfully!"

End If

End If

Next

Call ASTSetPerms (comp, Index,ArgRootDirectory, prop, propNum)

End Sub

Sub ASTSetPerms (comp, ArgSiteNumber,ArgRootDirectory, propList, propCount)

'On Error Resume Next

Dim oAdmin

Dim fullPath

FullPath = "IIS://" & comp& "/ w3svc/" & ArgSiteNumber & "/ ROOT"

Trace "Opening path" & fullPath

Set oAdmin = GetObject (fullPath)

If Err.Number 0 Then

Display Error_NoNode

WScript.Quit (1)

End If

Dim name, val

If propCount > 0 then

Dim i

For I = 0 to propCount-1

Name = propList (iPermi0)

Val = propList (iPol 1)

If verbose = true then

Trace "Setting" & fullPath& "/" & name& "=" & val

End if

OAdmin.Put name, (val)

If Err 0 Then

Display "Unable to set property" & name

End If

Next

OAdmin.SetInfo

If Err 0 Then

Display "cannot save update information."

End If

End if

End Sub

'Display the usage message

Sub DisplayUsage

WScript.Quit (1)

End Sub

Sub Display (Msg)

WScript.Echo Now & ".Error Code: & Hex (Err) &"-"& Msg

End Sub

Sub Trace (Msg)

If verbose = true then

WScript.Echo Now & ":" & Msg

End if

End Sub

Thank you for reading! This is the end of this article on "what is the use of the improved mkw3site.vbs?". I hope the above content can be of some help to you, so that you can learn more knowledge. if you think the article is good, you can share it for more people to see!

Welcome to subscribe "Shulou Technology Information " to get latest news, interesting things and hot topics in the IT industry, and controls the hottest and latest Internet news, technology news and IT industry trends.

Views: 247

*The comments in the above article only represent the author's personal views and do not represent the views and positions of this website. If you have more insights, please feel free to contribute and share.

Share To

Development

Wechat

© 2024 shulou.com SLNews company. All rights reserved.

12
Report