我有一个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
取消映射,但失败了。
找不到网络连接。
所以我无法映射它。我无法取消映射。显然它存在于一些网络炼狱中。这里发生了什么?如何将这个新位置映射到我的脚本并可见?
答案 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注册表更改部分答案 2 :(得分:0)
可能是客户问题。
以下MS支持文章确定了具有所述症状的问题。
解决方法是更改尝试映射驱动器的客户端中的注册表值。
答案 3 :(得分:0)
如果系统帐户占用了它,则采用更程序化的方式。不需要 psexec。
在 PowerShell 管理提示符中:
New-PSDrive HKU Registry HKEY_USERS
Remove-Item "HKU:\.DEFAULT\Network\H"
重新启动计算机(不幸的是)。