Nếu Microsoft Windows PowerShell liên tục bật lên không rõ lý do, nó làm khó sử dụng máy tính và khiến bạn lo ngại có chuyện gì không ổn.
Có nhiều lý do PowerShell tự mở thường xuyên. Một số lành tính, số khác nghiêm trọng hơn. Làm theo các bước khắc phục dưới để tìm ra nguyên nhân trong trường hợp của bạn.
1. Chạy quét Antivirus hoặc Malware
Chương trình hoặc script độc hại có thể khiến PowerShell tự chạy. Đây có thể là virus, malware, hoặc mối đe dọa bảo mật khác dùng PowerShell thực hiện hành động xấu trên máy tính.
Nếu chương trình/script độc hại khiến PowerShell tự chạy, bạn nên làm theo các bước sau để giải quyết:
- Ngắt kết nối máy tính khỏi internet để ngăn chương trình/script độc hại giao tiếp với server hoặc tải thêm malware.
- Dùng phần mềm bảo mật quét máy tính tìm malware và gỡ bỏ các mối đe dọa phát hiện. Có thể chạy quét toàn bộ hệ thống với antivirus, hoặc dùng công cụ chuyên dụng gỡ malware.
- Sau khi gỡ bỏ chương trình/script độc hại, khởi động lại máy và quét lại để chắc chắn mối đe dọa đã bị gỡ hoàn toàn.
Khi máy tính sạch và không còn malware, bạn nên đổi mọi mật khẩu hoặc thông tin bảo mật có thể đã bị xâm phạm, và cập nhật phần mềm bảo mật lên phiên bản mới nhất.
2. Kiểm tra xem PowerShell có được thiết lập Autorun khi khởi động không
PowerShell có thể không làm gì đặc biệt, chỉ được thiết lập chạy khi khởi động. Để kiểm tra:
- Mở Task Manager bằng Ctrl + Shift + Esc.
- Trong cửa sổ Task Manager, chọn tab Khởi động (Startup).
- Trong tab Khởi động, tìm mục "Windows PowerShell" trong danh sách mục khởi động.
Nếu thấy mục Windows PowerShell trong danh sách khởi động, nghĩa là PowerShell được thiết lập tự chạy khi khởi động máy. Cột Trạng thái (Status) cho mục Windows PowerShell sẽ cho biết chương trình được bật hay tắt khi khởi động.
Nếu không thấy mục Windows PowerShell trong danh sách khởi động, nghĩa là PowerShell hiện không được thiết lập chạy khi khởi động. Tuy nhiên, điều này không nhất thiết có nghĩa PowerShell không tự chạy – nó có thể chạy do chương trình, script, hoặc cài đặt khác trên máy tính.
Để điều tra và khắc phục thêm, bạn có thể kiểm tra các cài đặt và cấu hình khác: tác vụ được lên lịch (scheduled tasks), script khởi động (startup scripts), dịch vụ hệ thống (system services). Bạn cũng có thể kiểm tra thư mục khởi động (startup folder) trong Windows 10/11 và học cách tắt chương trình khởi động.
3. Một tác vụ hoặc Script đang chạy ngầm
Để kiểm tra xem tác vụ hoặc script chạy ngầm có gây PowerShell bật lên không:
- Mở Task Scheduler bằng cách nhấn nút Start trên thanh tác vụ và tìm "Task Scheduler". Hoặc gõ taskschd.msc trong hộp thoại Run (Windows + R) và nhấn Enter.
- Trong cửa sổ Task Scheduler dưới Thư viện Task Scheduler (Task Scheduler Library), tìm tác vụ hoặc script được lên lịch chạy định kỳ hoặc khi khởi động. Điều này sẽ hiện ở cột Triggers (Kích hoạt). Nếu tìm thấy tác vụ/script bạn nghi ngờ gây vấn đề, chuột phải vào nó và chọn Vô hiệu hóa (Disable).
4. Shortcut hoặc Hotkey PowerShell đang mở PowerShell
PowerShell có thể bật lên vì nó liên kết với hotkey hoặc shortcut bạn vô tình kích hoạt. Nếu bạn cài chương trình như WinHotKey, nó có thể cấu hình tổ hợp phím đó.
Bạn cũng có thể chuột phải vào bất kỳ shortcut nào, kiểm tra thuộc tính (Properties) xem có nhắc đến PowerShell trong tham số khởi động không. Đây là dấu hiệu shortcut có thể mở PowerShell, có thể để chạy script, rồi không đóng lại.
5. Một trong các App của bạn đang dùng PowerShell
Ứng dụng thứ ba có thể dùng PowerShell cho một số chức năng. Các bước cụ thể để kiểm tra:
- Kiểm tra tài liệu ứng dụng: Nhiều app có tài liệu/hệ thống trợ giúp mô tả tính năng/năng lực, kiểm tra xem có nhắc PowerShell không.
- Tìm tham chiếu PowerShell trong cài đặt/tùy chọn cấu hình app: Nhiều app cho tùy chỉnh hành vi. Kiểm tra cài đặt xem có tham chiếu PowerShell không.
- Dùng app và quan sát lệnh PowerShell được thực thi: Nếu không tìm thấy tham chiếu trong tài liệu/cài đặt, thử chạy app và dùng nó thực hiện tác vụ bạn quan tâm. Chú ý các thông báo/hộp thoại hiện ra, xem có nhắc PowerShell không.
Không phải mọi app dùng PowerShell đều làm rõ điều này. Một số app dùng PowerShell nội bộ mà không 드러 ra ngoài. Trong trường hợp đó, bạn có thể không xác định được app có dùng PowerShell không nếu không có thông tin chi tiết hơn hoặc dùng công cụ/kỹ thuật nâng cao. Nếu bạn có thời gian, có thể thử gỡ và cài lại app để tìm ra app nào chịu trách nhiệm.
Trong một số trường hợp, bạn có thể thấy điều gì đang chạy trong PowerShell khi nó bật lên, và chi tiết đầu ra đó cũng là manh mối để xác định ứng dụng liên quan.
6. Xung đột Phần cứng và Phần mềm
Xung đột phần cứng và phần mềm có thể khiến PowerShell bật lên theo nhiều cách. Một số giải pháp khả thi:
- Cập nhật driver: Driver lỗi thời hoặc sai có thể gây xung đột với PowerShell và phần mềm khác. Thử cập nhật driver lên phiên bản mới nhất xem có giải quyết không.
- Kiểm tra cập nhật phần mềm hoặc Windows: Cập nhật phần mềm thường khắc phục xung đột bằng cách sửa lỗi hoặc vấn đề tương thích. Kiểm tra cập nhật cho hệ điều hành và phần mềm khác bạn dùng xem có cập nhật nào giúp khắc phục không.
- Khởi động lại máy tính: Đôi khi khởi động lại giúp khắc phục xung đột bằng cách reset hệ thống và xóa file/tạm thời dữ liệu có thể gây vấn đề.
- Dùng công cụ System File Checker: System File Checker (SFC) là tiện ích tích hợp quét file hệ thống hỏng/thiếu và sửa chữa. Dùng lệnh sfc /scannow trong Command Prompt (CMD) để thử sửa vấn đề gây xung đột với PowerShell. Cần chạy với quyền admin.
- Dùng công cụ DISM: Deployment Image Servicing and Management (DISM) là tiện ích tích hợp khác giúp sửa vấn đề hệ thống. Dùng DISM để quét hệ thống tìm sự cố và thử sửa.
7. Bạn có vòng lặp (Loop) trong Script PowerShell!
Nếu bạn có vòng lặp trong script PowerShell khiến PowerShell bật lên liên tục, hãy thử các bước sau để sửa:
- Mở script trong trình soạn thảo văn bản: Bước đầu mở script trong trình soạn thảo để xem code và sửa. Bạn dùng bất kỳ trình soạn thảo nào bạn quen: Notepad, TextEdit, hoặc nâng cao như Notepad++.
- Xác định vòng lặp trong script: Khi đã mở script, tìm vòng lặp gây vấn đề. Vòng lặp là khối code thực hiện lặp lại cho đến khi điều kiện nhất định được đáp ứng. Trong script của bạn, vòng lặp có thể được đánh dấu bằng từ khóa "for", "while", hoặc "do".
- Sửa vòng lặp để khắc phục vấn đề: Khi đã tìm thấy vòng lặp, sửa nó. Có thể thay đổi điều kiện dừng vòng lặp, hoặc thêm code để thoát vòng lặp dưới điều kiện nhất định.
- Lưu script và test: Sau khi sửa, lưu file và chạy script lại xem vấn đề đã giải quyết chưa. Nếu vẫn còn, tiếp tục sửa vòng lặp cho đến khi hoạt động như mong đợi.
Nếu bạn không phải tác giả script và không biết về PowerShell scripting, tốt nhất tìm cách sửa cụ thể cho script đó, hoặc liên hệ tác giả script.
8. Vô hiệu hóa Windows PowerShell
Nếu mọi cách đều thất bại, tại sao không vô hiệu hóa PowerShell.exe? Cách làm:
- Mở menu Start và gõ Windows Features vào hộp tìm kiếm.
- Chọn Bật/Tắt tính năng Windows (Turn Windows features on or off).
- Trong cửa sổ Windows Features, cuộn xuống phần Windows PowerShell.
- Bỏ chọn ô bên cạnh Windows PowerShell để vô hiệu hóa.
- Chọn OK.
- Khởi động lại máy tính.
Vô hiệu hóa PowerShell có thể khiến một số ứng dụng hoặc tính năng không hoạt động đúng. Chỉ vô hiệu hóa nếu bạn chắc không cần nó. Tuy nhiên, đây là cách nhiều khả năng ngăn chặn vĩnh viễn việc PowerShell bật lên bất ngờ.