基本上,我有一个VBScript,它收集当前登录用户的用户名,然后将其\\MYSERVER\Users\<username>映射到驱动程序(J:)。我遇到的麻烦是使这个永久化,在重新启动/注销后留在那里。这是我使用的代码:
Option Explicit
Dim objNetwork
Dim strDriveLetter, strRemotePath, strUserName
strDriveLetter = "J:"
strRemotePath = "\\MYSERVER\Users"
Set objNetwork = WScript.CreateObject("WScript.Network")
strUserName = objNetwork.UserName
objNetwork.MapNetworkDrive strDriveLetter, strRemotePath _
& "\" & strUserName
WScript.Echo " Launch Explorer, check: "& strDriveLetter
WScript.Quit发布于 2015-10-20 07:56:58
当有疑问时,请阅读文档
语法
object.MapNetworkDrive(strLocalName, strRemoteName, [bUpdateProfile], [strUser], [strPassword])参数 ..。 bUpdateProfile 可选。指示映射信息是否存储在当前用户配置文件中的布尔值。如果提供了bUpdateProfile,且其值为true,则映射存储在用户配置文件中(默认为false)。
所以你需要改变这个:
objNetwork.MapNetworkDrive strDriveLetter, strRemotePath _
& "\" & strUserName这方面:
objNetwork.MapNetworkDrive strDriveLetter, strRemotePath _
& "\" & strUserName, True发布于 2015-10-20 07:58:53
MapNetworkDrive法:将共享网络驱动器添加到计算机系统中。
object.MapNetworkDrive(sLocalName, sRemoteName, [bUpdateProfile], [sUser], [sPassword])参数
object WshNetwork对象sLocalName字符串值,指示将在本地知道映射驱动器的名称。sRemoteName字符串值,指示共享的UNC名称(\\xxx\yyy)。bUpdateProfile可选。指示映射信息是否存储在当前用户配置文件中的布尔值。如果提供了bUpdateProfile,并且值为true,则映射将存储在用户配置文件中(默认为false)。sUser可选。指示用户名的字符串值。如果要使用当前用户以外的其他人的凭据映射网络驱动器,则必须提供此参数。sPassword可选。指示用户密码的字符串值。如果要使用当前用户以外的其他人的凭据映射网络驱动器,则必须提供此参数。然而,使用
objNetwork.MapNetworkDrive strDriveLetter, strRemotePath & "\" & strUserName, True可能会引发一些错误,例如
-2147024811本地设备名称已在使用(&H80070055),或-2147023694本地设备名与另一个网络资源(&H800704B2)有一个可记忆的连接。注意,下一个检查映射驱动器和有条件删除当前驱动器映射的代码段(如果存在)可能会失败。
On Error GoTo 0
Dim oDrives, i
Set oDrives = objNetwork.EnumNetworkDrives
For i = 0 to oDrives.Count - 1 Step 2
If oDrives.Item( i) = strDriveLetter Then
' remove current drive mapping, force the removal, force persistent
objNetwork.RemoveNetworkDrive strDriveLetter, True, True
' and wait for network drive removal (this could take some time)
Wscript.Sleep 800
Exit For
End If
Next
objNetwork.MapNetworkDrive strDriveLetter, strRemotePath & "\" & strUserName, True如果有挂起(仍然记得,但没有被EnumNetworkDrives枚举)驱动器映射暂时断开连接,例如由objNetwork.RemoveNetworkDrive strDriveLetter, True, False
因此,涉及以下一些基本错误处理:
On Error Resume Next
' remove current drive mapping, force the removal, force persistent
objNetwork.RemoveNetworkDrive strDriveLetter, True, True
' and wait for network drive removal (this could take some time)
Wscript.Sleep 800
Err.Clear
' map network drive, force persistent
objNetwork.MapNetworkDrive strDriveLetter, strRemotePath & "\" & strUserName, True
On Error GoTo 0https://stackoverflow.com/questions/33224866
复制相似问题