Mengapa perubahan nama komputer memerlukan boot ulang di Windows?


30

Saya mengerti bahwa mengubah nama host / nama komputer untuk mesin berbasis Windows (Klien atau Server) memerlukan reboot. Saya menyadari bahwa sekali nama komputer diubah, nama mesin yang tertunda disimpan dalam sistem registry dan diterapkan pada boot berikutnya. Saya tidak dapat menemukan banyak dokumentasi teknis tentang MENGAPA ini diperlukan.

Dapatkah seseorang tolong tunjukkan saya ke arah yang benar pada tantangan teknis di balik mengapa perubahan nama host tidak lengkap tanpa sistem reboot?


1
Menambahkan komentar ke jawaban yang diterima dengan tautan ke artikel MSDN tentang mengapa reboot diperlukan.
Ameer Deen

Saya tidak akan mengatakan bahwa artikel yang terhubung menjelaskan mengapa reboot diperlukan. Lagi pula, jika itu hanya masalah menyalinnya ke lokasi lain itu, maka perintah untuk mengubah nama dapat melanjutkan dan menyalinnya. Kalimat kunci dalam jawaban yang diterima adalah "Banyak layanan dan aplikasi Windows, baik yang ditulis oleh Microsoft maupun pihak ke-3, yang menggunakan nama host sistem, biasanya hanya membacanya sekali saat startup dan tidak pernah membacanya lagi."
ToolmakerSteve

Jawaban:


56

Anda tidak harus memulai ulang segera setelah mengganti nama mesin ... tapi jangan berharap setiap layanan dan fungsi untuk mengambil nama baru.

Hal-hal seperti variabel lingkungan sistem dibaca sekali, pada saat startup sistem. Jika Anda mengubah variabel-variabel itu, berbagai komponen Windows tidak akan mengambilnya sampai mereka dimulai ulang. Beberapa komponen itu sangat terintegrasi dengan OS, Anda mungkin juga me-restart seluruh OS.

Banyak layanan dan aplikasi Windows, baik yang ditulis oleh Microsoft maupun pihak ke-3, yang menggunakan nama host sistem, biasanya hanya membacanya sekali saat startup dan tidak pernah membacanya lagi.

Saya tahu jika saya sedang menulis aplikasi yang membaca nama host mesin, akan sangat konyol bagi saya untuk secara berkala polling untuk itu kalau-kalau itu berubah.

Dalam sistem operasi seperti Linux, Anda melihat hal yang sama. Anda dapat mengubah nama host tanpa me-reboot, tetapi Anda harus me-restart beberapa komponen yang sangat mendasar dari sistem untuk membuatnya mengambil nama baru. Linux lebih modular daripada Windows, meskipun Windows telah banyak berkembang dalam hal modularitas.

Salah satu cara untuk mendeteksi apakah sistem Windows menunggu operasi penggantian nama komputer adalah dengan memeriksa registri. Jika isinya

HKLM\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName

dan

HKLM\SYSTEM\CurrentControlSet\Control\ComputerName\ActiveComputerName

tidak sama, itu berarti sistem memiliki operasi rename yang tertunda yang akan selesai saat sistem dinyalakan kembali.


10
Terima kasih atas tipnya Ryan. Saya mencari kode untuk System.Environment.MachineName (menggunakan dotnetpeek). Ia menggunakan fungsi GetComputerName di Kernel32.dll yang: "Mengambil nama NetBIOS dari komputer lokal. Nama ini dibuat saat startup sistem, ketika sistem membacanya dari registri." ( msdn.microsoft.com/en-us/library/windows/desktop/… ). Dengan kata lain, Anda benar itu hanya di-cache saat startup. Hanya ingin beberapa dokumentasi untuk mendukungnya. Terima kasih.
Ameer Deen

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.