在“net use”启动脚本之后的炼狱网络驱动器

时间:2011-05-06 16:25:52

标签: networking command-line nant network-share

我有一个BAT文件,它通过内部服务器上的组策略在启动时运行。 BAT执行一个nant脚本,然后通过net use命令映射多个外部位置。到目前为止,所有映射都通过公共IP连接到属于不同域的外部计算机。

net use e: \\111.111.111.111\someshare$ /persistent:yes
net use f: \\111.111.111.222\someshare$ /persistent:yes
net use g: \\111.111.111.333\someshare$ /persistent:yes

这已经成功了。现在,我添加了一台新计算机,该计算机是相同网络和域的一部分,作为内部服务器。虽然旧映射继续有效,但新映射不会。

net use h: \\anothercomputer\d$\somefolder /persistent:yes

我只知道这不起作用,因为依赖于此驱动器映射的后续脚本都失败了,说该位置不存在。如果我尝试手动运行相同的连接脚本,net use

  

发生系统错误85 ...本地设备名称已被使用。

好的,所以它已经在某处以某种方式映射了。所以我尝试使用net use h: /d取消映射,但失败了。

  

找不到网络连接。

所以我无法映射它。我无法取消映射。显然它存在于一些网络炼狱中。这里发生了什么?如何将这个新位置映射到我的脚本并可见?

4 个答案:

答案 0 :(得分:2)

首先检查驱动器h:是否使用其他帐户进行映射。从服务映射驱动器时,它只能从系统帐户获得,并且还有一个不同的正常运行,或使用UAC“以管理员身份运行”功能。如果要取消映射,则必须采用与映射相同的方式。

在尝试映射驱动器之前,您可以检查是否可以ping另一台计算机。

您还可以尝试使用明确的用户名和密码连接到其他计算机。如果您将其映射到登录脚本中,则无需使用/ persistent选项。

net use \\anothercomputer /user:username password > c:\temp\netuse.log 2>&1
net use h: \\anothercomputer\d$\somefolder 

在上面的示例中,我将第一个net use命令的输出写入日志文件,因此您可以在之后检查错误消息。

如果使用/ persistent选项,则不需要再次重新映射,可以使用

if exist h:\nul ...

检查驱动器h:是否已存在。

答案 1 :(得分:0)

Microsoft已经证明这是以下系统中普遍存在的问题:

Microsoft Windows 2000 Server

Microsoft Windows 2000 Advanced Server

Microsoft Windows 2000 Professional Edition

如果您的内部服务器正在运行其中任何一个,那么下面的链接肯定会对您有所帮助。 即便如此,检查解决方案也没有坏处。另请查看链接

页面底部的Windows注册表更改部分

http://support.microsoft.com/kb/308337#top

答案 2 :(得分:0)

可能是客户问题。

以下MS支持文章确定了具有所述症状的问题。

解决方法是更改​​尝试映射驱动器的客户端中的注册表值。

https://support.microsoft.com/en-us/kb/253821

答案 3 :(得分:0)

如果系统帐户占用了它,则采用更程序化的方式。不需要 psexec。

在 PowerShell 管理提示符中:

New-PSDrive HKU Registry HKEY_USERS
Remove-Item "HKU:\.DEFAULT\Network\H"

重新启动计算机(不幸的是)。