| 网站首页 | 新闻中心 | 系统安全 | 网络安全 | 安全技术 | 下载中心 | 
课件制作网.
收藏本站
设为首页
安全365
如何确定驱动器的驱动器标签?
如何确定驱动器的驱动器标签?
作者:佚名 文章来源:不详 点击数: 更新时间:2007-1-24 11:14:50
问:

您好,脚本专家!如果给定了驱动器盘符,如何确定驱动器标签?

-- PM

答:

您好,PM。您知道,整天无所事事,只是每隔 15 分钟左右就看看表,确认一下日期和时间,在经历了这样的一个冬季后,编写此专栏的脚本专家高兴地宣布棒球赛季正式开始了。他又能去享受伟大的美国式休闲娱乐。他又能帮助美国年轻人认识到团队协作和体育道德的价值。最为重要的是,他又能每天提前一两个小时离开办公室,去指导他的球队或去观看他儿子参加的当地中学生球队的比赛。

您一定感到奇怪为什么他对棒球如此着迷。

换言之,我们的脚本专栏作家今天心情很好。当然,这可能不会持续多久:毕竟,今年 Kirkland Fire 队不太可能像上个赛季那样战胜联盟中其他所有队。不过今天,我们感觉很好,并打算庆祝一下。我们决定不仅要回答您的问题,而且还要回答另一个您不曾问过的问题。这算不算是一项服务?

重要的事情先来。您很想知道在给定驱动器盘符的情况下,如何确定驱动器的驱动器标签。好吧,看看使用下面的脚本会怎么样:

strComputer = "."



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

Set colItems = objWMIService.ExecQuery _

    ("Select * From Win32_LogicalDisk Where DeviceID = 'D:'")



For Each objItem in colItems

    Wscript.Echo objItem.VolumeName 

Next

嗯,没错,它一个非常简单的小脚本。(嘿,这是棒球赛季:我们没有时间编写脚本,而是在干别的工作!)我们首先连接本地计算机上的 WMI 服务;也可以在远程计算机上执行相同的任务,只需将该计算机的名称赋给变量 strComputer 即可。然后,我们便可使用该行代码返回含有 DeviceID 为 D 的计算机上所有驱动器的集合:

Set colItems = objWMIService.ExecQuery _

    ("Select * From Win32_LogicalDisk Where DeviceID = 'D:'")

因为计算机的驱动器盘符必须唯一,因此我们知道集合中至多只有一项:驱动器 D(这正是我们所需要的)。要确定驱动器标签,我们只需建立一个 For Each 循环,以使我们能遍历这个仅包含一个项目的集合;在该循环内,我们将回显 VolumeName 属性的值:

Wscript.Echo objItem.VolumeName

就是这样。如果要反过来 - 也就是通过给定驱动器标签确定 DeviceID - 好吧,您只需运行脚本:

strComputer = "."



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

Set colItems = objWMIService.ExecQuery _

    ("Select * From Win32_LogicalDisk Where VolumeName = 'Data Drive'")



For Each objItem in colItems

    Wscript.Echo objItem.DeviceID 

Next

酷吧?

但是等等:先别走。那毕竟只是我们承诺另外提供给您的附赠答案(就是您未曾问过的那个问题的答案)的三分之一。已经解决了确定驱动器的驱动器标签的问题,接下来的逻辑问题便是:我能使用脚本来更改驱动器的驱动器标签吗?如果不是棒球赛季,我们的回答很可能是:“不,不能。现在请走开,不要打扰我们。”不过,看看,这棒球赛季,我们的答案会有点不同:“您当然能这样做。我们十分乐意向您展示如何去做。”

实际上,下面就是实现过程。

strComputer = "."



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

Set colItems = objWMIService.ExecQuery _

    ("Select * From Win32_LogicalDisk Where DeviceID = 'D:'")



For Each objItem in colItems

    objItem.VolumeName = "Data Drive"

    objItem.Put_

Next

正如您所看到的那样,该脚本非常类似我们向您展示的第一个脚本。事实上,唯一差别就是 For Each 循环中的内容:

objItem.VolumeName = "Data Drive"

objItem.Put_

这一次我们打算做些什么?嗯,这一次我们要将新驱动器标签(在本例中为 Data Drive)分配给 VolumeName 属性;之所以能这样做是因为 VolumeName 恰好是一个可读写值。之后,只需调用 Put_ 方法(注意方法名末端的下划线)便可将更改写入驱动器。驱动器 D 现在将具有崭新的标签:Data Drive。看上去不比原来好多少,是吗?

现在,如果您不介意,我们有个 … 会议 … 要开。是的。一个会议 …。

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

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

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