执行前等待 DHCP 答复的 VBScript

执行前等待 DHCP 答复的 VBScript

我正在编写一些在计算机(XP)启动时自动执行的脚本,该脚本实际上是将网络驱动器映射到 Windows。我遇到的问题是网络中的 DHCP 响应速度不够快,并且脚本在系统获取 IP 之前执行。因此会发生错误。

在将系统置于 AD 下之前,我的解决方案是让脚本“休眠”约 30 秒,当然这只是一个临时解决方案。有没有相关的脚本可以完成这样的工作?

答案1

解决这个问题的一个常见(但有点笨拙)方法是编写一个“等待网络”的函数,本质上是尝试 ping 主机直到成功。您可以选择包含一个超时值,脚本最终将在该超时值处放弃。如果您希望我发布它,我有一个基于 JScript 的此函数版本。

我认为更优雅的方法是使用 WMI 循环查询网络适配器的状态,直到获得有效的 IP 地址。不过我没有这样做的例子。

在选择解决方案时,还需要考虑以下几点。您需要自行决定解决方案的稳健程度。

  • DHCP 返回了有效 IP 并不意味着你可以连接到文件服务器
  • 仅仅因为你可以 ping 文件服务器并不意味着映射驱动器总是有效的

答案2

我无法从问题中确定,但如果 PC 加入了域,则可以应用该策略:

计算机配置\管理模板\系统\登录\

计算机启动和登录时始终等待网络

通过 GPO 强制 PC 等待网络后再给出登录提示。如果 PC 不是域成员,您可以使用 GPEdit 或通过 reghack 设置相同的策略。

相关内容