| 网站首页 | 新闻中心 | 系统安全 | 网络安全 | 安全技术 | 下载中心 | 
课件制作网.
收藏本站
设为首页
安全365
怎样知道计算机中是否有特定 CD?
怎样知道计算机中是否有特定 CD?
作者:佚名 文章来源:不详 点击数: 更新时间:2007-1-24 11:12:56
问:

您好,脚本专家!怎样知道计算机中是否有名为 MyApps 的 CD?

-- CB

答:

您好,CB。您知道,回答这道题几乎让脚本专家感觉不舒服。为什么?嗯,乍一看,解决这个问题听起来确实很复杂;但做起来却相当容易,容易到几乎让我们觉得就这么初级的主题写一篇专栏对我们很不公平。我们毕竟是脚本专家:我们应该只解决那些最难、最费力的问题。脚本专家会拿出简单方法吗?从来没有!

但是,正如我们所说,回答这个问题几乎让我们感觉不舒服:

strComputer = "."

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



Set colItems = objWMIService.ExecQuery _

    ("Select * From Win32_CDROMDrive Where VolumeName = 'MyApps'")



Wscript.Echo colItems.Count

这个问题非常容易回答的原因是 WMI 类 Win32_CDROMDrive 包括一个名为 VolumeName 的属性。如果 CD 正巧在 CD 驱动器中,VolumeName 属性便等于该 CD 的名称(或者至少等于该 CD 在 Windows Explorer 中显示的名称)。如果想知道名为 MyApps 的 CD 是否碰巧闲置在一台计算机中,只需要将这台计算机中 VolumeName 等于 MyApps 的 CD 数量加起来即可。如果该数目等于 0,则表示 CD 没有插入到该台计算机上的任何驱动器中。如果该数目大于 0,则表示具有此名称的 CD 插入到该台计算机中。

此脚本所要做的几乎就是加总所有 CD。我们首先绑定到本地计算机上的 WMI 服务。您理所当然能够在远程计算机上执行这个任务;实际上,这正是此脚本真正派上用场之处。(如果要知道 CD 是否插入本地计算机,打开驱动器看一下可能更容易。)更有趣的是,假定将这个 CD 遗留在一百台不同的计算机中的任意一台上。在这种情况下,可能就要将此代码粘贴到其中一个多计算机脚本模板中,然后在大约 100 台计算机的每一台上进行搜索。有关完成这个任务的详细信息,请参阅多计算机脚本模板页。

好的。连接到 WMI 服务后,接着是使用这行代码检索所有 VolumeName 等于 MyApps(还有 VolumeName 是该 CD 在 Windows Explorer 中显示的名称)的 CD 驱动器的集合:

Set colItems = objWMIService.ExecQuery _

    ("Select * From Win32_CDROMDrive Where VolumeName = 'MyApps'")

此时只需回显 Count,它将告诉我们计算机中 MyApps CD 的数量。

伙计,我们今天结束得有点早,不是吗?好吧,下面的脚本如何?想一想我们曾提到过的多计算机模板的情况,以下是一个修订后的脚本,此脚本在名为 Servers.txt 的文本文件中列出的所有计算机上查找 MyApps CD:

On Error Resume Next



Const ForReading = 1



Set objFSO = CreateObject("Scripting.FileSystemObject")

Set objTextFile = objFSO.OpenTextFile("c:/scripts/servers.txt", ForReading)



Do Until objTextFile.AtEndOfStream 

    strComputer = objTextFile.Readline



    ' =====================================================================

    ' Insert your code here

    ' =====================================================================



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



    Set colItems = objWMIService.ExecQuery _

        ("Select * From Win32_CDROMDrive Where VolumeName = 'MyApps'")



    Wscript.Echo strComputer, colItems.Count



    ' =====================================================================

    ' End

    ' =====================================================================



Loop



objTextFile.Close

正如您所看到的,我们所要做的只是将基本代码(稍微修改一下,回显计算机名称和找到的 CD 的数量)插入模板中标记为在此处插入您的代码的部分。然后,此脚本就会在文本文件中列出的每台计算机上搜索 CD。

能有更简单的吗?可能没有。这表示我们几乎要在下次弄个更难一些的问题了。几乎是这样。

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

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
     
     
     
    企业内部网络隔离与数据
    企业怎样制订加密策略 预
    让你知道codepage的重要
    怎样优化Apache服务器的
    我如何才能知道某个文件
    怎样用脚本更改法律警告
    如何知道启动可执行文件
    我怎样才能知道 Active 
    如何知道哪些脚本正在计
    如何知道注册表中是否存

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