Назад | Перейти на главную страницу

VBScript, ожидающий ответов DHCP перед выполнением

Я пишу сценарий, который автоматически запускается при запуске компьютера (XP), сценарий фактически отображает сетевой диск на Windows. У меня проблема в том, что DHCP в сети не отвечает достаточно быстро и сценарий выполняется до того, как система получит IP. Так что произойдет ошибка.

Перед тем, как поместить систему в AD, мое решение - заставить сценарий «засыпать» примерно на 30 секунд, и, конечно же, это просто специальное решение. Любой связанный скрипт, который может сделать такую ​​работу?

Распространенный (и несколько неуклюжий) способ решить эту проблему - написать функцию, которая «ждет сеть», по сути пытаясь проверить связь с хостом до тех пор, пока она не завершится успешно. Вы можете дополнительно указать значение тайм-аута, при котором сценарий в конечном итоге откажется. У меня есть версия этой функции на основе JScript, если вы хотите, чтобы я ее опубликовал.

Я бы подумал, что более элегантный способ сделать это - использовать WMI для запроса статуса сетевого адаптера в цикле, пока у вас не будет действительного IP-адреса. Однако у меня нет примера этого.

Вот еще несколько вещей, о которых следует подумать при выборе решения. Вам решать, насколько надежным вы будете его добиваться.

  • Тот факт, что DHCP вернул действительный IP-адрес, не означает, что вы можете подключиться к своему файловому серверу.
  • Тот факт, что вы можете проверить связь с файловым сервером, не означает, что сопоставление диска всегда будет работать.

Я не могу сказать наверняка из вопроса, но если компьютер присоединен к домену, вы можете применить политику:

Конфигурация компьютера \ Административные шаблоны \ Система \ Вход в систему \

Всегда ждите подключения к сети при запуске компьютера и входе в систему

через GPO, чтобы компьютер ждал подключения к сети перед выдачей приглашения на вход. Если компьютер не является членом домена, вы можете установить ту же политику с помощью GPEdit или, возможно, с помощью reghack.