Я пишу сценарий, который автоматически запускается при запуске компьютера (XP), сценарий фактически отображает сетевой диск на Windows. У меня проблема в том, что DHCP в сети не отвечает достаточно быстро и сценарий выполняется до того, как система получит IP. Так что произойдет ошибка.
Перед тем, как поместить систему в AD, мое решение - заставить сценарий «засыпать» примерно на 30 секунд, и, конечно же, это просто специальное решение. Любой связанный скрипт, который может сделать такую работу?
Распространенный (и несколько неуклюжий) способ решить эту проблему - написать функцию, которая «ждет сеть», по сути пытаясь проверить связь с хостом до тех пор, пока она не завершится успешно. Вы можете дополнительно указать значение тайм-аута, при котором сценарий в конечном итоге откажется. У меня есть версия этой функции на основе JScript, если вы хотите, чтобы я ее опубликовал.
Я бы подумал, что более элегантный способ сделать это - использовать WMI для запроса статуса сетевого адаптера в цикле, пока у вас не будет действительного IP-адреса. Однако у меня нет примера этого.
Вот еще несколько вещей, о которых следует подумать при выборе решения. Вам решать, насколько надежным вы будете его добиваться.
Я не могу сказать наверняка из вопроса, но если компьютер присоединен к домену, вы можете применить политику:
Конфигурация компьютера \ Административные шаблоны \ Система \ Вход в систему \
Всегда ждите подключения к сети при запуске компьютера и входе в систему
через GPO, чтобы компьютер ждал подключения к сети перед выдачей приглашения на вход. Если компьютер не является членом домена, вы можете установить ту же политику с помощью GPEdit или, возможно, с помощью reghack.