Hướng dẫn chạy Powershell Script

Chạy Powershell Script là một cách tuyệt vời để tự động hóa các nhiệm vụ, thu thập thông tin hoặc sửa đổi các thuộc tính hàng loạt. Hầu hết các lệnh PowerShell chỉ cần một dòng duy nhất mà bạn có thể sao chép và dán trực tiếp vào PowerShell. Nhưng làm sao để chạy một Powershell Script hoàn chỉnh?

Có một số tùy chọn khi bạn muốn chạy Powershell Script, từ đơn giản nhất là chạy từ cmd, sử dụng PowerShell ISE hoặc thậm chí một tác vụ được lập lịch.

Trong bài viết này, tôi sẽ giải thích các tùy chọn khác nhau để chạy một Powershell Script. Bên cạnh đó, tôi cũng sẽ giúp bạn khắc phục các lỗi thường gặp, như “không thể chạy script trên hệ thống này”.

Khắc phục lỗi “Không thể chạy script trên hệ thống này”

Chúng ta sẽ bắt đầu với một lỗi phổ biến ngăn chặn hầu hết người dùng chạy một Powershell Script, đó là lỗi “Không thể chạy script trên hệ thống này”. Lỗi này xuất hiện do Chính sách Thực thi Powershell (PowerShell Execution Policy).

Mặc định, Chính sách Thực thi Powershell được đặt thành “Restricted” (Hạn chế). Điều này có nghĩa là Powershell Script sẽ không chạy.

Để chạy một Powershell Script, chúng ta cần thay đổi chính sách thực thi. Dưới đây là một số tùy chọn chính sách:

  • Restricted
  • Unrestricted
  • RemoteSigned
  • Bypass
  • AllSigned

Các Chính sách Thực thi không được thiết kế như một mô hình bảo mật, mà chủ yếu nhằm ngăn ngừa việc thực thi không cố ý của một Powershell Script. Tùy chọn tốt nhất là sử dụng chính sách “RemoteSigned”, điều này giúp bạn không thể chạy một Powershell Script đã tải xuống một cách không cố ý (bạn phải bỏ chặn nó trước). Đọc thêm về chính sách thực thi trong bài viết này.

XEM THÊM:  Cách Lắp Đặt Kệ Treo Tivi Như Chuyên Gia

Để thay đổi chính sách thực thi trong Powershell (và khắc phục lỗi “Không thể chạy script trên hệ thống này”), bạn cần khởi động Powershell với quyền quản trị:

  1. Nhấn tổ hợp phím Windows + X (hoặc chuột phải vào menu Start)
  2. Chọn Windows PowerShell (admin)
  3. Chạy lệnh sau:
Set-ExecutionPolicy RemoteSigned

Bây giờ bạn đã có thể chạy Powershell Scripts.

Chạy một Powershell Script

Có một số tùy chọn để chạy một Powershell Script. Cách tiện lợi nhất là đơn giản nhấp chuột phải vào tệp tin và chọn Run with PowerShell.

Nhưng phương pháp này đi kèm với một nhược điểm. Mặc định, hầu hết các Powershell Scripts sẽ tự động đóng cửa sổ Powershell khi script hoàn tất. Vì vậy, mặc dù script đã được thực thi, bạn sẽ không thể đọc bất kỳ lỗi hoặc đầu ra nào.

Bạn có thể giải quyết điều này bằng cách thêm dòng sau vào cuối Powershell Script, nhưng điều này không phải lúc nào cũng là một tùy chọn thuận lợi:

Read-Host -Prompt "Nhấn Enter để thoát"

Sử dụng Windows PowerShell

Cá nhân tôi thích chạy Powershell Scripts từ dòng lệnh trong Windows PowerShell. Có hai cách để làm điều này: bạn có thể bắt đầu PowerShell và điều hướng đến script hoặc mở PowerShell tại vị trí đúng từ trình duyệt.

Chúng ta bắt đầu bằng cách mở PowerShell tại vị trí đúng từ trình duyệt. Trong trình duyệt, hãy xác định vị trí của script mà bạn muốn chạy, trong trường hợp này là c:temppowershell.

  1. Nhấp chuột phải vào vùng trống trong Trình duyệt (không phải trên tệp PowerShell)
  2. Chọn Mở cửa sổ PowerShell ở đây (Trong Windows 11, bạn cần chọn Mở trong Windows Terminal)
XEM THÊM:  Hướng Dẫn Cách Boot Bằng PXE

Như bạn có thể thấy, PowerShell được khởi động tại thư mục c:tempPowerShell. Bây giờ bạn có thể chạy script bằng cách đơn giản gõ tên tệp tin (gõ một số ký tự đầu tiên và nhấn Tab để tự động hoàn tất):

Bạn cũng có thể bắt đầu Windows PowerShell trước:

  1. Chuột phải vào menu Start (hoặc nhấn tổ hợp phím Windows + X)
  2. Chọn Windows PowerShell
  3. Di chuyển tới thư mục chứa scriptcd c:pathtoscript (nhấn Enter)
  4. Chạy script Powershell.PowerShellExampleScript.ps1 (nhấn Enter)

Chạy PowerShell Script từ CMD

Nếu bạn đã thử chạy một Powershell từ cmd, bạn có thể nhận thấy nó chỉ mở script trong notepad. Điều này không phải là kết quả chúng ta đang tìm kiếm.

Để chạy Powershell Script, chúng ta cần cho dòng lệnh biết mở script bằng Powershell. Chúng ta có thể sử dụng cmd sau:

PowerShell c:pathtoscriptPowerShellScript.ps1

Lưu ý rằng bạn cần chỉ định đường dẫn đầy đủ tới Powershell Script. Kết quả của script được hiển thị trong cửa sổ lệnh.

Nếu bạn muốn giữ phiên Powershell mở, bạn có thể thêm tham số -noexit vào lệnh:

PowerShell -noexit c:tempPowerShellPowerShellExampleScript.ps1

Sử dụng PowerShell ISE

Khi bạn tải xuống một script từ internet, luôn là một ý tưởng tốt để xem xét script trước khi chạy nó. Một cách dễ dàng để xem xét và chạy một Powershell Script là sử dụng PowerShell ISE.

Để mở một tệp Powershell trong trình soạn thảo, đơn giản nhấp chuột phải và chọn Edit.

Khi bạn sử dụng trình soạn thảo lần đầu tiên, có thể bạn cần mở rộng khung kịch bản trước để xem nội dung của Powershell Script:

Để chạy một script trong PowerShell ISE, chỉ cần nhấp vào nút play màu xanh lá cây trên thanh công cụ. Kết quả của script sẽ được hiển thị trong cửa sổ console:

XEM THÊM:  Cách xóa bộ nhớ cache DNS

Chạy Powershell Script với quyền Quản trị

Một số Powershell Scripts yêu cầu quyền quản trị để chạy đúng. Chúng có thể cần truy cập vào tất cả các thư mục trên ổ đĩa hệ thống của bạn hoặc cần tương tác với các máy tính hoặc máy chủ trong miền khác.

Cách đơn giản nhất để chạy Powershell Script với quyền quản trị là khởi động Windows PowerShell với quyền quản trị.

  1. Nhấn tổ hợp phím Windows + X (hoặc chuột phải vào menu Start)
  2. Chọn Windows PowerShell (admin)
  3. Nhấp vào Yes trong thông báo Bảo mật Tài khoản Người dùng

Bạn có thể chạy bất kỳ lệnh hoặc script Powershell nào với đặc quyền quản trị. Chỉ cần dẫn tới script (hoặc thậm chí kéo và thả script) để chạy nó.

Bạn cũng có thể chạy script Powershell với quyền quản trị từ dòng lệnh. Khi bạn đã mở Powershell, chúng ta có thể bắt đầu một quy trình Powershell mới và chạy nó dưới dạng Quản trị viên. Tùy ý, bạn cũng có thể chỉ định tệp mà bạn muốn chạy:

# Mở cửa sổ Powershell mới với đặc quyền Quản trị
Start-Process PowerShell -Verb runAs

# Chạy script Powershell với đặc quyền Quản trị
Start-Process PowerShell -Verb runAs -ArgumentList "-file c:temppowershellpowershellexamplescript.ps1"

Kết

Hy vọng bạn đã có thể chạy Powershell Script của mình bằng các bước trên. Hãy chắc chắn rằng bạn đã thiết lập chính sách thực thi đúng trước khi chạy một Powershell Script. Bạn cũng có thể lập lịch chạy Powershell Scripts bằng Trình lập lịch Tác vụ.

Nếu bạn có bất kỳ câu hỏi nào, hãy để lại một bình luận phía dưới. Đừng quên đọc thêm về cách thiết lập hồ sơ Powershell của bạn.