为什么这会更改映射驱动器 M 和 G 上的名称,而不仅仅是 M

为什么这会更改映射驱动器 M 和 G 上的名称,而不仅仅是 M

我根据此处的答案编写了这个 vbs(包含在下面):使用.bat 脚本覆盖映射驱动器名称?

正如我的标题所述,此代码正在更新驱动器 M 和 G 的标签,但应该只更新驱动器 M。两者都转到适当的(不同)位置。

' rename network map.vbs
' VBScript to map a network drive.
' Authors Guy Thomas and Barry Maybury
' Version 1.4 – April 2010
' April 2019, Gary Baddorf - function-ized it
' —————————————-
 Option Explicit
NameDrive "\\ad.hs.net\shared", "M:", "CH (\\ad.hs.net\shared\)"

WScript.Quit

Sub NameDrive(strRemotePath, strDriveLetter, strNewName)
    Dim objNetwork, objShell, err
    Set objShell = CreateObject("Shell.Application")
    Set objNetwork = CreateObject("WScript.Network") 

    ' Section to map the network drive
    On Error Resume Next
    objNetwork.RemoveNetworkDrive strDriveLetter
    If Err.Number <> 0 Then
      WScript.Echo "Error: " & Err.Description
      Err.Clear
    End If 
    objNetwork.MapNetworkDrive strDriveLetter, strRemotePath

    ' Section which actually (re)names the Mapped Drive
    objShell.NameSpace(strDriveLetter).Self.Name = strNewName

    Wscript.Echo "Check "& strDriveLetter & " for " & strNewName
    objNetwork.Dispose()
    objNetwork = Nothing
    objShell.Dispose()
    objShell = Nothing
End Sub

请注意,我可以在此行中切换,但它不执行任何操作:

NameDrive "\\ad.hs.net\shared", "G:", "CH2"

附加信息。我可以在注册表编辑器中查看每个网络路径的 MountPoints2,并且每个驱动器的 _LabelFromReg 值都是正确的。我还删除了它们并再次运行脚本,但没有成功。

答案1

出现此问题并放弃后不久,我重新启动了计算机。当然,驱动器现在有了正确的名称。我不会再弄乱它,看看再次运行脚本是否会遇到相同的问题。我觉得自己很愚蠢,没有早点重新启动,但在使用net use或注册表编辑时,这对我来说从来都不是问题。

相关内容