Я понимаю, что для изменения имени хоста / имени компьютера на компьютере под управлением Windows (клиент или сервер) требуется перезагрузка. Я понимаю, что после изменения имени компьютера имя ожидающего компьютера сохраняется в системном реестре и применяется при следующей загрузке. Я не смог найти много технической документации о том, ПОЧЕМУ это требовалось.
Может ли кто-нибудь указать мне правильное направление на технические проблемы, связанные с тем, почему изменение имени хоста не завершено без перезагрузки системы?
Ответы:
Вам не нужно перезагружать компьютер сразу после переименования устройства ... просто не ожидайте, что все службы и функции получат новое имя.
Такие вещи, как системные переменные среды, читаются один раз при запуске системы. Если вы измените эти переменные, различные компоненты Windows не будут использовать их до тех пор, пока они не будут перезапущены. Некоторые из этих компонентов настолько тесно интегрированы с ОС, что вы могли бы перезапустить всю ОС.
Многие службы и приложения Windows, как написанные Microsoft, так и сторонними разработчиками, которые используют имя хоста системы, обычно читают его только один раз при запуске и никогда не читают его снова.
Я знаю, что если бы я писал приложение, которое считывало бы имя хоста компьютера, с моей стороны было бы довольно глупо периодически запрашивать его на случай, если оно изменится.
В операционной системе, такой как Linux, вы видите то же самое. Вы можете изменить имя хоста без перезагрузки, но вам нужно перезапустить некоторые самые базовые компоненты системы, чтобы они могли выбрать новое имя. Linux более модульный, чем Windows, хотя Windows прошла долгий путь с точки зрения модульности.
Один из способов определить, ожидает ли система Windows переименования компьютера, - это проверить реестр. Если содержание
HKLM\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName
а также
HKLM\SYSTEM\CurrentControlSet\Control\ComputerName\ActiveComputerName
это не то же самое, это означает, что в системе есть ожидающая операция переименования, которая завершится при следующей перезагрузке системы.
источник
Вот скрипт для пропуска перезагрузки: https://gist.github.com/timnew/2373475
источник