设为首页
加入收藏
站内地图
旧版入口

Windows自动化管理的实现(4)

作者:佚名 出处:网络转载 时间:06-22 点击:

内容载入中...
 四、脚本编程初步

  前面我们通过SDK查看了Win32_LogicalDisk类和它的属性,下面来看看如何在脚本中访问这些信息。如果你的系统上安装了Microsoft Windows 2000 Resource Kit,\program files\resource kit文件夹下默认会有一个listfreespace.vbs脚本。这个脚本查询Win32_LogicalDisk类的各个对象,分别提取一组属性值:DeviceID,即驱动器标识符;FreeSpace,驱动器空闲空间的字节数。假设一台机器的A:是软盘驱动器,D:是CD-ROM驱动器,listfreespace.vbs的输出类如:

A: not available C: 8,243,381,248 bytes D: not available

  下面显示了getfree.vbs脚本程序的代码,它用更少的代码获取类似的信息。启动getfree.vbs时要指定驱动器标识符,getfree.vbs将显示出驱动器空闲空间和文件系统类型。

" 变量声明 Dim driveArg, dObject, driveName " 创建文件系统对象,并将该对象赋值 " 给dObject变量(drive object的缩写) Set dObject = CreateObject("Scripting.FileSystemObject") " 如果用户没有在命令行指定待查询的驱动器标识符, " 则显示错误信息并停止运行脚本 If Wscript.Arguments.Count < 1 Then _ Wscript.Echo "请在命令行参数中指定要查询的驱动器,例如C:",_ Wscript.Quit(1) " 把用户指定的驱动器标识符提供给文件系统对象, " 在driveArg中保存对应的绝对路径名 driveArg = dObject.GetAbsolutePathName(Wscript.Arguments(0)) " 获取用户指定的驱动器的名字 driveName = dObject.GetDriveName(driveArg) " 提取指定驱动器的属性信息 " 在对话框中显示这些信息 With dObject.GetDrive(driveName) Wscript.Echo "驱动器", .DriveLetter,":空闲空间是",.Freespace / 1024,_ "KB,文件系统是", .FileSystem End With " 结束... Set dObject = Nothing

  在Windows命令行窗口中,执行“Wscript getfree.vbs c:”将显示出类如图五的结果。如果执行“Cscript getfree.vbs c:”,则提示信息以字符方式显示。



图五

  又如,下面的VBScript脚本提示输入远程机器的名字,然后关闭指定的远程机器:

MachineName = InputBox("输入要关闭的远程机器名字") Set OSSet = GetObject("winmgmts:{(Debug,RemoteShutdown)}//"& MachineName &"/root/cimv2")
.ExecQuery("select * from Win32_OperatingSystem where Primary=true") for each OpSys in OSSet OpSys.Shutdown() next

  当然,如果只有本文的知识,你还不能算是一个WMI脚本编程的高手。但现在你已经了解了如何用SDK查询信息,如何通过脚本访问对象的属性和方法。继续努力吧!


收藏本文:
】【打印页面】【推荐给朋友】【关闭窗口
推荐信息