好的,问题是这样的:
我让用户使用域中的登录脚本(用户名.bat)。脚本仅列出了 4 或 5 个(net use信:\\SERVER\directory\)。但是,当他们打开会话时,登录脚本不起作用,并对所有会话返回系统错误 53 或 67。我尝试在配置文件加载后运行脚本,一切运行正常,但仍然出现错误。
然后我尝试在 cmd.exe 中运行相同的命令。一切都映射正确。如果我使用“工具 > 映射网络驱动器”实用程序映射驱动器,它也能正常工作。
有什么因素会导致命令在批处理文件中运行时无法运行,但在手动输入时却可以正常运行?
答案1
两个选项:
1) 使用进程监视器 (SysInternals) 及其启动日志选项,过滤 CMD.EXE 和系统。监视登录过程和脚本执行。
2)在用户登录脚本中添加一个小测试,该脚本使用ROBOCOPY的待定切换到等待服务器/共享可用,即:
setlocal
set LOG_FILE=c:\temp\foo.log
echo %DATE% %TIME% >%LOG_FILE%
%SystemRoot%\System32\robocopy.exe \\server\directory c:\temp\test /tbd /eta /log+:%LOG_FILE%
echo %DATE% %TIME% >>%LOG_FILE%
endlocal
检查日志文件以查看 ROBOCOPY 是否必须等待服务器/共享可用。
答案2
我遇到了同样的问题。对我来说,解决方案是这样的:
- 我无法将网络共享的根目录映射到字母。
- 我不能在映射路径中使用尾随反斜杠。
所以:
net use B: \\MYSERVER
没有起作用并立即导致错误 53。
net use B: \\MYSERVER\Components\
没有起作用并在暂停后导致错误 53。
net use B: \\MYSERVER\Components
做过工作。
答案3
您可以尝试以下几件事。
尝试使用 fqdn 作为服务器名称,看看是否能获得更好的结果。
您也可以尝试禁用服务器上的任何防病毒软件以进行测试。我见过 McAfee 需要 1-3 分钟才能加载,然后才会允许任何类型的网络连接。当向 McAfee 询问此事时,他们说这是设置,以确保 McAfee 完全加载后才会允许任何 tcp/ip 连接。
答案4
如果没有脚本 - 如果您的批处理文件包含适用于 Windows 7 的 ifmember 语句,您可能会遇到问题。我一直在使用组策略来映射驱动器,因为我觉得如果需要的话,使用安全组会更容易、更灵活。