作为.net开发,在window环境下,不得不熟悉些脚本语言,来减轻些日常开发中所遇到的一些繁杂的事情,比如自动发布网站,自动发布网站等等。

WMI windows管理程序接口,可用各种与语言调用,方便起见,我选择VBscript脚本语言来实现一键式发布网站

所需WMI对象

Set oWebAdmin=GetObject("winmgmts:root\WebAdministration")

oWebAdmin 提供管理 site Application VirtualDirectory 等对象的管理,调用对应对象的所提供的方法即可实现所需功能

获取网站名称,建立IIS后系统会自动创建一个默认网站,对应的ID为1

'---------------------------
'-----获取网站名称----------
'---------------------------
Sub GetSiteName()
Set Sites=oWebAdmin.InstancesOf("Site")
For Each site In Sites
If site.Id= Then
strWebSiteName=site.Name
Exit For
End If
next
End Sub

建立虚拟目录,需要三个参数 应用程序路径,物理路径,网站名称

'---------------------------
'-----创建虚拟目录----------
'---------------------------
Sub CreateVD()
Set vds=oWebAdmin.InstancesOf("VirtualDirectory")
For Each vd In vds
If vd.PhysicalPath=strPyhicPath Then
'删除应用程序
DeleteApp strAppPath
vd.Delete_
Exit for
End If
Next
Set vd=oWebAdmin.Get("VirtualDirectory")
vd.Create strAppPath,"/",strPyhicPath,strWebSiteName
End Sub

创建应用程序 ,也需要三个参数  应用程序路径,物理路径,网站名称

'---------------------------
'-----创建应用程序----------
'---------------------------
Sub CreateApp(apppath,webSiteName,pypath)
On Error Resume next
App.Create apppath,webSiteName,pypath
If Err.Number<> Then
WScript.Echo "创建应用程序错误:"&apppath&"错误码:"&Err.Number
WScript.Sleep
else
WScript.Echo "正在建立应用程序:"&apppath&"..."
WScript.Sleep
End if
End Sub

通过以上三个步骤即可自动创建一个虚拟目录,并转换为应用程序,根据IIS版本不同,调用WMI的对象也不同,所以以上代码只正对IIS7

全部代码如下

Dim WshShell
Set WshShell = WScript.CreateObject("Wscript.Shell")
If LCase(Right(WScript.FullName,))="wscript.exe" Then
WshShell.Run "cmd /k cscript.exe //nologo " & Chr()& WScript.ScriptFullName & Chr()
WScript.Quit
End if
strWebSiteName=""
strPyhicPath=InputBox("请输入要发布网站的路径"&vbnewline&vbnewline&"如:D:\xxxx\xxx"&vbNewLine&vbNewLine&"请确保是否存在网站:Default Web Site","提示")
If(strPyhicPath="") Then
MsgBox("请输入路径")
WScript.Quit
End if
ary=Split(strPyhicPath,"\")
strAppPath="/"&ary(UBound(ary))
Set oWebAdmin=GetObject("winmgmts:root\WebAdministration")
GetSiteName
CreateVD
Set App=oWebAdmin.Get("Application")
CreateApp strAppPath&"/Web", strWebSiteName,strPyhicPath&"\Web"
CreateApp strAppPath&"/WebService", strWebSiteName,strPyhicPath&"\WebService"
CreateIISAppByFile(strPyhicPath&"\WebService")
WScript.Echo "处理完毕..."
WScript.Sleep() '---------------------------
'-----获取网站名称----------
'---------------------------
Sub GetSiteName()
Set Sites=oWebAdmin.InstancesOf("Site")
For Each site In Sites
If site.Id= Then
strWebSiteName=site.Name
Exit For
End If
next
End Sub
'---------------------------
'-----创建虚拟目录----------
'---------------------------
Sub CreateVD()
Set vds=oWebAdmin.InstancesOf("VirtualDirectory")
For Each vd In vds
If vd.PhysicalPath=strPyhicPath Then
'删除应用程序
DeleteApp strAppPath
vd.Delete_
Exit for
End If
Next
Set vd=oWebAdmin.Get("VirtualDirectory")
vd.Create strAppPath,"/",strPyhicPath,strWebSiteName
End Sub
'---------------------------
'-----循环创建Webservice----
'---------------------------
Sub CreateIISAppByFile(strFolder)
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oFolder = oFSO.GetFolder(strFolder)
For Each x In oFolder.SubFolders
currAppPath=strAppPath&"/WebService/"&x.Name
CreateApp currAppPath,strWebSiteName,x.Path
Next
End Sub '---------------------------
'-----创建应用程序----------
'---------------------------
Sub CreateApp(apppath,webSiteName,pypath)
On Error Resume next
App.Create apppath,webSiteName,pypath
If Err.Number<> Then
WScript.Echo "创建应用程序错误:"&apppath&"错误码:"&Err.Number
WScript.Sleep
else
WScript.Echo "正在建立应用程序:"&apppath&"..."
WScript.Sleep
End if
End Sub '---------------------------
'-----删除应用程序----------
'---------------------------
Sub DeleteApp(apppath)
Set oApps = oWebAdmin.InstancesOf("Application")
Set Re=New RegExp
p=Replace(apppath,".","\.")
re.Pattern=p&".*"
re.IgnoreCase=false
For Each oApp In oApps
If re.Test(oApp.Path) then
WScript.Echo("正在删除应用程序:"& oApp.Path)
oApp.Delete_
WScript.Sleep()
End if
Next
End sub

vbscript调用WMI一键式式发布网站的更多相关文章

  1. C# 通过WebService方式 IIS发布网站 上传文件到服务器

    应用场景:要将本地的文件 上传到服务器的虚拟机上 网络环境:公司局域网(如下图中第二种) 开发环境:VS2010 服务器环境:WinServer2008    虚拟机环境:WinServer2008 ...

  2. Visual Studio 2012 Web一键式发布

    按照保哥的介绍,尝试“ Web一键式发布”,但总是出错,主要就是404错误,不知道是什么原因.默认的 Web一键式发布是在C:\inetpub\wwwroot目录下,难道是权限问题?折腾N久无果.好吧 ...

  3. 如何:使用 Visual Studio 中的一键式发布来部署 Web 应用程序项目

    原文: 如何:使用 Visual Studio 中的一键式发布来部署 Web 应用程序项目 本主题介绍如何在以下产品中使用 一键式发布 发布(部署)Web 应用程序项目: Visual Studio ...

  4. C# 通过WebService方式 IIS发布网站 上传文件到服务器[转]

    http://blog.sina.com.cn/s/blog_517cae3c0102v0y7.html 应用场景:要将本地的文件 上传到服务器的虚拟机上 网络环境:公司局域网(如下图中第二种) 开发 ...

  5. asp.net core项目发布网站时的选项

    发布网站时的选项 Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序. Release 称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的, ...

  6. IIS发布网站

    IIS发布网站几个问题 1.部署步骤:http://jingyan.baidu.com/article/3065b3b6e5becdbecff8a4d5.html Win7下IIS报503Servic ...

  7. 【ASP.NET 问题】IIS发布网站后出现 "处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误"的解决办法

    新装IIS,然后发布网站,运行出现如下错误提示 处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误模块“ManagedPipelineHandler” 于是 ...

  8. vs2013发布网站

    第一次在Server2008中发布网站,期间发生了很多的错误,这里记录下来,以供以后的学习. (1).首先在IIS上先建一个网站,(网站名称.物理路径.类型 IP地址 和端口)然后点击确认,这样就是先 ...

  9. 在win8(win8.1)电脑上安装IIS,配置web服务器,发布网站

    1.IIS安装: 打开控制面板——程序和功能——启用或关闭Windows功能——找到(Windows功能下)下的(Internet Infornation Services)把Web 管理工具和万维网 ...

随机推荐

  1. Hibernate学习笔记

    一.Hibernate基础 1.Hibernate简介 Hibernate是一种对象关系映射(ORM)框架,是实现持久化存储的一种解决方案.Java包括Java类到数据库表的映射和数据查询及获取的方法 ...

  2. Selenium2+python自动化22-发送各种类型附件邮件

    前言 最近一些小伙伴,在搞邮箱的事情,小编于是去折腾了一下!总结了一些干货,与大家分享一下!速来,抱大腿,我要开车了! 基本思路就是,使用MIMEMultipart来标示这个邮件是多个部分组成的,然后 ...

  3. 《CSS3秘籍》(第三版)-读书笔记

    第3章 选择器:明确设置哪些样式 每个样式(或者规则)由两个主要部分组成:选择器是告诉浏览器要格式化什么内容:声明块则列出浏览器用来给选择器定义样式的格式化指令. 1.标签选择器:整体控制 标签选择器 ...

  4. 三级设置页面管理测试demo

    #include "PhoneBookWindow.h"#include "xWindow/xWindow.h"#include "hardwareD ...

  5. SAP 如何查看用户登录信息

    1.首先进入事务代码 SM19  配置审计参数文件 2.选择客户端,用户名,并且勾选过滤激活之后点击细节配置,进入如下界面: 配置完成之后,点击保存. 3.并且可以进入SM20界面,选择要查看的客户端 ...

  6. PHP高级——抽象类与接口的区别(转)

    在学习PHP面向对象时,都会在抽象类与接口上迷惑,作用差不多为什么还那么容易混淆,何不留一去一?但是事实上两者的区别还是很大的,如果能够很好地运用PHP的两个方法,面向对象的程序设计将会更加合理.清晰 ...

  7. ue4 SNew背后的逻辑

    ue4的ui库Slate体系非常庞大,即使是在创建对象这一小事上,也是相当复杂: SLATECORE_API TSharedRef<SWidget> SNullWidget::NullWi ...

  8. linux 下 oracle 11g r2 的卸载

    1.停止oracle服务 [oracle@OracleTest oracle]$ sqlplus /nolog SQL> connect / as sysdba SQL> shutdown ...

  9. Eclipse的安装和java环境变量的设置

    首先准备工作是要下载好Eclipse和java JDK. 必须要注意的是,Eclipse和java JDK必须下载同一位数的版本,即64位同为64位,32位同为32位.否则在安装完成运行Eclipse ...

  10. js之事件

    1.事件类型 鼠标事件 onclick事件 鼠标点击某个对象 ondblclick事件 鼠标双击某个对象 onmousedown事件 鼠标按下 onmouseup事件 鼠标松开 onmouseover ...