Cách kích hoạt và sử dụng Script Execution Policy trong Windows PowerShell

PowerShell, theo mặc định, cho phép bạn chạy các lệnh (cmdlet) thông qua console của nó. Để thực thi một script, bạn có thể tạo một file notepad có code script, lưu nó với phần mở rộng file .ps1 và thực thi nó qua PowerShell console. Bạn cũng có thể dán trực tiếp script vào console để thực thi.

Tuy nhiên, nếu đây là lần đầu tiên bạn thực thi script qua PowerShell, thì bạn sẽ gặp phải lỗi "running script is disabled" (script đang chạy bị vô hiệu hóa). Theo mặc định, việc thực thi script trên PowerShell bị vô hiệu hóa như một biện pháp bảo mật để ngăn các script độc hại chạy trên hệ thống. Bài viết sau đây sẽ chỉ cho bạn hai cách để kích hoạt Script Execution Policy trong Windows PowerShell.

Cách kiểm tra policy thực thi hiện tại

Powershell đặt policy thực thi thành undefined
Powershell đặt policy thực thi thành undefined

Bạn có thể sử dụng một PowerShell cmdlet để nhận policy thực thi hiện tại của mình. Việc biết policy thực thi hiện tại là cần thiết để biết liệu bạn có cần thay đổi policy hay không.

Để có được policy thực thi cho người dùng hiện tại:

1. Mở Windows PowerShell với quyền admin.

2. Nhập lệnh sau vào console PowerShell và nhấn Enter:

get-executionpolicy

3. Vì bạn đã gặp phải lỗi khi thực thi script nên kết quả trả lại có thể sẽ hiển thị Restricted cho policy thực thi hiện tại của bạn.

4. Nếu bạn cần xem policy 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 policy thực thi thành RemoteSigned để chạy script cục bộ mà không gặp lỗi. Bạn có thể thay đổi policy thực thi từ ứng dụng Settings và PowerShell.

Cách bật policy thực thi PowerShell bằng ứng dụng Settings

Bạn có thể thay đổi và đặt policy thực thi PowerShell thành RemoteSigned bằng ứng dụng Settings. 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 policy thực thi nhằm kích hoạt thực thi script PowerShell.

Để thay đổi policy thực thi bằng Settings:

1. Nhấn Win + I để mở Settings.

2. Mở tab Privacy & Security ở ngăn bên trái.

3. Tiếp theo, nhấp vào For developers.

Windows 11 cho nhà phát triển
Windows 11 cho nhà phát triển

4. Nhấp để mở rộng phần PowerShell.

5. Bật công tắc Change the execution policy to allow local PowerShell scripts to run without signing - Require signing for remote scripts.

Bật cài đặt thực thi script Powershell Windows 11
Bật cài đặt thực thi script Powershell Windows 11

6. Sau khi hoàn tất, hãy mở PowerShell, nhập get executionpolicy và nhấn Enter. Policy thực thi cho người dùng hiện tại được đặt thành RemoteSigned.

7. Nếu bạn cần tắt policy thực thi, hãy bật công tắc PowerShell và đặt thành Off.

Cách cho phép script chạy trong PowerShell bằng PowerShell

Powershell đặt policy thực thi thành RemoteSigned
Powershell đặt policy thực thi thành RemoteSigned

Bạn có thể sử dụng PowerShell cmdlet để đặt policy thực thi thành RemoteSigned. Giao diện dòng lệnh giúp dễ dàng thay đổi policy thực thi một cách nhanh chóng mà không cần sử dụng ứng dụng Settings.

Ngoài ra, ứng dụng Settings chỉ có thể bật hoặc tắt policy thực thi RemoteSigned. Trong khi PowerShell còn cho phép bạn đặt các policy và phạm vi khác.

Để thay đổi policy thực thi bằng PowerShell:

1. Mở PowerShell với quyền admin.

2. Trong cửa sổ PowerShell, gõ lệnh sau và nhấn Enter:

Set-ExecutionPolicy RemoteSigned

3. Nếu được nhắc, nhấn A để xác nhận hành động. Điều này sẽ đặt policy thực thi RemoteSigned cho tất cả người dùng. Nếu bạn chỉ muốn đặt policy thực thi cho Current User, hãy sử dụng tham số Scope theo sau tên người dùng.

4. Ví dụ, để đặt policy thực thi RemoteSigned cho CurrentUser, hãy sử dụng lệnh sau:

Set-ExecutionPolicy RemoteSgined -Scope CurrentUser

5. Thay thế CurrentUser trong lệnh trên bằng người dùng khác (Scope) theo yêu cầu của bạn.

Cách xóa Script Execution Policy bằng PowerShell

Set -ExecutionPolicy undefined
Set -ExecutionPolicy undefined

Nếu bạn muốn tắt tính năng thực thi script, hãy đặt policy thực thi thành Undefined bằng cmdlet Set_ExecutionPolicy. Đây là trạng thái mặc định và ngăn PowerShell thực thi bất kỳ script nào.

Để tắt thực thi script bằng PowerShell:

1. Mở PowerShell với quyền admin.

2. Tiếp theo, nhập lệnh sau và nhấn Enter để tắt tính năng thực thi script cho tất cả người dùng:

Set-ExecutionPolicy undefined

3. Lệnh trên sẽ đặt policy thực thi mặc định (undefined) cho tất cả người dùng. Nếu bạn muốn tắt thực thi script cho một phạm vi cụ thể, hãy sử dụng lệnh sau:

Set-ExecutionPolicy undefined -Scope CurrentUser

4. Lệnh trên sẽ vô hiệu hóa việc thực thi script cho CurrentUser.

Thứ Hai, 20/03/2023 11:41
51 👨 786
0 Bình luận
Sắp xếp theo