热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

vbscript调用WMI一键式式发布网站

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

       作为.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=1 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<>0 Then
WScript.Echo
"创建应用程序错误:"&apppath&"错误码:"&Err.Number
WScript.Sleep
500
else
WScript.Echo
"正在建立应用程序:"&apppath&"..."
WScript.Sleep
1000
End if
End Sub

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

 全部代码如下

Dim WshShell
Set WshShell = WScript.CreateObject("Wscript.Shell")
If LCase(Right(WScript.FullName,11))="wscript.exe" Then
WshShell.Run
"cmd /k cscript.exe //nologo " & Chr(34)& WScript.ScriptFullName & Chr(34)
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(
1000)

'---------------------------
'
-----获取网站名称----------
'
---------------------------
Sub GetSiteName()
Set Sites=oWebAdmin.InstancesOf("Site")
For Each site In Sites
If site.Id=1 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<>0 Then
WScript.Echo
"创建应用程序错误:"&apppath&"错误码:"&Err.Number
WScript.Sleep
500
else
WScript.Echo
"正在建立应用程序:"&apppath&"..."
WScript.Sleep
1000
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(
200)
End if
Next
End sub

 


推荐阅读
  • 手把手教你构建简易JSON解析器
    本文将带你深入了解JSON解析器的构建过程,通过实践掌握JSON解析的基本原理。适合所有对数据解析感兴趣的开发者。 ... [详细]
  • 开发笔记:新手DVWACSRF
    开发笔记:新手DVWACSRF ... [详细]
  • 本文详细介绍了如何手动编写兼容IE的Ajax函数,以及探讨了跨域请求的实现方法和原理,包括JSONP和服务器端设置HTTP头部等技术。 ... [详细]
  • 本文通过一个实际案例,详细介绍了如何使用Excel VBA和FSO(FileSystemObject)对象来提取指定文件夹中的所有文件名称,并将其以超链接的形式添加到Excel表格中。 ... [详细]
  • 使用DataGridViewComboBoxColumn实现数据绑定与操作
    本文详细介绍如何在DataGridView中使用DataGridViewComboBoxColumn来加载、选择和保存数据库中的数据,提供具体的实现步骤和示例代码。 ... [详细]
  • 重构:优化现有代码设计(第二版)笔记
    本文介绍了重构的基本概念,通过具体示例展示了如何提炼函数以处理过长的代码段,并探讨了多种重构技术,如分阶段重构、封装变量等。 ... [详细]
  • 本文由Jogis撰写,详细探讨了React中的组件设计模式,包括控制组件、非控制组件及混合模型组件,分析了各自的优缺点及其应用场景。 ... [详细]
  • 首先说一下,这是我在CSDN上的第一个文章,其实这个账号早在几年前就申请了,不过当时只是为了下载一个资源,而且也不怎么懂信息技术相关的领域,后来就再也没怎么动过,直到今天我才开始使用这个账号 ... [详细]
  • UnityNGUIScrollView苹果式滑动
    又回来写博客了,这回已经开始上班了,所以就发一发工作中解决的难题吧。单个展示Panel(苹果式)以前对UI的滑动组件很烦心,不是很会用,这回项目要求写一个类似于苹果的文件滑动效果, ... [详细]
  • 本文深入探讨了Java注解的基本概念及其在现代Java开发中的应用。文章不仅介绍了如何创建和使用自定义注解,还详细讲解了如何利用反射机制解析注解,以及Java内建注解的使用场景。 ... [详细]
  • php怎么重新发布网站(2023年最新分享) ... [详细]
  • 使用 NDB 提升 Node.js 应用调试体验
    本文介绍了由 Google Chrome 实验室推出的新一代 Node.js 调试工具 NDB,旨在为开发者提供更加高效和便捷的调试解决方案。 ... [详细]
  • 本文详细探讨了 Java 中 Daemon 线程的特点及其应用场景,并深入分析了 Random 类的源代码,帮助开发者更好地理解和使用这些核心组件。 ... [详细]
  • 本文档详细介绍了服务器与应用系统迁移的策略与实施步骤。迁移不仅涉及数据的转移,还包括环境配置、应用兼容性测试等多个方面,旨在确保迁移过程的顺利进行及迁移后的系统稳定运行。 ... [详细]
  • 本文详细介绍了Java中`org.sakaiproject.site.api.Site.addPage()`方法的功能和使用方法,并提供了多个实际项目中的代码示例。 ... [详细]
author-avatar
小丸子2502856277_253
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有