【发布时间】:2014-10-03 19:25:43
【问题描述】:
我有 logon.bat 脚本,每次用户登录其 Active Directory 域的工作站时都会运行该脚本。
此脚本使用如下命令映射一些网络驱动器:
net use x: \\192.168.0.2\share1
net use y: \\192.168.0.3\share2
net use z: \\192.168.0.4\share3
但是,对于某些工作站,此脚本在工作站本身完全建立自己的 LAN 连接之前运行。然后用户转到开始菜单 > 计算机,并查看每个映射驱动器的红色 X。到这个时候,网络已经建立,所以如果他们点击红色的 X,它就会消失。不过,我希望 logon.bat 脚本在运行 net-use 命令之前验证网络是否已建立。
我已经看到了需要更改组策略设置或需要更改罪魁祸首工作站设置的解决方案。但是,我对在我当前的批处理脚本中专门解决此问题的解决方案感兴趣(不需要该脚本之外的任何其他脚本依赖项)。
我见过其他脚本解决方案,它们只是将超时(或睡眠)放入批处理脚本,以便在运行 net use 命令之前等待任意时间。这些解决方案提供的等待常数要么“映射驱动器的时间比它们可能被映射的时间稍晚”,要么“仍然冒着在网络建立之前运行 net-use 命令的风险”。
相反,我想要一个每秒检查一次网络是否已建立的脚本,然后(成功后)继续运行前面提到的“net use”命令。
如何在 Windows 批处理脚本中实现这一点?
【问题讨论】:
标签: windows batch-file active-directory network-programming mapped-drive