Sửa lỗi: 'Operation did not complete successfully because the file contains a virus'

beginner🪟 Windows2026-06-30| Windows 10, Windows 11, Windows Server 2019/2022

Error Message

Operation did not complete successfully because the file contains a virus or potentially unwanted software.
#windows-defender#bảo mật#antivirus#nhận-diện-nhầm#devops

TL;DR: Cách Xử Lý Nhanh Trong 30 Giây

Windows Defender vừa cách ly file của bạn vì phát hiện mối đe dọa. Nếu bạn tin tưởng file đó—có thể là công cụ bạn tự viết hoặc một tiện ích mã nguồn mở đã được xác minh—bạn có thể khôi phục lại ngay lập tức.

  • Tìm kiếm Windows Security trong Start menu và mở lên.
  • Chọn Virus & threat protection, sau đó nhấn Protection history.
  • Tìm file vừa bị chặn (dựa vào thời gian chính xác).
  • Nhấn Actions và chọn Allow on device hoặc Restore.
  • Thử chạy lại file của bạn.

Tại Sao Windows Chặn File Của Tôi?

Lỗi này không chỉ là cảnh báo đơn thuần—đây là một lệnh chặn cứng. Engine bảo vệ thời gian thực của Windows đã can thiệp lệnh CreateProcess hoặc OpenFile và chuyển file vào một vùng cách ly an toàn trước khi nó kịp chạy. Mặc dù điều này giúp bảo vệ người dùng khỏi phần mềm độc hại thực sự, nhưng nó thường gây ra "false positive" đối với các nhà phát triển và người dùng nâng cao.

Các nhà phát triển thường gặp tình trạng này khi làm việc với:

  • File nhị phân mới: Các file .exe chưa được ký số, biên dịch từ Go, Rust, hoặc C++ mà chưa có danh tiếng được hệ thống nhận diện.
  • PyInstaller: Script Python được đóng gói thành file thực thi đơn thường kích hoạt các chữ ký trojan chung.
  • Công cụ bảo mật: Các công cụ quét mạng như nmap hoặc công cụ thao tác bộ nhớ mà Windows coi là đáng ngờ.
  • File nén: Các file .zip hoặc .7z được tải về có chứa script thay đổi registry của hệ thống.

Cách Xử Lý Lỗi Bị Chặn

Phương pháp 1: Khôi Phục File Từ Vùng Cách Ly

Windows thường ẩn file trong một thư mục hệ thống ẩn thay vì xóa hẳn. Bạn có thể lấy lại thông qua bảng điều khiển bảo mật.

  • Mở Windows Security từ thanh taskbar hoặc Start menu.
  • Vào Virus & threat protection.
  • Trong mục "Current threats", nhấn Protection history.
  • Tìm mục có nhãn "Threat blocked" hoặc "Quarantined item".
  • Mở rộng mục đó. Bạn có thể cần nhấn "Yes" trên hộp thoại User Account Control (UAC).
  • Nhấn nút Actions và chọn Allow.

Phương pháp 2: Tạo Thư Mục Loại Trừ Cho Nhà Phát Triển

Việc phải khôi phục file liên tục thật mất công. Nếu bạn là nhà phát triển, giải pháp tốt nhất là chỉ định một thư mục cụ thể mà Defender sẽ không bao giờ quét. Cách này tiết kiệm thời gian và tài nguyên CPU.

  • Vào Windows Security > Virus & threat protection.
  • Nhấn Manage settings dưới tiêu đề "Virus & threat protection settings".
  • Cuộn xuống cuối trang và nhấn Add or remove exclusions.
  • Nhấn Add an exclusion và chọn Folder.
  • Chọn thư mục gốc của dự án, ví dụ C:\Users\Work\Projects. Mọi thứ bên trong đường dẫn này sẽ chạy mà không bị can thiệp.

Phương pháp 3: Tự Động Hóa Loại Trừ Bằng PowerShell

Cần áp dụng các cài đặt này cho máy chủ từ xa hoặc CI/CD runner mới? Sử dụng phiên PowerShell nâng cao quyền để bỏ qua giao diện đồ họa hoàn toàn.

# Exclude your entire project directory
Add-MpPreference -ExclusionPath "C:\Dev\MyProject"

# Tell Defender to ignore a specific executable name
Add-MpPreference -ExclusionProcess "custom-compiler.exe"

# Ignore all files with a specific dev extension
Add-MpPreference -ExclusionExtension ".log"

Phương pháp 4: Xóa Cache False Positive

Đôi khi Defender bị "kẹt" với một chữ ký file cụ thể ngay cả sau khi bạn đã cập nhật code. Nếu lỗi vẫn tiếp diễn, bạn có thể cần buộc cập nhật chữ ký để xóa cache phát hiện cục bộ.

# Navigate to the Defender utility folder
cd "C:\Program Files\Windows Defender"

# Wipe the current dynamic signature cache
.\MpCmdRun.exe -removedefinitions -dynamicsignatures

# Trigger an immediate update for new definitions
.\MpCmdRun.exe -SignatureUpdate

Xác Minh Kết Quả

Kiểm tra ba điều sau để đảm bảo môi trường của bạn đã sẵn sàng.

  • Xác minh sự tồn tại: Kiểm tra xem file .exe đã thực sự trở về đúng thư mục chưa. Nếu vẫn thiếu, hãy biên dịch lại code hoặc tải lại công cụ.
  • Kiểm tra qua CLI: Chạy file từ Command Prompt. Nếu nó khởi động mà không hiện popup "Operation did not complete", nghĩa là cài đặt loại trừ đã có hiệu lực.
  • Xem nhật ký kiểm tra: Chạy Get-MpThreat trong PowerShell. Nếu trạng thái của file hiển thị là 'Allowed' hoặc danh sách trống, bạn đã hoàn toàn xử lý xong.

Tìm Hiểu Thêm

Related Error Notes