• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    改进后的mkw3site.vbs(创建虚拟目录)
     
    '---------------------------------------------------------------------------------------------------
    ' 创建虚拟目录  POWER BY JARON , 江都资讯网 , 1999-2002. 
    ' 如果您需要设置权限,请修改40-56 的代码。 ** 根据 Microsoft Corp. 的 AdminScripts 改写
    '
    ' 用法: mkw3site --RootDirectory|-r ROOT DIRECTORY>
    '                         --Comment|-t SERVER COMMENT>
    '                         [--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
    ' 设置可写、脚本执行权限
    Dim prop(15,2)
    Dim propNum
    prop(propNum,0) = "AccessRead"
    prop(propNum,1) = true' 可读设为TRUE,不可读设为FALSE
    propNum = propNum + 1
    prop(propNum, 0) = "AccessWrite"
    prop(propNum, 1) = true ' 可写设为TRUE,不可写设为FALSE
    propNum = propNum + 1
    prop(propNum, 0) = "AccessScript"
    prop(propNum, 1) = true ' 可运行脚本文件设为TRUE,不可运行脚本文件设为FALSE
    propNum = propNum + 1
    prop(propNum, 0) = "AccessExecute"
    prop(propNum, 1) = false ' 可运行执行文件设为TRUE,不可运行执行文件设为FALSE
    propNum = propNum + 1
    prop(propNum, 0) = "EnableDirBrowsing"
    prop(propNum, 1) = true ' 允许列出目录设为TRUE,不允许列出目录设为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(i,0)
    val = propList(i,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 "不能保存更新信息."
    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
    上一篇:mdir.vbs 建立隐藏虚拟目录的vbs
    下一篇:charCodeAt与AscW函数的区别说明
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    改进后的mkw3site.vbs(创建虚拟目录) 改进,后的,mkw3site.vbs,创建,