| 网站首页 | 新闻中心 | 系统安全 | 网络安全 | 安全技术 | 下载中心 | 
课件制作网.
收藏本站
设为首页
安全365
如何确定某个文件是否存在于 CD 或 DVD 驱动器上?
如何确定某个文件是否存在于 CD 或 DVD 驱动器上?
作者:佚名 文章来源:不详 点击数: 更新时间:2007-1-24 10:46:08
问:

您好,脚本专家!如何确定某个文件是否存在于一个连接到计算机的 CD 或 DVD 驱动器上?

-- GH

答:

您好,GH。解决这个问题的一个方法就是搜索整个文件系统 – 包括所有映射网络驱动器 – 并检查是否能在某个位置找到文件(让我们称它为 Budget.xls)。假设您找到这样一个文件,然后您可以使用其他一些代码来确定该文件是否恰好在 CD 或 DVD 驱动器上。

这样操作是可以的,但是这并不是最好的方法。再者,根据文件系统的大小,这可能需要耗费一些时间。有一个方法比这要好得多,即让脚本只在 CD 或 DVD 驱动器上查找该文件。您可以猜得到:这恰好就是我们将要采取的方法。

怎么,您以为脚本专家会提供一些平庸的、简陋的东西吗?

首先,我们要查找与有关计算机相连的 CD/DVD 驱动器,找到各个项的驱动器盘符。幸运的是,该操作很简单;这个小小的 WMI 脚本会报告回所有与该计算机相连的 CD/DVD 驱动器的驱动器盘符:

strComputer = "."

Set objWMIService = GetObject("winmgmts://" & strComputer & "/root/cimv2")



Set colItems = objWMIService.ExecQuery("Select * from Win32_CDROMDrive")



For Each objItem in colItems

    Wscript.Echo objItem.Drive

Next

在识别完驱动器盘符之后,我们可以将其与一个只在指定驱动器上查找某个文件的 WMI 查询合在一起。让我们看一下完整的脚本,然后再说明它是如何工作的:

On Error Resume Next



strComputer = "."

Set objWMIService = GetObject("winmgmts://" & strComputer & "/root/cimv2")



Set colItems = objWMIService.ExecQuery("Select * from Win32_CDROMDrive")



For Each objItem in colItems

    strDrive = objItem.Drive

    Set colFiles = objWMIService.ExecQuery _

        ("Select * From CIM_DataFile Where FileName = 'Budget' " & _

            "AND Extension = 'xls' AND Drive = '" & strDrive & "'")



    If colFiles.Count > 0 Then

        For Each objFile in colFiles

            Wscript.Echo objFile.Name

        Next

    End If

Next

正如您看到的,我们首先要检索计算机上所有 CD/DVD 驱动器的集合。对于找到的各个驱动器(可能不止一个),我们将“Drive”属性(正如前面谈到的,此属性表示驱动器盘符)的值赋予一个名为 strDrive 的变量。然后我们使用第二个 WMI 查询在驱动器上搜索名为 Budget.xls 的文件。以下代码可执行此操作:

Set colFiles = objWMIService.ExecQuery _

        ("Select * From CIM_DataFile Where FileName = 'Budget' " & _

            "AND Extension = 'xls' AND Drive = '" & strDrive & "'")

诚然,此查询看起来有点复杂;这是因为 WMI 将文件名 (Budget) 和文件扩展名 (xls) 视为两个独立的属性。因此我们必须在 WHERE 子句中使用三个参数:文件名 (Budget),文件扩展名 (xls),以及要搜索的驱动器。请注意,我们没有将驱动器盘符硬编码到其中,而是使用了变量 strDrive。正如我们刚才所说的那样,乍一看起来,感觉它有点儿复杂,不过它确实管用。

在发布查询并等待脚本对 CD/DVD 驱动器进行搜索(不会超过 15-20 秒就能完成)之后,我们就可以看一看找到了多少名为 Budget.xls 的文件。如果集合包含至少一个文件 (colFiles.Count > 0),那么我们就为找到的各个文件回显“Name”属性。(如果计数等于 0,则意味着没有找到任何名为 Budget.xls 的文件,因此我们根本不用执行任何操作。)然后,此脚本继续循环并在集合中的下一个 CD/DVD 驱动器上进行搜索。直到搜索完每个 CD/DVD 驱动器并报告成功后,此操作才结束。

【转自世纪安全网 http://www.21safe.com】
文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
     
     
     
    用户注册邮箱被盗 MSN已
    用户注册邮箱被盗 MSN已
    CSO们如何应对新技术的安
    普通企业如何应对黑客攻
    企业该如何防范由VoIP引
    浅谈IT如何实现企业的应
    黑客与正规企业是如何串
    如何无限制申请Gmail 2.
    企业如何避免人为因素的
    社会工程学:如何利用黑客

    Copyright © 2006-2008 www.anquan365.com 安全365
    建议使用1024*768分辨率及第三方浏览器对本站进行浏览