文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

怎么用vbs找到映射到共享的所有驱动器并重新映射它们

2023-06-08 14:12

关注

这篇文章主要介绍“怎么用vbs找到映射到共享的所有驱动器并重新映射它们”,在日常操作中,相信很多人在怎么用vbs找到映射到共享的所有驱动器并重新映射它们问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用vbs找到映射到共享的所有驱动器并重新映射它们”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

嗯,不论是好是坏,并没有可以自动重新映射网络驱动器的方法;因此,我们不得不退而求其次找出其他解决方法。但这并不是太槽糕:我们可以找到符合条件的所有驱动器,取消映射这些驱动器,然后将每个驱动器重新映射到新的位置。 

当然,这听起来挺复杂,但实际上很简单。以下脚本可用来查找映射到 \\server1\share 的所有驱动器,并将这些驱动器重新映射到 \\server2\share:

Set objNetwork = CreateObject("Wscript.Network")

Set colDrives = objNetwork.EnumNetworkDrives

For i = 0 to colDrives.Count-1 Step 2
    If colDrives.Item(i + 1) = "\\server1\share" Then
        strDriveLetter = colDrives.Item(i)
        objNetwork.RemoveNetworkDrive strDriveLetter
        objNetwork.MapNetworkDrive strDriveLetter, "\\server2\share"
    End If
Next

该脚本将首先创建 Wscript.Network 对象实例。我们应当注意到了,无论何时当我们要映射或取消映射网络驱动器时,都需要使用 Windows Script Host,这是因为 WMI 没有任何映射或取消映射驱动器的方法。没关系,这只不过意味着我们的脚本必须在本地计算机上运行。通常情况下都不能针对远程计算机来使用 WSH 方法。这是一个您不得不面临的限制。(有一个方法可解决此问题:将该脚本作为登录脚本运行。登录脚本将始终在本地运行。)

创建 Network 对象之后,调用 EnumNetworkDrives 方法,以便返回计算机上的所有已映射网络驱动器的集合:

Set colDrives = objNetwork.EnumNetworkDrives

这将使我们亲眼见到那个被称为已映射网络驱动器集合的奇特的小东西。今天我们就不详细介绍此集合的体系结构了,请参阅关于网络驱动器的上一个专栏。只需说明每个已映射的驱动器实际占用此集合中的两项:第一项为驱动器号,第二项为 UNC 路径。如果计算机上有三个已映射的驱动器,则集合内容将如下所示:

X:
\\server1\share1
Y:
\\server2\share2
Z:
\\server3\share3

这就是我们必须使用看起来这么奇怪的 For Next 循环来遍历集合的原因,此代码行使我们在集合中每隔一项就跳过一项,进而确保我们仅查看各个驱动器号项:

For i = 0 to colDrives.Count-1 Step 2

然后,对于每个驱动器号,我们需要确定相应的 UNC 路径是否为 \\server1\share1。请记住,如果查看集合中的 0 项(集合中的第一项的索引号为 0),则看到的是驱动器号,相应的 UNC 路径将为该索引号 (0) 加 1。因此,我们用如下代码来确定第一个驱动器是否正好被映射到 \\server1\share1:

If colDrives.Item(i + 1) = "\\server1\share" Then

让我们假定就是这样。在这种情况下,我们需要获取驱动器号(0 项),并将该值存储在名为 strDriveLetter 的变量中。然后,调用 RemoveNetworkDrive 方法来取消映射该驱动器,再调用 MapNetworkDrive 方法将同一驱动器号重新映射到新的共享:

objNetwork.MapNetworkDrive strDriveLetter, "\\server2\share"

不,这并不是所谓的“引爆点”,因为您刚刚推翻了试图遵循这一切的想法。我们知道是有点混乱,但这是由于已映射网络驱动器集合的特殊构造方式而造成的。如果这对于您没有任何意义,尽管忽略它好了,您应当看到事情整体上是有逻辑性的。也许,是有点混乱的逻辑,但仍然是逻辑。

到此,关于“怎么用vbs找到映射到共享的所有驱动器并重新映射它们”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯