Cách bật và sử dụng Chính sách thực thi tập lệnh trong Windows PowerShell
iPowerShell, theo mặc định, cho phép bạn chạy các lệnh (lệnh ghép ngắn) thông qua bảng điều khiển của nó. Để thực thi một tập lệnh, bạn có thể tạo một tệp notepad có mã tập lệnh, lưu nó với phần mở rộng tệp .ps1 và thực thi nó qua bảng điều khiển PowerShell. Bạn cũng có thể dán trực tiếp tập lệnh vào bảng điều khiển để thực thi.
Tuy nhiên, nếu đây là lần đầu tiên bạn thực thi tập lệnh qua PowerShell, bạn sẽ gặp phải lỗi “tập lệnh đang chạy bị tắt”. Theo mặc định, việc thực thi tập lệnh trên PowerShell bị vô hiệu hóa như một biện pháp bảo mật để ngăn các tập lệnh độc hại chạy trên hệ thống của bạn. Ở đây chúng tôi chỉ cho bạn hai cách để kích hoạt chính sách thực thi tập lệnh trên Windows PowerShell.
Mục Lục
Cách kiểm tra chính sách thực thi hiện tại của bạn
Bạn có thể sử dụng lệnh ghép ngắn PowerShell để nhận chính sách thực thi hiện tại của mình. Việc biết chính sách thực thi hiện tại của bạn là cần thiết để biết liệu bạn có cần thay đổi chính sách hay không.
Để có được chính sách thực thi hiện tại của bạn cho người dùng hiện tại:
- Mở Windows PowerShell với tư cách quản trị viên.
- Nhập lệnh sau vào bảng điều khiển PowerShell và nhấn Enter:
get-executionpolicy - Vì bạn đã gặp lỗi khi thực thi tập lệnh, nên kết quả trả về có thể sẽ hiển thị Hạn chế như chính sách thực thi hiện tại của bạn.
- Nếu bạn cần xem chính sách thực thi cho tất cả các phạm vi được hỗ trợ:
get-executionpolicy -list
Bạn sẽ cần thay đổi chính sách thực thi thành RemoteSigned để chạy tập lệnh cục bộ mà không gặp lỗi. Bạn có thể thay đổi chính sách thực thi từ ứng dụng Cài đặt và PowerShell.
Cách bật Chính sách thực thi PowerShell bằng ứng dụng Cài đặt
Bạn có thể thay đổi và đặt chính sách thực thi PowerShell thành RemoteSigned bằng ứng dụng Cài đặt. Tất cả những gì bạn phải làm là điều chỉnh cài đặt PowerShell trong phần dành cho nhà phát triển để thay đổi chính sách thực thi nhằm kích hoạt thực thi tập lệnh PowerShell.
Để thay đổi chính sách thực thi bằng Cài đặt:
- Nhấn Thắng + tôi để mở Settin nhắn.
- Mở Quyền riêng tư & Bảo mật trong ngăn bên trái.
- Tiếp theo, bấm vào Cho các nhà phát triển.
- Bấm để mở rộng PowerShell phần.
- Chuyển công tắc sang thay đổi chính sách thực thi để cho phép tập lệnh PowerShell cục bộ chạy mà không cần ký – Yêu cầu ký cho tập lệnh từ xa.
- Sau khi hoàn tất, hãy mở PowerShell, nhập get chính sách thực thi, và hãy nhấn Đi vào. Chính sách thực thi cho người dùng hiện tại được đặt thành Đã ký từ xa.
- Nếu bạn cần tắt chính sách thực thi, hãy bật công tắc PowerShell và đặt thành Tắt.
Cách cho phép tập lệnh chạy trong PowerShell bằng PowerShell
Bạn có thể sử dụng lệnh ghép ngắn PowerShell để đặt chính sách thực thi thành RemoteSigned. Giao diện dòng lệnh giúp dễ dàng thay đổi chính sách thực thi một cách nhanh chóng mà không cần sử dụng ứng dụng Cài đặt.
Ngoài ra, ứng dụng Cài đặt chỉ có thể bật hoặc tắt chính sách thực thi RemoteSigned. Trong khi PowerShell cũng cho phép bạn đặt các chính sách và phạm vi khác.
Để thay đổi chính sách thực thi bằng PowerShell:
- Mở PowerShell với tư cách quản trị viên.
- Trong cửa sổ PowerShell, gõ lệnh sau và nhấn Đi vào:
Set-ExecutionPolicy RemoteSigned - Nếu được nhắc, hãy nhấn MỘT để xác nhận hành động. Điều này sẽ thiết lập Đã ký từ xa chính sách thực thi cho tất cả người dùng. Nếu bạn muốn đặt chính sách thực thi cho Người dùng hiện tại chỉ, hãy sử dụng tham số Phạm vi theo sau tên người dùng.
- Ví dụ, để thiết lập các Đã ký từ xa chính sách thực hiện cho Người dùng hiện tạisử dụng lệnh sau:
Set-ExecutionPolicy RemoteSgined -Scope CurrentUser - Thay thế Người dùng hiện tại trong lệnh trên với những người dùng khác (Phạm vi) theo yêu cầu của bạn.
Cách xóa chính sách thực thi tập lệnh bằng PowerShell
Nếu bạn muốn tắt thực thi tập lệnh, hãy đặt chính sách thực thi thành Không xác định sử dụng thứe Set_ExecutPolicy lệnh ghép ngắn. Đây là trạng thái mặc định và ngăn PowerShell thực thi bất kỳ tập lệnh nào.
Để tắt thực thi tập lệnh bằng PowerShell:
- Mở PowerShell với quyền cao hơn.
- Tiếp theo, nhập lệnh sau và nhấn enter để tắt thực thi tập lệnh cho tất cả người dùng:
Set-ExecutionPolicy undefined - Lệnh trên sẽ đặt mặc định chính sách thực thi (không xác định) cho tất cả người dùng. Nếu bạn muốn tắt thực thi tập lệnh cho một phạm vi cụ thể, hãy sử dụng lệnh sau:
Set-ExecutionPolicy undefined -Scope CurrentUser - Lệnh trên sẽ vô hiệu hóa việc thực thi tập lệnh cho Người dùng hiện tại.
Hiểu chính sách và phạm vi thực thi
Nói một cách đơn giản, chính sách thực thi của PowerShell là chính sách kiểm soát cách PowerShell thực thi các tệp cấu hình và tập lệnh. Mục đích dự định là để ngăn người dùng vô tình chạy các tập lệnh độc hại. Bảy chính sách thực thi PowerShell là Mặc định, Bị hạn chế, Đã ký từ xa, Đã ký, Không bị hạn chế, Bỏ qua và Không xác định.
Bảng dưới đây giải thích ngắn gọn tất cả các chính sách thực thi PowerShell:
|
Chính sách thực thi |
Thực thi |
|
Mặc định |
Đặt chính sách thực thi mặc định là Bị hạn chế trên Máy khách Windows và Đã ký từ xa trên Máy chủ Windows. |
|
Tất cả đã ký |
Cho phép thực thi các tập lệnh đã ký của nhà xuất bản. |
|
Đường vòng |
Thực thi tập lệnh không hạn chế cho các ứng dụng lớn hơn. |
|
Đã ký từ xa |
Cho phép thực thi tập lệnh được viết cục bộ. Yêu cầu chữ ký điện tử cho các tập lệnh được tải xuống từ internet. |
|
Hạn chế |
Không cho phép thực thi tập lệnh mà chỉ cho phép các lệnh PowerShell riêng lẻ. |
|
Không xác định |
Đặt chính sách thực thi thành Bị hạn chế đối với máy khách Windows và RemoteSigned đối với Windows Server. |
|
không giới hạn |
Cho phép thực thi tập lệnh chưa được ký với cảnh báo đối với các tập lệnh được tải xuống từ internet. |
Phạm vi chính sách thực thi
Bạn có thể đặt chính sách thực thi cho một phạm vi cụ thể trong PowerShell. Năm phạm vi chính sách thực thi là MachinePolicy, UserPolicy, Process, CurrentUser, Và Máy địa phương.
Bảng dưới đây giải thích ngắn gọn tất cả các phạm vi chính sách thực thi:
|
Phạm vi chính sách thực thi |
Thực thi |
|
chính sách người dùng |
Được định cấu hình bởi Chính sách nhóm cho người dùng hiện tại. |
|
Chính sách máy |
Được định cấu hình bởi Chính sách nhóm cho tất cả người dùng. |
|
Người dùng tiền tệ |
Được định cấu hình cho người dùng hiện tại và được lưu trữ trong khóa con đăng ký HKEY_CURRENT_MACHINE. |
|
Máy địa phương |
Được định cấu hình cho tất cả người dùng và được lưu trữ trong khóa con đăng ký HKEY_CURRENT_MACHINE. |
|
Quá trình |
Ảnh hưởng đến phiên PowerShell hiện tại và tự động bị xóa khi đóng phiên. |
Thêm hoặc xóa Chính sách thực thi tập lệnh PowerShell trên Windows
Thực thi tập lệnh trên PowerShell bị tắt theo mặc định đối với máy khách Windows và được đặt thành RemoteSigned cho máy chủ Windows. Tuy nhiên, người dùng thành thạo có thể thay đổi chính sách thực thi để chạy các tập lệnh PowerShell cục bộ, đã ký và chưa ký.
Ngoài ra, bạn có thể bỏ qua chính sách thực thi PowerShell bằng cách dán tập lệnh vào bảng điều khiển PowerShell hoặc ECHO tập lệnh của bạn vào đầu vào tiêu chuẩn PowerShell. Điều này hữu ích nếu bạn muốn thực thi tập lệnh mà không thay đổi chính sách thực thi.