更新时间:2022-09-27 19:32
Windows脚本宿主(Windows Scripting Host,WSH)是微软脚本技术系列中的一种,简单讲,就是提供了一种脚本环境,在这个环境中,预定义了一些对象,同时也可以使用COM里的其他对象。他使用一种脚本引擎来对脚本解释执行,微软自己支持VBSCRIPT和JSCRIPT,第三方也可以开发自己的脚本引擎。
虽说不是只有NT5才有WSH,但NT5(WINDOWS2000)一定有WSH的。实际上,你在WIN98+PWS里,或者NT4+IIS4里,你就能找到WSH。
WSH是微软脚本技术系列中的一种,简单讲,就是提供了一种脚本环境,在这个环境中,预定义了一些对象,同时也可以使用COM里的其他对象。他使用一种脚本引擎来对脚本解释执行,微软自己支持VBSCRIPT和JSCRIPT,第三方也可以开发自己的脚本引擎。
具体点,就是你先编好一些脚本文件(微软自带例子若干,后缀.vbs或 .js),然后用一个程序对他解释执行,这个程序就叫Windows Scripting Host,程序的名字是Wscript.exe(或者命令行的Cscript.exe),你可以查看一下你的机器里有没有这两个文件,就知道有没有WSH了。这非常像批处理文件,只不过文件里不是命令行,而是脚本语言写的脚本。同时,他完成的功能也非常像批处理文件,只不过多了些控制。
我主要用WSH来完成一些繁琐的、通常需要我反复操作才能完成的任务,比如给大量目录设置ACL,或者创建大量的目录等等。虽然这也可以编写VB或VC程序来实现,不过比起脚本来,实在麻烦,至少需要那么大的环境,而脚本只要一个写字板就成。用WSH技术来配置服务器,包括创建用户,创建邮箱,创建目录,创建站点,设置ACL,设置FrontPage ServerExtention,我将在WSH实用讲座中分几讲详细介绍。
WSH自带的几个内置对象包括:
1.由 Wscript.exe 提供的对象
Wscript 作为 Wscript 公开给脚本引擎。
WshArguments 未公开;通过 Wscript.Arguments 属性访问。
2.由 WSHom.Ocx 提供的对象。
WshShell 自动对象。
ProgID 是 Wscript.WshShell。
WshNetwork 自动对象。ProgID 是 Wscript.WshNetwork。
WshShortcut 未公开;通过 WshShell.CreateShortcut 方法访问。
WshUrlShortcut 未公开;通过 WshShell.CreateShortcut 方法访问。
WshCollection 未公开;通过 WshNetwork.EnumNetworkDrives 或 WshNetwork.EnumPrinterConnection 方法访问。
WshEnvironment 未公开;通过 WshShell.Environment 属性访问。
WshSpecialFolders 未公开;通过 WshShell.Folder 属性访问。
他们主要可以完成环境变量的获取,网络登陆,驱动器映射,快截方式创建,程序加载,特殊文件夹(如系统文件夹)信息获取等功能。
如果你的系统里支持ADO等COM部件,你同样可以使用。
Windows 脚本宿主概述通过在 Windows 桌面上单击脚本文件,或者在命令提示符下键入脚本文件名称,可以使用 Windows 脚本宿主来运行脚本。与 Microsoft Internet Explorer 类似,Windows 脚本宿主充当了兼容 Windows 脚本的脚本引擎的控制器。但是,与 Internet Explorer 不同,Windows 脚本宿主只需要很少的内存,所以非常适合于交互和非交互的脚本,如登录脚本和管理脚本。
Windows 脚本宿主有两个版本:基于 Windows 的版本 (Wscript.exe),它提供用于设置脚本属性的属性单;另一个是基于命令提示符的版本 (Cscript.exe),它提供用于设置脚本属性的命令行开关。通过在命令提示符下键入 Wscript.exe 或 Cscript.exe 可以运行其中某一个。
以前,受 Windows 操作系统支持的唯一专有脚本化语言是 MS-DOS 命令语言。尽管 MS-DOS 小而快,但是与 VBScript 和 JScript 相比功能有限。例如,控制程序流的能力没有内置在该语言中。今天,尽管仍然提供对 MS-DOS 命令脚本的支持,但 Windows 脚本宿主体系结构允许用户利用这些功能强大的脚本语言。
Windows 脚本宿主支持用 Visual Basic Scripting Edition (VBScript) 或 JScript 编写的脚本。当从 Windows 桌面或者命令提示符下启动脚本时,脚本宿主将读取指定的脚本文件内容,并把它传送给已注册的脚本引擎。脚本引擎使用文件扩展名(.vbs 用于 VBScript,而.js 用于 JScript)来识别脚本,而不是使用 SCRIPT 标记(用于 HTML)。由于这个原因,您不必熟悉脚本引擎的准确的程序标识符 (ProgID)。脚本宿主自己维护着脚本扩展名到 ProgID 的映射,并针对给定的脚本使用 Windows 关联模型来启动合适的引擎。
经过改进的参数处理
处理和以文档记录命令行参数更简单。
远程脚本处理
可以将一个脚本加载到随后可以同时运行的几个远程计算机系统上。
运行中的进程是一个对象
可以查询衍生的进程、降级其事件、访问其标准 I/O 数据流并与其他进程共享其环境变量。
当前的工作目录
可以确定和修改活动进程的当前工作目录的路径。
脚本安全问题
新的脚本安全模型使分发和运行脚本更安全。
详细信息,请参阅 Microsoft 网站中的 Windows 脚本技术网站 (http://www.microsoft.com/)。