Chuyển tới nội dung chính

Kiểm tra Tính Toàn Vẹn Hệ Thống Windows Server

Giới Thiệu

Tính toàn vẹn hệ thống là nền tảng của một môi trường Windows Server ổn định và an toàn. Việc đảm bảo rằng các tệp hệ thống, cấu hình và dịch vụ cốt lõi không bị hỏng, thay đổi trái phép hoặc nhiễm mã độc là cực kỳ quan trọng đối với mọi quản trị viên. Một hệ thống bị xâm phạm tính toàn vẹn có thể dẫn đến hiệu suất kém, lỗi ứng dụng, lỗ hổng bảo mật nghiêm trọng và thậm chí là mất dữ liệu.

Bài viết này sẽ hướng dẫn bạn cách sử dụng các công cụ tích hợp sẵn của Windows Server như System File Checker (SFC), Deployment Image Servicing and Management (DISM), và PowerShell để kiểm tra và khôi phục tính toàn vẹn của hệ thống. Thực hiện các bước này định kỳ sẽ giúp bạn duy trì một máy chủ khỏe mạnh và an toàn.

📋 Thời gian: 15-30 phút | Độ khó: Cơ bản

Yêu Cầu

Để thực hiện các kiểm tra này, bạn cần:

  • Quyền truy cập quản trị (Administrator) trên Windows Server.
  • Hiểu biết cơ bản về cách sử dụng Command Prompt hoặc PowerShell.
  • Kết nối internet (đối với một số thao tác DISM yêu cầu tải xuống tệp).

Các Bước Thực Hiện

Bước 1: Sử dụng System File Checker (SFC)

System File Checker (SFC) là một tiện ích dòng lệnh quét và khôi phục các tệp hệ thống Windows bị hỏng hoặc bị thiếu. Đây là công cụ đầu tiên bạn nên sử dụng khi nghi ngờ có vấn đề về tính toàn vẹn của tệp.

  1. Mở Command Prompt hoặc PowerShell với quyền quản trị.
    • Nhấn Windows + X, sau đó chọn Windows PowerShell (Admin) hoặc Command Prompt (Admin).
  2. Chạy lệnh SFC.
# Chạy lệnh sfc /scannow để quét và tự động sửa chữa các tệp hệ thống bị hỏng.
# Quá trình này có thể mất một thời gian, hãy kiên nhẫn.
sfc /scannow

Sau khi quá trình hoàn tất, bạn sẽ thấy một trong các thông báo sau:

  • Windows Resource Protection did not find any integrity violations. (Không tìm thấy vi phạm toàn vẹn.) ✅
  • Windows Resource Protection found corrupt files and successfully repaired them. (Tìm thấy và sửa chữa thành công.) ✅
  • Windows Resource Protection found corrupt files but was unable to fix some of them. (Tìm thấy nhưng không thể sửa chữa.) ⚠️
  • Windows Resource Protection could not perform the requested operation. (Không thể thực hiện.) ⚠️ (Xem phần Troubleshooting)

Bước 2: Sử dụng Deployment Image Servicing and Management (DISM)

Nếu SFC không thể sửa chữa tất cả các tệp hoặc báo lỗi, có thể hình ảnh Windows cơ sở đã bị hỏng. DISM (Deployment Image Servicing and Management) là một công cụ mạnh mẽ hơn, được sử dụng để sửa chữa hình ảnh Windows, bao gồm cả các thành phần được SFC sử dụng.

  1. Mở Command Prompt hoặc PowerShell với quyền quản trị.
  2. Chạy các lệnh DISM theo trình tự.
# Kiểm tra tình trạng sức khỏe của hình ảnh Windows.
# Lệnh này sẽ kiểm tra xem hình ảnh có bị hỏng hay không.
DISM /Online /Cleanup-Image /CheckHealth

# Quét sâu hơn để phát hiện các hỏng hóc tiềm ẩn.
# Quá trình này sẽ mất nhiều thời gian hơn CheckHealth.
DISM /Online /Cleanup-Image /ScanHealth

# Khôi phục hình ảnh Windows bằng cách tải xuống các tệp cần thiết từ Windows Update.
# Đây là lệnh sửa chữa chính. Đảm bảo máy chủ có kết nối internet.
# Nếu không có internet, bạn cần chỉ định nguồn (ví dụ: file ISO cài đặt Windows Server).
DISM /Online /Cleanup-Image /RestoreHealth

💡 Mẹo: Nếu bạn không có kết nối internet hoặc muốn sử dụng nguồn cục bộ, bạn có thể chỉ định thư mục sources\sxs từ đĩa cài đặt Windows Server hoặc file ISO:

# Ví dụ sử dụng nguồn từ ổ đĩa D: (nơi có file ISO được mount)
DISM /Online /Cleanup-Image /RestoreHealth /Source:D:\sources\sxs /LimitAccess

Sau khi DISM hoàn tất, hãy thử chữy lại sfc /scannow để đảm bảo tất cả các tệp hệ thống đã được sửa chữa.

Bước 3: Kiểm tra Event Logs và Bảo mật bằng PowerShell

Các Event Logs của Windows Server ghi lại mọi hoạt động quan trọng, từ lỗi hệ thống đến các sự kiện bảo mật. Kiểm tra nhật ký sự kiện là một cách hiệu quả để phát hiện các dấu hiệu của sự cố, tấn công hoặc thay đổi trái phép.

  1. Mở PowerShell với quyền quản trị.
  2. Sử dụng các lệnh PowerShell để kiểm tra nhật ký sự kiện.
# Xem 20 sự kiện lỗi và cảnh báo gần nhất trong nhật ký System.
# Điều này giúp nhanh chóng xác định các vấn đề về phần cứng hoặc trình điều khiển.
Get-WinEvent -LogName System -MaxEvents 20 | Where-Object {$_.LevelDisplayName -eq 'Error' -or $_.LevelDisplayName -eq 'Warning'} | Format-Table -AutoSize

# Lọc các sự kiện bảo mật liên quan đến đăng nhập không thành công (Event ID 4625) trong 24 giờ qua.
# Giúp phát hiện các nỗ lực truy cập trái phép.
Get-WinEvent -LogName Security -FilterXPath "*[System[(EventID=4625) and TimeCreated[timediff(@SystemTime) <= 86400000]]]" | Format-Table TimeCreated,Message -AutoSize

# Kiểm tra các sự kiện liên quan đến thay đổi chính sách bảo mật hoặc tạo người dùng mới.
# Event ID 4720: User account was created.
# Event ID 4732: A security-enabled local group was created.
Get-WinEvent -LogName Security -FilterXPath "*[System[(EventID=4720 or EventID=4732) and TimeCreated[timediff(@SystemTime) <= 86400000]]]" | Format-Table TimeCreated,Message -AutoSize

# Liệt kê các dịch vụ đang chạy không thuộc Microsoft và không được ký điện tử (có thể là dấu hiệu của mã độc).
# Lệnh này yêu cầu kiểm tra kỹ lưỡng vì có thể có các dịch vụ hợp pháp của bên thứ ba.
Get-WmiObject win32_service | Where-Object {$_.PathName -notmatch "C:\\Windows" -and -not $_.PathName.Contains("Program Files (x86)") -and -not $_.PathName.Contains("Program Files") -and -not $_.PathName.Contains("Microsoft")} | Select-Object Name,DisplayName,PathName,StartMode

⚠️ Cảnh báo: Việc phân tích Event Logs đòi hỏi kiến thức và kinh nghiệm. Hãy tìm kiếm thông tin về các Event ID đáng ngờ mà bạn phát hiện được.

Bước 4: Kiểm tra trạng thái dịch vụ và tiến trình

Các dịch vụ và tiến trình chạy trên máy chủ cũng có thể là dấu hiệu của sự cố hoặc xâm nhập. Kiểm tra cóc dịch vụ không mong muốn hoặc các tiến trình tiêu tốn tài nguyên bất thường.

  1. Mở PowerShell với quyền quản trị.
  2. Sử dụng các lệnh PowerShell để kiểm tra dịch vụ và tiến trình.
# Liệt kê tất cả các dịch vụ đang chạy và sắp xếp theo tên.
# Kiểm tra các dịch vụ không quen thuộc hoặc không cần thiết.
Get-Service | Where-Object {$_.Status -eq "Running"} | Sort-Object Name | Format-Table Name,Status,DisplayName -AutoSize

# Liệt kê 10 tiến trình đang sử dụng nhiều CPU nhất.
# Giúp phát hiện các ứng dụng hoặc mã độc đang tiêu tốn tài nguyên.
Get-Process | Sort-Object CPU -Descending | Select-Object -First 10 ProcessName,Id,CPU,WorkingSet | Format-Table -AutoSize

# Liệt kê 10 tiến trình đang sử dụng nhiều bộ nhớ nhất.
Get-Process | Sort-Object WorkingSet -Descending | Select-Object -First 10 ProcessName,Id,CPU,WorkingSet | Format-Table -AutoSize

💡 Mẹo: Kết hợp với Task Manager (Ctrl+Shift+Esc) để xem chi tiết hơn về các tiến trình, bao gồm đường dẫn tệp và dịch vụ liên quan.

Troubleshooting

  • SFC báo lỗi Windows Resource Protection could not perform the requested operation.

    • Giải pháp: Lỗi này thường xảy ra khi các dịch vụ cần thiết để SFC hoạt động không chạy hoặc có vấn đề về quyền.
      1. Đảm bảo bạn đang chạy Command Prompt/PowerShell với quyền quản trị.
      2. Thử khởi động lại máy chủ vào Safe Mode và chạy lại sfc /scannow.
      3. Kiểm tra nhật ký CBS.log tại C:\Windows\Logs\CBS\CBS.log để biết chi tiết lỗi.
      4. Chạy DISM trước (Bước 2) để sửa chữa hình ảnh hệ thống, sau đó chạy lại SFC.
  • DISM báo lỗi The source files could not be found.

    • Giải pháp: Lỗi này có nghĩa là DISM không thể tìm thấy các tệp cần thiết để sửa chữa hình ảnh Windows.
      1. Đảm bảo máy chủ có kết nối internet để tải xuống từ Windows Update.
      2. Nếu không có internet, hãy cung cấp nguồn cục bộ bằng cách mount file ISO cài đặt Windows Server tương ứng và chỉ định đường dẫn \sources\sxs trong lệnh /Source: như đã hướng dẫn trong Bước 2.
      3. Kiểm tra phiên bản Windows Server của file ISO phải khớp với phiên bản hiện tại của máy chủ.
  • Lỗi "Access is denied" hoặc "You must be an administrator..."

    • Giải pháp: Luôn đảm bảo bạn đã mở Command Prompt hoặc PowerShell với quyền quản trị (Run as administrator).

Kết Luận

Việc kiểm tra tính toàn vẹn hệ thống Windows Server là một phần không thể thiếu trong chiến lược bảo trì và bảo mật toàn diện. Bằng cách sử dụng các công cụ mạnh mẽ như SFC, DISM và PowerShell, bạn có thể chủ động phát hiện và khắc phục các vấn đề về tệp hệ thống, hỏng hóc hình ảnh Windows và các dấu hiệu xâm nhập tiềm ẩn.

Best Practices:

  • Thực hiện định kỳ: Lên lịch kiểm tra SFC và DISM hàng tháng hoặc sau các bản cập nhật lớn.
  • Kết hợp với sao lưu: Luôn có các bản sao lưu đầy đủ và cập nhật của hệ thống để có thể khôi phục nhanh chóng trong trường hợp khẩn cấp.
  • Cập nhật thường xuyên: Đảm bảo Windows Server và tất cả các ứng dụng được cập nhật các bản vá bảo mật mới nhất.
  • Giám sát Event Logs: Thiết lập giám sát tự động cho các Event Logs quan trọng để nhận cảnh báo về các hoạt động đáng ngờ.
  • Sử dụng phần mềm diệt virus/EDR: Triển khai giải pháp bảo mật Endpoint Detection and Response (EDR) hoặc phần mềm diệt virus mạnh mẽ để bảo vệ thời gian thực.

Việc duy trì tính toàn vẹn hệ thống là một quá trình liên tục, nhưng với các công cụ và kiến thức phù hợp, bạn có thể đảm bảo máy chủ của mình luôn hoạt động ổn định và an toàn.

Xem thêm: