返回顶部
首页 > 资讯 > 精选 >改进后的mkw3site.vbs有什么用
  • 543
分享到

改进后的mkw3site.vbs有什么用

2023-06-08 13:06:46 543人浏览 独家记忆
摘要

这篇文章给大家分享的是有关改进后的mkw3site.vbs有什么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。  '--------------------------------------

这篇文章给大家分享的是有关改进后的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

感谢各位的阅读!关于“改进后的mkw3site.vbs有什么用”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

--结束END--

本文标题: 改进后的mkw3site.vbs有什么用

本文链接: https://lsjlt.com/news/254241.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 改进后的mkw3site.vbs有什么用
    这篇文章给大家分享的是有关改进后的mkw3site.vbs有什么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。  '--------------------------------------...
    99+
    2023-06-08
  • JavaFX 1.3有什么改进
    小编给大家分享一下JavaFX 1.3有什么改进,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!JavaFX 1.2发布已有一段时间,近日JavaFX.com发布了...
    99+
    2023-06-17
  • JavaFX 2.0.3有什么改进
    这篇文章将为大家详细讲解有关JavaFX 2.0.3有什么改进,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Oracle 公司发布了 JavaFX 2.0.3 版本。JavaFX是由Sun公司(已被Ora...
    99+
    2023-06-17
  • Groovy 1.8.6有什么改进
    小编给大家分享一下Groovy 1.8.6有什么改进,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Groovy 1.8.6 正式发布了,这是***的 Groovy...
    99+
    2023-06-17
  • RubyGems 1.8.3有什么改进
    这篇文章主要介绍了RubyGems 1.8.3有什么改进,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。RubyGems是一个方便而强大的Ruby程序包管理器( package...
    99+
    2023-06-17
  • ANTLR 3.4有什么改进
    小编给大家分享一下ANTLR 3.4有什么改进,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!ANTLR 3.4 主要是包含一些 Java 和 C++ 的 bug ...
    99+
    2023-06-17
  • Jailer 3.6.2有什么改进
    这篇文章主要为大家展示了“Jailer 3.6.2有什么改进”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Jailer 3.6.2有什么改进”这篇文章吧。Jailer 3.6.2 发布了,该版本...
    99+
    2023-06-17
  • JFormDesigner 5.0.3有什么改进
    这篇文章主要为大家展示了“JFormDesigner 5.0.3有什么改进”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JFormDesigner 5.0.3有什么改进”这篇文章吧。JFormD...
    99+
    2023-06-17
  • TypeScript 2.7有什么改进
    小编给大家分享一下TypeScript 2.7有什么改进,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!TypeScript 2.7版本引入了一些突破性的改变,开发...
    99+
    2023-06-19
  • GNU Source-highlight 3.1.6有什么用改进
    这篇文章主要为大家展示了“GNU Source-highlight 3.1.6有什么用改进”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“GNU Source-highlight 3.1.6有什么...
    99+
    2023-06-17
  • NetBeans IDE 7.1有什么改进
    这篇文章将为大家详细讲解有关NetBeans IDE 7.1有什么改进,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。NetBeans 7.1 正式版发布了,可从下面地址获取:http://netbeans...
    99+
    2023-06-17
  • Eclipse 4.2 M5有什么改进
    小编给大家分享一下Eclipse 4.2 M5有什么改进,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!值得关注的改进内容:http://download.eclipse.org/eclipse/downloads/drop...
    99+
    2023-06-17
  • Apache Tomcat 6.0.35有什么改进
    这篇文章主要介绍了Apache Tomcat 6.0.35有什么改进,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Apache Tomcat 6.0.35 主要是安全方面的补...
    99+
    2023-06-17
  • .NET Core 3.1有什么改进
    这篇文章主要为大家展示了“.NET Core 3.1有什么改进”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“.NET Core 3.1有什么改进”这篇文章吧。.NET Core 3.1 发布了,...
    99+
    2023-06-03
  • Dactor1.0.6版本有什么改进
    小编给大家分享一下Dactor1.0.6版本有什么改进,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!DActor框架可同时支持同步和异步代码,简化在线异步代码的开...
    99+
    2023-06-02
  • .NET 6的System.Text.Json功能有什么改进
    这篇文章主要介绍“.NET 6的System.Text.Json功能有什么改进”,在日常操作中,相信很多人在.NET 6的System.Text.Json功能有什么改进问题上存在疑惑,小编查阅了各式资料,整理出简单好用的...
    99+
    2023-06-29
  • Webware for Python 1.1有什么改进
    小编给大家分享一下Webware for Python 1.1有什么改进,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Webware for Python 1.1...
    99+
    2023-06-17
  • 使用JML 改进Java程序有什么副作用
    这篇文章主要为大家展示了“使用JML 改进Java程序有什么副作用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“使用JML 改进Java程序有什么副作用”这篇文章吧。副作用回忆一下代码段2中po...
    99+
    2023-06-03
  • Java后端怎么用EL表达式改进JSP
    这篇文章主要介绍了Java后端怎么用EL表达式改进JSP的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java后端怎么用EL表达式改进JSP文章都会有所收获,下面我们一起来看看吧。EL表达式改进JSPJSP的缺...
    99+
    2023-06-29
  • Wind1010049 改善后电池指示有什么变化?
    本周早些时候,微软面向Windows Insider用户推送了版本号为10049的Windows 10技术预览版,当时我们将主要的目光都瞄准了首次亮相的Spartan浏览器,不过新版系统中同样在很多细节方面进行了调整,其...
    99+
    2023-06-13
    Win10 10049 变化 电池 指示 Wind
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作