4 cách khắc phục lỗi “PowerShell Cannot Be Loaded Because Running Scripts Is Disabled” của Windows
Bạn đang chạy một số lệnh trên PowerShell và đột nhiên nhìn thấy thông báo lỗi có nội dung: “Không thể tải PowerShell vì chạy tập lệnh bị tắt trên hệ thống này”.
Tự hỏi những gì gây ra vấn đề này và làm thế nào bạn có thể giải quyết nó? Chúng tôi sẽ hướng dẫn bạn các phương pháp dễ dàng có thể giúp bạn giải quyết vấn đề này một lần và mãi mãi.
Hãy đi sâu vào!
Mục Lục
1. Chạy PowerShell ở Chế độ quản trị viên
Bạn hiện đang chạy PowerShell mà không có quyền quản trị thích hợp? Nếu vậy, thì có lẽ đó là nơi vấn đề nằm.
Vì vậy, hãy khám phá các bước bạn nên áp dụng để chạy công cụ ở chế độ quản trị viên:
- Nhấn Thắng + X để mở menu Truy cập nhanh.
- chọn Windows PowerShell (Quản trị viên) lựa chọn.
Và nếu cách đó không hiệu quả, hãy xem các cách khác nhau để mở Windows PowerShell. Nhưng bạn chỉ nên tập trung vào các phương pháp chỉ cho bạn cách chạy công cụ với quyền quản trị.
2. Thay đổi Chính sách thực thi trong PowerShell
Trong một số trường hợp, việc thay đổi chính sách thực thi có thể hữu ích. Nhưng trước khi khám phá các giải pháp, trước tiên chúng ta hãy tìm hiểu chính sách thực thi là gì và chính sách đó hoạt động như thế nào.
Chính sách thực thi là gì và nó hoạt động như thế nào?
Chính sách thực thi là một tính năng bảo mật kiểm soát cách bạn chạy tập lệnh PowerShell trên thiết bị của mình. Nó chỉ đơn giản là xác định loại tập lệnh nào có thể chạy và loại tập lệnh nào nên tránh. Phần tốt nhất là bạn có thể định cấu hình chính sách này theo ý thích của mình.
Dưới đây là các tùy chọn bạn có thể chọn khi định cấu hình chính sách thực thi:
- Hạn chế: Chính sách này cấm bạn chạy bất kỳ tập lệnh PowerShell nào.
- không giới hạn: Cho phép bạn chạy bất kỳ tập lệnh nào nhưng hiển thị cho bạn thông báo cảnh báo khi bạn chạy tập lệnh đáng ngờ.
- Đã ký từ xa: Chính sách này yêu cầu chữ ký điện tử khi bạn chạy tập lệnh mà bạn đã tải xuống trực tuyến. Tuy nhiên, nó không yêu cầu chữ ký cho các tập lệnh cục bộ.
- Đường vòng: Điều này cho phép bạn chạy bất kỳ tập lệnh nào mà không có bất kỳ hạn chế nào. Không giống như chính sách “Không hạn chế”, chính sách “ByPass” sẽ không hiển thị cho bạn bất kỳ thông báo cảnh báo nào khi bạn chạy tập lệnh đáng ngờ. Vì vậy, hãy luôn chỉ áp dụng chính sách này khi chạy các tập lệnh hợp pháp.
- Tất cả đã ký: Chính sách này chỉ chạy các tập lệnh được ký bởi nhà xuất bản đáng tin cậy.
Bây giờ, nếu bạn sử dụng PowerShell thường xuyên, thì thỉnh thoảng bạn có thể muốn thay đổi chính sách thực thi. Tuy nhiên, một số chính sách thực thi có thể hiển thị thông báo lỗi khi bạn chạy tập lệnh PowerShell.
Ví dụ: bật các chính sách “Restricted,” “AllSigned,” hoặc “RemoteSigned” có thể dẫn đến các thông báo lỗi như lỗi “tập lệnh đang chạy bị tắt”.
Để giải quyết vấn đề, bạn chỉ cần thay đổi chính sách thực thi thành “Không hạn chế” hoặc “ByPass”. Nhưng đó không phải là tất cả; bạn cũng cần phải quyết định chính sách nên được thực hiện như thế nào. Ví dụ: bạn muốn áp dụng chính sách cho tất cả người dùng hay chỉ cho phiên PowerShell hiện tại của mình?
Hãy khám phá tất cả các lệnh PowerShell bổ sung mà bạn sẽ phải thêm khi thay đổi chính sách thực thi:
- Người dùng hiện tại: Chính sách này sẽ chỉ được áp dụng cho tất cả các phiên PowerShell của người hiện đã đăng nhập trên thiết bị.
- Máy địa phương: Áp dụng cho tất cả người dùng có tài khoản trên thiết bị. Chính sách này chỉ có thể được định cấu hình bởi người dùng cục bộ có đặc quyền quản trị.
- Quá trình: Chỉ áp dụng trên phiên PowerShell hiện tại. Điều này có nghĩa là bạn sẽ phải thực hiện lại chính sách nếu bạn bắt đầu một phiên mới.
- MáyChính sách: Chính sách này áp dụng cho tất cả người dùng có tài khoản trên thiết bị của bạn. Tuy nhiên, nó chỉ có thể được cấu hình bởi quản trị viên mạng có quyền thích hợp. Nhưng quản trị viên cục bộ thường có thể định cấu hình chính sách thực thi này bằng Trình chỉnh sửa chính sách nhóm cục bộ.
- chính sách người dùng: Áp dụng cho tất cả các phiên PowerShell và tập lệnh được thực thi bởi một người dùng cụ thể.
Bây giờ mọi thứ đã rõ ràng, hãy khám phá cách bạn có thể thực thi các chính sách có liên quan để khắc phục sự cố “PowerShell không thể tải”.
Cách thay đổi Chính sách thực thi thành “Không hạn chế”
Cách tốt nhất để giải quyết vấn đề hiện tại là thay đổi chính sách thực thi thành “không hạn chế”. Nhưng trước đó, bạn cần kiểm tra xem từng chính sách thực thi được cấu hình như thế nào.
Dưới đây là các bước để kiểm tra cách cấu hình các chính sách thực thi:
- Nhấn Thắng + X để mở Menu truy cập nhanh.
- Lựa chọn Windows PowerShell (Quản trị viên) từ các tùy chọn.
- Nhập lệnh sau và nhấn Đi vào:
Get-ExecutionPolicy -List
Điều này sẽ cho bạn thấy cách các chính sách thực thi được cấu hình cho những người dùng và hệ thống khác nhau.
Để có thể thay đổi chính sách thực thi thành “Không giới hạn” cho người dùng đang hoạt động hiện tại, hãy nhập lệnh sau và nhấn Đi vào:
Set-ExecutionPolicy Unrestricted -Scope CurrentUser
Để thay đổi chính sách thực thi thành “Không giới hạn” cho tất cả người dùng, hãy nhập lệnh sau và nhấn Đi vào:
Set-ExecutionPolicy Unrestricted -Scope LocalMachine
Khi bạn chạy lệnh xong, hãy đóng PowerShell và khởi động lại PC để lưu những thay đổi này.
Cách thay đổi Chính sách thực thi thành “ByPass”
Chính sách thực thi “ByPass” sẽ cho phép bạn chạy bất kỳ tập lệnh PowerShell nào mà không gặp rắc rối. Nhưng hãy nhớ rằng nó cũng có thể cho phép bạn chạy các tệp lỗi. Vì vậy, luôn chỉ định cấu hình chính sách thực thi này khi chạy các tệp PowerShell đáng tin cậy.
Để thay đổi chính sách thực thi thành “ByPass” cho người dùng đang hoạt động hiện tại, hãy nhập lệnh sau và nhấn Đi vào:
Set-ExecutionPolicy ByPass -Scope CurrentUser
Và để thay đổi chính sách thực thi thành “ByPass” cho tất cả người dùng, hãy nhập lệnh sau và nhấn Đi vào:
Set-ExecutionPolicy ByPass -Scope LocalMachine
Khi bạn hoàn tất, hãy đóng PowerShell rồi khởi động lại thiết bị của mình.
3. Thay đổi chính sách thực thi thông qua Trình chỉnh sửa chính sách nhóm cục bộ
Trình chỉnh sửa chính sách nhóm cục bộ (LGPE) cũng giúp bạn dễ dàng thay đổi chính sách thực thi. Trên thực tế, công cụ này cũng có thể giúp bạn định cấu hình các cài đặt hệ thống khác nhau hoặc khắc phục rất nhiều sự cố của PC.
Hãy nhớ rằng, mục đích chính là thay đổi chính sách thực thi sao cho bạn có thể chạy tập lệnh PowerShell của mình mà không gặp rắc rối. Và bằng cách đó, bạn sẽ thoát khỏi lỗi “tập lệnh đang chạy bị vô hiệu hóa” trên PowerShell.
Đây là cách thay đổi chính sách thực thi trong LGPE:
- Kiểu Chỉnh sửa chính sách nhóm trong thanh tìm kiếm của menu Bắt đầu và chọn Trận đấu hay nhất. Ngoài ra, hãy xem các cách khác nhau để mở LGPE.
- Hướng đến Cấu hình máy tính > Mẫu quản trị > Cấu phần Windows > Windows PowerShell.
- Bấm đúp vào Bật Thực thi tập lệnh lựa chọn.
Kiểm tra Đã bật hộp. Từ đó, nhấp vào Chính sách thực thi trình đơn thả xuống và chọn Cho phép tập lệnh cục bộ và tập lệnh được ký từ xa. Tùy chọn này tương tự như tùy chọn “Ký từ xa” mà chúng tôi đã khám phá trước đó.
Nếu bạn muốn chạy tất cả các tập lệnh mà không bị hạn chế, hãy chọn Cho phép tất cả các tập lệnh tùy chọn từ trình đơn thả xuống “Chính sách thực thi”.
Từ đó, nhấp vào Áp dụng và sau đó bấm ĐƯỢC RỒI để lưu những thay đổi này.
4. Thay đổi chính sách thực thi bằng Registry Editor
Nếu các phương pháp khác không hiệu quả, hãy thử thay đổi chính sách thực thi bằng Registry Editor. Tuy nhiên, bạn cần cẩn thận khi chỉnh sửa khóa Registry. Nếu bạn chỉnh sai các phím, thì bạn có thể sẽ làm hỏng PC của mình.
Bây giờ, đây là cách thay đổi chính sách thực thi thông qua Registry Editor:
- Nhấn Thắng + R để mở hộp thoại lệnh Run.
- Kiểu đăng ký lại và hãy nhấn Đi vào để mở Registry Editor.
- Sao chép-dán lệnh sau vào thanh địa chỉ và nhấn Đi vào:
HKEY_LOCAL_MACHINESOFTWAREMicrosoftPowerShell1ShellIdsMicrosoft.PowerShell
xác định vị trí Chính sách thực thi giá trị ở vế phải.
Nếu giá trị bị thiếu, hãy tạo nó qua các bước sau:
- Nhấp chuột phải vào một khoảng trống ở phía bên tay phải.
- Lựa chọn Mới > Giá trị DWORD (32-bit).
- Đặt tên cho giá trị là Chính sách thực thi và hãy nhấn Đi vào.
Bấm đúp vào Chính sách thực thi giá trị. Tiếp theo, gõ Đã ký từ xa trong phần “Dữ liệu giá trị”. Điều này sẽ cho phép PowerShell thực thi các tập lệnh cục bộ và đã ký.
Ngoài ra, gõ Đường vòng trong phần “Dữ liệu giá trị”. Điều này sẽ cho phép PowerShell thực thi bất kỳ tập lệnh nào mà không bị giới hạn.
Sau khi nhập giá trị ưa thích của bạn vào phần “Dữ liệu giá trị”, nhấn ĐƯỢC RỒI để lưu các thay đổi. Cuối cùng, đóng Registry Editor và sau đó khởi động lại thiết bị của bạn.
Chạy tập lệnh PowerShell của bạn mà không có bất kỳ hạn chế nào
Có thể khá khó chịu khi bạn đột nhiên không thể thực thi một số lệnh nhất định trên Windows PowerShell. Nhưng nếu bạn gặp phải lỗi “tập lệnh bị vô hiệu hóa”, thì các giải pháp mà chúng tôi đề cập sẽ hữu ích.
Bây giờ, PowerShell có thường gây ra các sự cố khác cho bạn không? Vâng, có nhiều giải pháp có thể giúp bạn ra ngoài.