Tại sao thay đổi tên máy tính yêu cầu khởi động lại trong Windows?


30

Tôi hiểu rằng việc thay đổi tên máy chủ / tên máy tính cho máy dựa trên Windows (Máy khách hoặc Máy chủ) yêu cầu khởi động lại. Tôi nhận ra rằng một khi tên máy tính được thay đổi, tên máy đang chờ xử lý sẽ được lưu trong sổ đăng ký hệ thống và được áp dụng cho lần khởi động tiếp theo. Tôi không thể tìm thấy nhiều tài liệu kỹ thuật về chính xác TẠI SAO điều này là bắt buộc.

Ai đó có thể vui lòng chỉ cho tôi đi đúng hướng về những thách thức kỹ thuật đằng sau tại sao thay đổi tên máy chủ không hoàn thành mà không khởi động lại hệ thống không?


1
Đã thêm một nhận xét cho câu trả lời được chấp nhận với một liên kết đến một bài viết MSDN về lý do tại sao cần phải khởi động lại.
Ameer Deen

Tôi sẽ không nói rằng bài viết được liên kết giải thích tại sao cần phải khởi động lại. Rốt cuộc, nếu đó chỉ là vấn đề sao chép nó sang vị trí khác, thì lệnh thay đổi tên có thể tiếp tục và sao chép nó. Câu quan trọng trong câu trả lời được chấp nhận là "Nhiều dịch vụ và ứng dụng Windows, cả do Microsoft viết cũng như bên thứ 3 viết, sử dụng tên máy chủ của hệ thống, thường chỉ đọc một lần khi khởi động và không bao giờ đọc lại."
ToolmakerSteve

Câu trả lời:


56

Bạn không phải khởi động lại ngay lập tức sau khi đổi tên máy ... chỉ không mong đợi mọi dịch vụ và chức năng sẽ nhận được tên mới.

Những thứ như biến môi trường hệ thống được đọc một lần, khi khởi động hệ thống. Nếu bạn thay đổi các biến đó, các thành phần khác nhau của Windows sẽ không nhận ra chúng cho đến khi chúng được khởi động lại. Một số thành phần được tích hợp rất sâu với HĐH, bạn cũng có thể khởi động lại toàn bộ HĐH.

Nhiều dịch vụ và ứng dụng Windows, cả những dịch vụ được viết bởi Microsoft cũng như bên thứ 3, sử dụng tên máy chủ của hệ thống, thường chỉ đọc một lần khi khởi động và không bao giờ đọc lại.

Tôi biết nếu tôi đang viết một ứng dụng đọc tên máy chủ của máy, tôi sẽ khá ngớ ngẩn khi thăm dò định kỳ cho nó chỉ trong trường hợp nó thay đổi.

Trong một hệ điều hành như Linux, bạn sẽ thấy điều tương tự. Bạn có thể thay đổi tên máy chủ mà không cần khởi động lại, nhưng bạn phải khởi động lại một số thành phần rất cơ bản của hệ thống để khiến chúng nhận tên mới. Linux là mô-đun nhiều hơn Windows, mặc dù Windows đã đi một chặng đường dài về mặt mô-đun.

Một cách để phát hiện xem hệ thống Windows có đang chờ hoạt động đổi tên máy tính hay không là kiểm tra sổ đăng ký. Nếu nội dung của

HKLM\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName

HKLM\SYSTEM\CurrentControlSet\Control\ComputerName\ActiveComputerName

không giống nhau, điều đó có nghĩa là hệ thống có một hoạt động đổi tên đang chờ xử lý sẽ hoàn thành vào lần tiếp theo hệ thống khởi động lại.


10
Cảm ơn vì lời khuyên Ryan. Tôi đã tra cứu mã cho System.En Môi.MachineName (sử dụng dotnetpeek). Nó sử dụng chức năng GetComputerName trong Kernel32.dll: "Lấy tên NetBIOS của máy tính cục bộ. Tên này được thiết lập khi khởi động hệ thống, khi hệ thống đọc nó từ sổ đăng ký." ( msdn.microsoft.com/en-us/l Library / windows / desktop / khăn ). Nói cách khác, bạn đúng nó chỉ được lưu trong bộ nhớ cache khi khởi động. Chỉ muốn một số tài liệu để sao lưu nó. Cảm ơn.
Ameer Deen

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.