Entendo que alterar o nome do host / nome do computador para uma máquina com Windows (cliente ou servidor) requer uma reinicialização. Sei que, uma vez que o nome de um computador é alterado, um nome de máquina pendente é armazenado no registro do sistema e aplicado na próxima inicialização. Não consegui encontrar muita documentação técnica sobre exatamente por que isso era necessário.
Alguém pode me indicar a direção certa sobre os desafios técnicos por trás de por que uma alteração no nome do host não é concluída sem a reinicialização do sistema?
Respostas:
Você não precisa reiniciar imediatamente após renomear a máquina ... apenas não espere que todos os serviços e funções apareçam no novo nome.
Coisas como variáveis de ambiente do sistema são lidas uma vez, na inicialização do sistema. Se você alterar essas variáveis, os vários componentes do Windows não serão detectados até que sejam reiniciados. Alguns desses componentes estão tão profundamente integrados ao sistema operacional que é possível reiniciar todo o sistema operacional.
Muitos serviços e aplicativos do Windows, tanto os criados pela Microsoft quanto os de terceiros, que usam o nome do host do sistema, normalmente o leem apenas uma vez na inicialização e nunca mais o leem.
Sei que estava escrevendo um aplicativo que lia o nome do host da máquina, seria uma tolice da minha parte fazer pesquisas periodicamente para o caso de mudar.
Em um sistema operacional como o Linux, você vê a mesma coisa. Você pode alterar o nome do host sem reiniciar, mas é necessário reiniciar alguns componentes muito básicos do sistema para que eles sigam o novo nome. O Linux é mais modular que o Windows, embora o Windows tenha percorreu um longo caminho em termos de modularidade.
Uma maneira de detectar se um sistema Windows está pendente de uma operação de renomeação de computador é verificar o registro. Se o conteúdo de
HKLM\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName
e
HKLM\SYSTEM\CurrentControlSet\Control\ComputerName\ActiveComputerName
não são os mesmos, isso significa que o sistema possui uma operação de renomeação pendente que será concluída na próxima vez em que o sistema for reiniciado.
fonte
Aqui está um script para pular a reinicialização: https://gist.github.com/timnew/2373475
fonte