Hướng dẫn Powershell cho người mới bắt đầu

⚡ Tóm tắt thông minh

PowerShell Scripting là một công cụ tự động hóa hướng đối tượng được xây dựng trên nền tảng .NET. Nó kết hợp các cmdlet, script và ngôn ngữ lập trình để giúp các quản trị viên CNTT tự động hóa quy trình. WindowsQuản lý dịch vụ và kết nối các máy từ xa từ một dòng lệnh duy nhất.

  • 🚀 Khởi chạy trình thông dịch lệnh phù hợp: Mở PowerShell hoặc PowerShell ISE từ menu Bắt đầu và chạy với quyền Quản trị viên khi bạn cần quyền truy cập cao hơn.
  • 🧩 Hãy sử dụng cmdlet, chứ không phải lệnh văn bản: Các cmdlet tuân theo mẫu đặt tên động từ-danh từ và trả về các đối tượng .NET, do đó đầu ra có thể được chuyển tiếp đến cmdlet tiếp theo thông qua một đường ống dẫn.
  • 🔐 Hãy thiết lập chính sách thực thi một cách cẩn thận: Sử dụng Set-ExecutionPolicy với RemoteSigned để cân bằng giữa tính an toàn và sự tiện lợi khi chạy các tập lệnh .ps1.
  • 📁 Viết các tập lệnh .ps1 có thể tái sử dụng: Kết hợp các cmdlet, biến và pipeline trong một tệp văn bản có phần mở rộng .ps1 để tự động hóa các tác vụ quản trị lặp đi lặp lại.
  • 🤖 Kết hợp PowerShell với Trí tuệ nhân tạo: Các trợ lý AI chuyển đổi các yêu cầu bằng tiếng Anh thông thường thành các kịch bản PowerShell sẵn sàng chạy và giải thích từng dòng lệnh cmdlet không quen thuộc.

Hướng dẫn Powershell cho người mới bắt đầu

PowerShell là gì?

Windows PowerShell là một công cụ tự động hóa hướng đối tượng và ngôn ngữ kịch bản. Nó được thiết kế dành cho các chuyên gia CNTT và quản trị viên hệ thống cần kiểm soát và tự động hóa việc quản trị. Windows và các ứng dụng khác. PowerShell mở rộng các khái niệm đã học trong Windows Dấu nhắc lệnh và Windows Script Host với các đối tượng, cmdlet mới và một pipeline mạnh mẽ.

Nó kết hợp tính linh hoạt của lập trình kịch bản, tốc độ của dòng lệnh và chiều sâu của công cụ quản trị giao diện đồ họa (GUI). Với nó, các quản trị viên có thể giải quyết vấn đề một cách hiệu quả và tiết kiệm hàng giờ làm việc thủ công. Hướng dẫn này sẽ trình bày những kiến ​​thức cơ bản bạn cần để học PowerShell từ đầu.

Tại sao nên sử dụng PowerShell?

Những lý do quan trọng nhất để sử dụng PowerShell là:

  • Cung cấp trải nghiệm dòng lệnh được tích hợp tốt cho hệ điều hành.
  • Cung cấp quyền truy cập đầy đủ vào mọi kiểu dữ liệu trong framework .NET.
  • Được các quản trị viên hệ thống trong toàn doanh nghiệp tin dùng.
  • Cho phép bạn thao tác các thành phần máy chủ và máy trạm chỉ với vài dòng lệnh.
  • Hướng đến đối tượng quản trị viên hệ thống với cú pháp động từ-danh từ rõ ràng.
  • An toàn hơn so với việc chạy vbscript hoặc các ngôn ngữ lập trình kịch bản cũ khác.

Lịch sử PowerShell

PowerShell 1.0 được phát hành lần đầu vào năm 2006. Hiện nay PowerShell đã có phiên bản 7.2 trở lên. Qua các phiên bản phát hành, khả năng và môi trường lưu trữ của nó đã phát triển đáng kể.

Lịch sử các phiên bản của PowerShell:

  • PowerShell 1.0 — ủng hộ chính quyền địa phương của Windows Máy chủ 2003.
  • PowerShell 2.0 — tích hợp với Windows 7 và Windows Server 2008 R2. Đã thêm tính năng điều khiển từ xa, giao dịch, tác vụ nền, sự kiện và gỡ lỗi.
  • PowerShell 3.0 — được vận chuyển kèm theo Windows 8 và Windows Server 2012 như một phần của Windows Khung quản lý. Đã thêm các tác vụ theo lịch trình, kết nối phiên và tải mô-đun tự động.
  • PowerShell 4.0 — được vận chuyển kèm theo Windows 8.1 và Windows Server 2012 R2. Đã thêm tính năng Cấu hình trạng thái mong muốn, cải tiến gỡ lỗi và chẩn đoán mạng.
  • PowerShell 5.0 — một phần của Windows Khung quản lý 5. Bổ sung tính năng gỡ lỗi từ xa, định nghĩa lớp và kiểu liệt kê .NET.
  • PowerShell 7.2 — Được xây dựng trên .NET 6.0. Bổ sung các toán tử mới, hiển thị lỗi động và thông báo phiên bản tự động.

Các tính năng của PowerShell

  • Điều khiển từ xa PowerShell: Thực thi các tập lệnh và cmdlet trên máy tính từ xa.
  • Các công việc liên quan đến bối cảnh: Chạy các tập lệnh hoặc quy trình tự động một cách bất đồng bộ trên máy cục bộ hoặc nhiều máy từ xa.
  • giao dịch: Cho phép các cmdlet và nhà phát triển thực hiện các thao tác nhóm có thể được cam kết hoặc hoàn tác cùng nhau.
  • Sự kiện: Lắng nghe, chuyển tiếp và hành động dựa trên các sự kiện quản lý và hệ thống.
  • Truyền tệp mạng: Hỗ trợ gốc cho việc truyền tệp không đồng bộ, ưu tiên và có giới hạn tốc độ giữa các máy thông qua Dịch vụ Truyền tải Thông minh Nền (BITS).

Cách khởi chạy PowerShell

PowerShell được cài đặt sẵn trên mọi phiên bản gần đây của WindowsKhởi chạy nó như sau.

Bước 1) Tìm kiếm PowerShell trong WindowsSau đó chọn và nhấp vào đó.

Khởi chạy PowerShell

Bước 2) Cửa sổ PowerShell mở ra.

Cửa sổ PowerShell

Lệnh ghép ngắn so với lệnh

A lệnh ghép ngắn (Phát âm là “command-let”) là một lệnh nhẹ được sử dụng trong môi trường PowerShell. PowerShell gọi các cmdlet tại dấu nhắc lệnh, và bạn có thể tạo cmdlet của riêng mình bằng cách sử dụng API của PowerShell. Cmdlet khác với các lệnh shell truyền thống ở những điểm sau:

  • Lệnh ghép ngắn là NET Framework. Các đối tượng lớp; chúng không thể được thực thi như các tệp thực thi độc lập.
  • Các cmdlet có thể được viết chỉ với khoảng chục dòng mã.
  • Việc phân tích cú pháp, định dạng đầu ra và hiển thị lỗi được thực hiện bởi môi trường chạy, chứ không phải bởi chính cmdlet.
  • Cmdlet hoạt động với các đối tượng, vì vậy cả luồng văn bản và đối tượng đều có thể truyền qua các đường ống xử lý.
  • Cmdlet hoạt động dựa trên bản ghi và xử lý một đối tượng tại một thời điểm.

Hầu hết các chức năng của PowerShell được cung cấp thông qua các cmdlet, luôn sử dụng mẫu đặt tên động từ-danh từ (luôn ở dạng số ít). Cmdlet trả về đối tượng, không phải văn bản. kịch bản — khác với cmdlet — là một chuỗi các lệnh được lưu trữ trong một tệp văn bản với .ps1 gia hạn.

Các động từ thông dụng bạn sẽ sử dụng để học PowerShell bao gồm:

  • Nhận — Lấy lại thứ gì đó.
  • Bắt đầu — Hãy điều hành một cái gì đó.
  • Out — Xuất ra một cái gì đó.
  • Dừng — Dừng một thứ gì đó đang chạy.
  • Thiết lập — Định nghĩa một cái gì đó.
  • Mới — Hãy tạo ra thứ gì đó.

Các lệnh PowerShell quan trọng

Được giúp đỡ: Xem trợ giúp về các lệnh và chủ đề PowerShell.

Ví dụ: hiển thị trợ giúp cho Format-Table chỉ huy.

Get-Help Format-Table

Lệnh Get-Help

Nhận lệnh: Tìm hiểu thông tin về bất cứ thứ gì có thể được gọi.

Ví dụ: tạo danh sách các cmdlet và hàm đã được cài đặt trên máy.

Get-Command

Lệnh Get-Command

Nhận dịch vụ: Tìm tất cả các dịch vụ trên máy.

Ví dụ: lấy tất cả các dịch vụ có tên bắt đầu bằng “vm”.

Get-Service "vm*"

Lệnh ghép ngắn Get-Service

Đăng ký thành viên: Minh họa những gì có thể làm được với một vật thể.

Ví dụ: liệt kê các thành viên của dịch vụ máy ảo được trả về bởi Get-Service.

Get-Service "vm*" | Get-Member

Cmdlet Get-Member

Các cmdlet hữu ích khác:

  • Get-Module — Hiển thị các gói lệnh đã được cài đặt.
  • Get-Content — Đọc một tập tin và xử lý nội dung của nó.
  • Get-* ký tự đại diện — liệt kê mọi cmdlet bắt đầu bằng “Get-“.

Ví dụ: tạo một thư mục.

New-Item -Path 'X:\Guru99' -ItemType Directory

Đầu ra:

Đầu ra mục mới

Các kiểu dữ liệu PowerShell

PowerShell hỗ trợ các kiểu dữ liệu chuẩn của .NET, vì vậy bạn có thể lưu trữ bất kỳ giá trị nào một cách gọn gàng trong một biến.

Các kiểu dữ liệu PowerShell

Các biến đặc biệt

PowerShell cung cấp một số biến đặc biệt được tích hợp sẵn. Những biến hữu ích nhất được liệt kê bên dưới.

Biến đặc biệt Mô tả Chi tiết
$Lỗi Một mảng các đối tượng lỗi biểu thị các lỗi gần đây nhất.
$Máy chủ Hiển thị tên của ứng dụng đang lưu trữ hiện tại.
Hồ sơ $ Lưu trữ đường dẫn đầy đủ của hồ sơ người dùng cho trình shell mặc định.
$ PID Lưu trữ mã định danh quy trình.
$PSUIVăn hóa Mang tên gọi của văn hóa giao diện người dùng hiện tại.
$NULL Chứa giá trị rỗng hoặc null.
$Sai Chứa giá trị boolean FALSE.
$ Đúng Chứa giá trị boolean TRUE.

Tập lệnh PowerShell

Các tập lệnh PowerShell được lưu trữ trong .ps1 các tập tin. Theo mặc định, bạn không thể chạy một tập lệnh bằng cách nhấp đúp vào nó — biện pháp bảo vệ này giúp bảo vệ hệ thống khỏi những hư hại do vô tình gây ra. Để thực thi một tập lệnh, hãy nhấp chuột phải vào nó và chọn “Chạy bằng PowerShell”.

Chạy với PowerShell

Chính sách thực thi kiểm soát những tập lệnh nào được phép chạy. Xem chính sách hiện tại bằng cách sử dụng Get-ExecutionPolicyCác giá trị có thể bao gồm:

  • Bị hạn chế — Không cho phép sử dụng bất kỳ tập lệnh nào. Đây là cài đặt mặc định.
  • Tất cả đã ký — Chỉ những tập lệnh được ký bởi nhà phát triển đáng tin cậy mới chạy được, và mỗi tập lệnh đều yêu cầu xác nhận.
  • Điều khiển từ xa — chạy các tập lệnh của riêng bạn, cộng với các tập lệnh đã được ký từ các nguồn đáng tin cậy.
  • Không hạn chế — Bất kỳ tập lệnh nào cũng có thể chạy (sử dụng hạn chế).

Các bước để thay đổi chính sách thực thi:

Bước 1) Mở cửa sổ PowerShell với quyền quản trị bằng cách nhấp chuột phải vào PowerShell và chọn Run as Administrator.

Chạy PowerShell với tư cách quản trị viên

Bước 2) Chạy các lệnh dưới đây.

  1. Get-ExecutionPolicy
  2. Set-ExecutionPolicy Unrestricted
  3. đăng ký hạng mục thi Y tại lời nhắc xác nhận.
  4. Get-ExecutionPolicy

Thay đổi chính sách thực thi

Tập lệnh PowerShell đầu tiên

Mở Notepad và gõ:

Write-Host "Hello, Guru99!"

Lưu tập tin với một .ps1 phần mở rộng — ví dụ, FirstScript.ps1.

Lưu tệp FirstScript.ps1

Trong PowerShell, hãy chạy tập lệnh bằng lệnh sau:

& "X:\FirstScript.ps1"

Chạy FirstScript.ps1

PowerShell ISE là gì?

Windows Môi trường tập lệnh tích hợp PowerShell (ISE) ISE là trình soạn thảo mặc định cho PowerShell. Trong ISE, bạn có thể chạy lệnh, viết kiểm thử và gỡ lỗi tập lệnh trong môi trường đồ họa, dựa trên cửa sổ. Nó hỗ trợ chỉnh sửa nhiều dòng, tô màu cú pháp, tự động hoàn thành bằng phím Tab, thực thi chọn lọc và nhiều tính năng khác.

PowerShell ISE cũng cung cấp một ngăn điều khiển cho phép chạy trực tiếp các lệnh, trong khi các ngăn bên hiển thị mã nguồn của các tập lệnh và bất kỳ công cụ nào được tích hợp vào ISE. Bạn có thể mở nhiều cửa sổ tập lệnh cùng một lúc — rất hữu ích khi gỡ lỗi các tập lệnh phụ thuộc vào các hàm được định nghĩa trong các tập lệnh hoặc mô-đun khác.

PowerShellISE

Tái tạo lại kịch bản trước đó trong ISE:

  1. Dán đoạn mã vào trình soạn thảo.
  2. Lưu tập lệnh.
  3. Nhấn F5 để chạy nó.
  4. Quan sát kết quả hiển thị trong cửa sổ dòng lệnh.

Chạy tập lệnh trong ISE

Mẫu 2: Đoạn mã sau hiển thị miễn phí bộ nhớ ảo Trên máy.

Get-WmiObject -Class Win32_OperatingSystem -ComputerName localhost |
Select-Object -Property CSName, FreeVirtualMemory

Tập lệnh bộ nhớ ảo miễn phí

PowerShell Concepts

Các khái niệm sau đây tạo thành vốn từ vựng trong công việc PowerShell hàng ngày.

GIỚI THIỆU Mô tả Chi tiết
Lệnh ghép ngắn Các lệnh tích hợp sẵn được viết bằng các ngôn ngữ .NET như VB hoặc C#. Các nhà phát triển mở rộng tập hợp lệnh bằng cách tải hoặc viết các tiện ích bổ sung PowerShell.
Chức năng Các lệnh được viết trực tiếp bằng ngôn ngữ PowerShell, không cần đến IDE như... Visual Studio.
Kịch bản Các tệp văn bản trên đĩa với .ps1 gia hạn.
Ứng dụng Hiện tại Windows các chương trình được gọi từ trình thông dịch lệnh.
Chuyện gì xảy ra nếu Lệnh này yêu cầu cmdlet không thực thi, nhưng mô tả những gì sẽ xảy ra nếu nó được thực thi.
Xác nhận Hướng dẫn cmdlet yêu cầu nhắc nhở trước khi thực thi.
Dài dòng Cung cấp mức độ chi tiết hoạt động cao hơn.
Gỡ lỗi Hướng dẫn cmdlet xuất ra thông tin gỡ lỗi.
LỗiHành động Xác định hành động của cmdlet khi xảy ra lỗi. Các giá trị cho phép: continue, stop, silentlycontinue, inquire.
LỗiBiến Đặt tên cho biến chứa thông tin lỗi.
OutBiến Chỉ thị cho cmdlet lưu trữ kết quả đầu ra vào một biến cụ thể.
OutBuffer Chứa một số lượng đối tượng nhất định trước khi gửi chúng xuống đường dẫn xử lý.

Ưu điểm của việc sử dụng tập lệnh PowerShell

  • Các tập lệnh PowerShell rất mạnh mẽ và ngắn gọn — bạn có thể thực hiện được rất nhiều việc chỉ với vài dòng lệnh.
  • Các biến được khai báo bằng $<variable> cú pháp.
  • Biến có thể chứa kết quả đầu ra của lệnh, đối tượng và các giá trị cơ bản.
  • Không cần phải chỉ định rõ kiểu dữ liệu của biến.

PowerShell so với Command Prompt

PowerShell Command Prompt
Tích hợp sâu sắc với WindowsCung cấp giao diện dòng lệnh tương tác và ngôn ngữ lập trình đầy đủ. Giao diện dòng lệnh mặc định được cung cấp bởi MicrosoftMột ứng dụng Win32 đơn giản giao tiếp với các đối tượng Win32 khác.
Sử dụng các cmdlet có thể được gọi tương tác hoặc thông qua các kịch bản tự động hóa. Không có cmdlet nào.
Xử lý đầu ra như các đối tượng để chúng có thể được chuyển tiếp vào một cmdlet khác thông qua đường ống dẫn. Kết quả đầu ra là một luồng văn bản thuần túy, không phải là các đối tượng.
Tiên tiến về tính năng, khả năng và kiến ​​trúc nội bộ. Giao diện dòng lệnh cơ bản, phù hợp với các tác vụ xử lý hàng loạt truyền thống.

Ứng dụng của PowerShell

PowerShell đã trở thành lựa chọn tiêu chuẩn cho các quản trị viên CNTT vì nó giúp giảm đáng kể công sức quản lý trên các mạng doanh nghiệp lớn. Hãy tưởng tượng việc quản lý hơn bốn trăm máy chủ và triển khai một giải pháp bảo mật mới phụ thuộc vào một dịch vụ cụ thể đang chạy trên mỗi máy chủ.

Việc đăng nhập thủ công vào từng máy chủ rất chậm và dễ xảy ra lỗi. Một kịch bản PowerShell duy nhất có thể khảo sát mọi máy chủ trong vài phút, báo cáo những máy chủ nào đã chạy dịch vụ và thậm chí kích hoạt dịch vụ trên những máy còn lại. Kịch bản này chỉ ghi nhận ý định một lần và áp dụng nó một cách đáng tin cậy trên toàn hệ thống.

Câu Hỏi Thường Gặp

PowerShell tự động hóa Windows Quản trị hệ thống — quản lý các dịch vụ, tập tin, người dùng và máy chủ — thông qua ngôn ngữ dòng lệnh và kịch bản hướng đối tượng được xây dựng trên nền tảng .NET.

Cmdlet là một đối tượng lớp .NET nhẹ, sử dụng tên dạng động từ-danh từ và trả về các đối tượng. Lệnh truyền thống trong các trình thông dịch lệnh khác xuất ra văn bản thuần túy và tự xử lý việc phân tích cú pháp và định dạng.

PowerShell hoạt động với các đối tượng và hỗ trợ cmdlet, kịch bản và tích hợp sâu với .NET. Command Prompt là một trình shell cơ bản dựa trên văn bản, các lệnh của nó xuất ra văn bản thuần túy chứ không phải đối tượng.

Tệp .ps1 là một kịch bản PowerShell — một tệp văn bản chứa một hoặc nhiều lệnh PowerShell. Theo mặc định, nó không thể được chạy bằng cách nhấp đúp; nó được thực thi từ bảng điều khiển hoặc bằng chức năng "Chạy bằng PowerShell".

Mở PowerShell với quyền Administrator và chạy lệnh Set-ExecutionPolicy với giá trị như RemoteSigned hoặc Unrestricted, sau đó xác nhận. Sử dụng lệnh Get-ExecutionPolicy để kiểm tra thiết lập hiện tại.

Môi trường lập trình tích hợp (ISE) là trình soạn thảo giao diện đồ họa tích hợp sẵn của PowerShell để viết, chạy, kiểm tra và gỡ lỗi các tập lệnh, với tính năng tô màu cú pháp, tự động hoàn thành bằng phím Tab và nhiều tab tập lệnh.

Các trợ lý AI đề xuất các cmdlet, giải thích hành vi của tập lệnh và phát hiện lỗi khi bạn gõ. Chúng giúp các quản trị viên tự động hóa các tác vụ nhanh hơn và chuyển đổi các yêu cầu bằng tiếng Anh thông thường thành các lệnh PowerShell hoạt động.

Đúng vậy. Trợ lý mã AI có thể tạo ra các kịch bản PowerShell hoàn chỉnh từ mô tả bằng tiếng Anh đơn giản, chẳng hạn như "liệt kê tất cả các dịch vụ đã dừng và khởi động lại chúng", và giải thích từng cmdlet để bạn có thể xem lại trước khi chạy.

Tóm tắt bài viết này với: