Windows 映射网络驱动器的脚本

Windows 映射网络驱动器的脚本,windows,language-agnostic,scripting,Windows,Language Agnostic,Scripting,我希望能够从笔记本电脑连接到(wifi)网络硬盘,但只是偶尔。如果在WinXP explorer中使用“映射网络驱动器”命令,则必须输入驱动器的IP地址和名称,然后输入路由器名称及其密码。太多不记得了 我正在寻找一种编写此活动脚本的方法(使用任何语言),例如: map Z: \\10.0.1.1\DRIVENAME "ROUTERNAME\PW" 我并不特别在乎剧本是用什么语言写的。顺便说一句,我知道DOS'subst'命令,但由于密码保护,我认为在这种情况下不能使用它。使用net use命令

我希望能够从笔记本电脑连接到(wifi)网络硬盘,但只是偶尔。如果在WinXP explorer中使用“映射网络驱动器”命令,则必须输入驱动器的IP地址和名称,然后输入路由器名称及其密码。太多不记得了

我正在寻找一种编写此活动脚本的方法(使用任何语言),例如:

map Z: \\10.0.1.1\DRIVENAME "ROUTERNAME\PW"

我并不特别在乎剧本是用什么语言写的。顺便说一句,我知道DOS'subst'命令,但由于密码保护,我认为在这种情况下不能使用它。

使用
net use
命令:

net use Z: \\10.0.1.1\DRIVENAME
编辑1:此外,我认为密码应该简单地附加:

net use Z: \\10.0.1.1\DRIVENAME PASSWORD
您可以通过以下途径了解有关此命令及其参数的更多信息:

net use ?
编辑2:正如Tomalak在评论中提到的,您可以稍后通过

net use Z: \delete
请尝试使用命令

这是否无效(假设“ROUTERNAME”是路由器期望的用户名)


为什么不映射网络驱动器,但取消选择“登录时重新连接”?仅当您尝试访问驱动器时,驱动器才会连接。请注意,如果某些应用程序指向它,它们将失败,但如果您直接通过Windows资源管理器访问文件,这非常有效。

答案对我来说非常有效(+1)

我只需要稍微修改一下就可以了,我不需要密码——这是公司域名:

Option Explicit
Dim l: l = "Z:"
Dim s: s = "\\10.10.10.1\share"
Dim Network: Set Network = CreateObject("WScript.Network")
Dim CheckDrive: Set CheckDrive = Network.EnumNetworkDrives()
Dim DriveExists: DriveExists = False
Dim i

For i = 0 to CheckDrive.Count - 1
  If CheckDrive.Item(i) = l Then
    DriveExists = True
  End If
Next

If DriveExists = False Then
  Network.MapNetworkDrive l, s, False
Else
  MsgBox l + " Drive already mapped"
End If
或者,如果要断开驱动器的连接:

For i = 0 to CheckDrive.Count - 1
  If CheckDrive.Item(i) = l Then 
    WshNetwork.RemoveNetworkDrive CheckDrive.Item(i)
  End If
Next
这里是的JScript变体

//在带有链接的MapNetworkDrive方法的MSDN页面下方,如果Microsoft像往常一样破坏它,则指向now文档的路径。
// https://msdn.microsoft.com/en-us/library/8kst88h6(v=vs.84)
//MSDN库->Web开发->脚本->JScript和VBScript->Windows脚本->Windows脚本主机->参考(Windows脚本主机)->方法(Windows脚本主机)->MapNetworkDrive方法
var WshNetwork=WScript.CreateObject('WScript.Network');
函数localNameInUse(localName){
var driveIterator=WshNetwork.EnumNetworkDrives();
for(var i=0,l=driveIterator.length;i
要卸载它,有点混淆的删除选项“net use z:/delete”不能简单地添加密码,只能添加用户名。在“net use”中,它说:net use[devicename |*][\\computername\sharename[\volume][password |*]]。。。根据文档的要求,在密码后面加一个空格应该是有效的。
Option Explicit
Dim l: l = "Z:"
Dim s: s = "\\10.10.10.1\share"
Dim Network: Set Network = CreateObject("WScript.Network")
Dim CheckDrive: Set CheckDrive = Network.EnumNetworkDrives()
Dim DriveExists: DriveExists = False
Dim i

For i = 0 to CheckDrive.Count - 1
  If CheckDrive.Item(i) = l Then
    DriveExists = True
  End If
Next

If DriveExists = False Then
  Network.MapNetworkDrive l, s, False
Else
  MsgBox l + " Drive already mapped"
End If
For i = 0 to CheckDrive.Count - 1
  If CheckDrive.Item(i) = l Then 
    WshNetwork.RemoveNetworkDrive CheckDrive.Item(i)
  End If
Next