我希望能够偶尔连接到我的笔记本电脑上的(wifi)网络硬盘。如果我使用WinXP资源管理器中的“映射网络驱动器”命令,我必须输入驱动器的IP地址和名称,然后是路由器名称及其密码。太难记了!
我正在寻找一种编写此类操作脚本的方法(可以使用任何语言),例如:
map Z: \\10.0.1.1\DRIVENAME "ROUTERNAME\PW"
我不特别关心脚本用什么语言编写。顺便说一下,我知道DOS的“subst”命令,但是由于密码保护,我认为在这种情况下无法使用它。
我希望能够偶尔连接到我的笔记本电脑上的(wifi)网络硬盘。如果我使用WinXP资源管理器中的“映射网络驱动器”命令,我必须输入驱动器的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”是路由器期望的用户名,那么这个命令行代码为什么不起作用?
net use Z: "\\10.0.1.1\DRIVENAME" /user:"ROUTERNAME" "PW"
或者您可以使用一个小的VBScript:
Option Explicit
Dim u, p, s, l
Dim Network: Set Network= CreateObject("WScript.Network")
l = "Z:"
s = "\\10.0.1.1\DRIVENAME"
u = "ROUTERNAME"
p = "PW"
Network.MapNetworkDrive l, s, False, u, p
Tomalak's的回答对我非常有效(+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
为什么不映射网络驱动器,但取消选中“重新登录时自动连接”?只有在尝试访问它时,驱动器才会连接。请注意,如果一些应用程序指向它,则会失败,但是如果您直接通过Windows资源管理器访问文件,则效果很棒。
// Below the MSDN page for MapNetworkDrive Method with link and in case if Microsoft breaks it like every now and then the path to the documentation of now.
// https://msdn.microsoft.com/en-us/library/8kst88h6(v=vs.84).aspx
// MSDN Library -> Web Development -> Scripting -> JScript and VBScript -> Windows Scripting -> Windows Script Host -> Reference (Windows Script Host) -> Methods (Windows Script Host) -> MapNetworkDrive Method
var WshNetwork = WScript.CreateObject('WScript.Network');
function localNameInUse(localName) {
var driveIterator = WshNetwork.EnumNetworkDrives();
for (var i=0, l=driveIterator.length; i < l; i += 2) {
if (driveIterator.Item(i) == localName) {
return true;
}
}
return false;
}
function mount(localName, remoteName) {
if (localNameInUse(localName)) {
WScript.Echo('"' + localName + '" drive letter already in use.');
} else {
WshNetwork.MapNetworkDrive(localName, remoteName);
}
}
function unmount(localName) {
if (localNameInUse(localName)) {
WshNetwork.RemoveNetworkDrive(localName);
}
}