4

我有一个 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

4 回答 4

3

首先检查驱动器 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: 是否已经存在。

于 2011-05-15T08:14:12.403 回答
0

Microsoft 已记录,这是以下系统中普遍存在的问题:

微软视窗 2000 服务器

微软视窗 2000 高级服务器

微软视窗 2000 专业版

如果您的内部服务器正在运行其中任何一个,那么下面的这个链接肯定会对您有所帮助。即使在其他方面,检查解决方案也无害。另请查看链接中页面底部的 Windows 注册表更改部分

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

于 2011-05-15T05:23:00.620 回答
0

可能是客户端问题。

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

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

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

于 2015-11-19T05:17:49.763 回答
0

如果系统帐户占用它,这是一种更程序化的方式。不需要 psexec。

在 PowerShell 管理员提示符下:

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

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

于 2021-03-17T16:53:18.847 回答