Đối phó với hiện tượng lệch thời gian trong Windows
Đồng hồ vốn là một phần của hệ điều hành Windows từ rất lâu. Hệ điều hành Windows 3.1 sở hữu một ứng dụng đồng hồ trên màn hình, và Microsoft đã đưa đồng hồ lên thanh tác vụ của Windows trong hệ điều hành Windows 95. Hệ điều hành DOS đã sử dụng đồng hồ của hệ thống một cách rộng rãi ngay từ trước khi hệ điều hành Windows được mọi người sử dụng nhiều hơn. Mọi người vẫn quan niệm đồng hồ là một phần đơn giản và đã tồn tại lâu dài trong hệ điều hành và phần lớn không mấy để ý đến. Tuy nhiên, cho đến nay, lệch thời gian trên đồng hồ trong Window Server vẫn là một trong những vấn đề xảy ra khá phổ biến.
Để minh họa vấn đề này,Bizfly Cloud sẽ đưa ra ví dụ, khi tôi đang thực hiện bài viết này, đồng hồ trên màn hình Window 10 hiển thị 4:48 chiều, tuy nhiên, đồng hồ máy chủ của Window Server 2019 lại hiển thị thời gian 4:40 chiều. Hai đồng hồ này đã được đồng bộ hóa với nhau, song thực tế thời gian hiển thị của hai đồng hồ lại không tương đồng.
Tại sao lệch thời gian trên đồng hồ trong Windows Time là vấn đề nghiêm trọng?
Trước khi tìm hiểu cách thức để khắc phục vấn đề này thì chúng ta cần phải nói về lý do tại sao lệch thời gian trên đồng hồ được coi là vấn đề nghiêm trọng. Có thể thực hiện một bài viết dài về các vấn đề khác nhau gây ra bởi lệch thời gian trên đồng hồ song điều này có thể gây ra sự khó hiểu cho bạn đọc nên hãy cùng nhau tham khảo một ví dụ cá nhân để có thể tiếp cận vấn đề một cách đơn giản hơn.
"Tôi đã lưu trữ email của mình trên máy chủ Microsoft Exchange ở nhà trong nhiều năm. Một ngày nọ, tôi nhận thấy Outlook không thể kết nối với Exchange. Tôi đã dành vài ngày để xem xét kỹ lưỡng máy chủ Exchange của mình để tìm hiểu nguyên do của vấn đề. Tuy nhiên, tất cả các dịch vụ vấn đang chạy, cơ sở dữ liệu đã được gắn kết và các kiểm tra chẩn đoán được thực hiện đều trả về kết quả trống. Máy chủ Exchange dường như vẫn hoạt động bình thường trong khi khách hàng lại không thể kết nối với nó. May mắn thay, tôi tình cờ nhận thấy rằng đồng hồ của máy chủ đã bị lỗi. Sau đó, tôi đặt lại thời gian cho đúng và đột nhiên mọi thứ bắt đầu hoạt động bình thường trở lại. Lý do mà tôi gặp phải vấn đề đặc biệt này là bởi giao thức Kerberos rất nhạy cảm với thời gian. Sự khác biệt lớn giữa đồng hồ máy chủ và máy khách đã khiến giao thức Kerberos gặp trục trặc."
Giải quyết vấn đề như thế nào?
Hệ điều hành Window sử dụng Windows Time Service để điều khiển đồng hồ. Như bạn có thể thấy qua ảnh chụp màn hình phía dưới, Windows 10 mặc định khởi động đồng hồ một cách thủ công (kích hoạt). Điều này đồng nghĩa với việc đồng hồ sẽ không chạy nếu bạn không khởi động. Tuy nhiên, nếu bạn nhìn vào ảnh chụp màn hình phía dưới, bạn sẽ thấy rõ rằng trong mô tả của Service chỉ ra nếu Windows Time Service bị dừng thì đồng bộ hóa ngày giờ sẽ không khả dụng.
Điều đầu tiên mà tôi muốn khuyên bạn làm là cấu hình để chạy Windows Time Service. Cách thức đơn giản nhất để thực hiện là mở Service Control Manager (bằng cách nhập lệnh services.msc tại Windows Run prompt) và định vị Windows Time vào danh sách các dịch vụ. Tiếp đó, nhấp chuột phải vào dịch vụ và lựa chọn Properties command từ shortcut menu. Bây giờ, đặt dạng Khởi động thành Startup và nhấn chuột vào nút Start (xem kỹ hơn trong ảnh chụp màn hình phía dưới) để bắt đầu dịch vụ.
Windows Time Service được thiết kế để giữ cho đồng hồ của bạn luôn được đồng bộ hóa, tuy nhiên, vẫn có khả năng là kích hoạt đồng hồ hoàn toàn không giải quyết vấn đề lệch thời gian của đồng hồ đã xảy ra trước đó. Một mẹo để đảm bảo rằng đồng hồ của bạn luôn chính xác đó là cấu hình Windows Time Service tự đồng bộ hóa với time server. Nghe có vẻ phức tạp nhưng thật may mắn là thực hiện mẹo này lại rất đơn giản.
Để đồng bộ hóa đồng hồ của bạn với time server, hãy mở Command Prompt và bắt đầu nhập các lệnh sau:
Lệnh đầu tiên trong số này sẽ liên kết Windows Time Service với time server. Lệnh thứ 2 dừng Windows Time Service, và lệnh thứ ba sẽ tái khởi động Windows Time Service. Hãy xem kỹ hơn các câu lệnh này trong ảnh chụp màn hình phía dưới.
Tất nhiên, điều này sẽ khiến bạn thắc mắc làm thế nào để xác định xem quy trình này có thực sự hiệu quả. Bạn có thể kiểm tra thử đồng hồ xem thế nào. Tuy nhiên, nếu đồng hồ đã chính xác thì các lệnh sẽ xuất hiện một cách vô ích. Cách đơn giản nhất để đảm bảo tính hiệu quả là nhập các lệnh sau:
Câu lệnh này sẽ cho bạn biết máy tính đang lấy thời gian từ đâu, gần đây nó đã đồng bộ hóa thời gian như thế nào và độ chính xác của đồng hồ ra sao. Bạn có thể nhìn thấy câu lệnh này và kết quả trả về của nó trong hình phía dưới:
Quá trình đồng bộ hóa đồng hồ máy chủ của bạn với time server nghe có vẻ khá đơn giản. Tuy nhiên, thỉnh thoảng bạn sẽ thấy rằng đồng hồ của mình vẫn sai dù bạn đã thực hiện đầy đủ các bước của quy trình. Một lý do cho hiện tượng này là vì các máy tính join domain thường sẽ đồng bộ hóa đồng hồ của chúng với Domain Controller ngay cả khi bạn đã cài đặt máy chủ đồng bộ hóa với time server. Cách thức để khắc phục là tạo các cài đặt Group Policy, các cài đặt này sẽ giải quyết vấn đề.
Cài đặt Group Policy liên quan đến thời gian được đặt tại Computer Configuration => Policies => Administrative Templates => System => Windows Time Service => Time Providers. Bạn có thể chỉ định nhà cung cấp thời gian cho Active Directory thông qua các cài đặt Group Policy này. Hãy ghi nhớ rằng, thông thường, sẽ có các chính sách riêng cho Domain Controllers và máy chủ thành viên, do đó bạn có thể phải tạo cài đặt Group Policy ở nhiều vị trí.
Một điều khác làm cho quy trình đồng bộ hóa thời gian của bạn hoạt động không hiệu quả là máy chủ đang chạy trên máy ảo. Hyper-V bao gồm một dịch vụ tích hợp có nhiệm vụ đồng bộ thời gian. Khi được bật, dịch vụ này khiến máy ảo nhận được thời gian từ máy chủ. Do đó, bạn có thể phải sửa thời gian trên máy chủ Hyper-V trước khi máy ảo của mình hiển thị thời gian chính xác.
Nguồn: Bizfly Cloud chia sẻ
>> Có thể bạn quan tâm: Hướng dẫn cách thay đổi Internet Time Update trong Windows 10/8/7