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.

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 đó.
Bước 2) Cửa sổ PowerShell mở ra.
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
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
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*"
Đă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
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:
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 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í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.
Bước 2) Chạy các lệnh dưới đây.
Get-ExecutionPolicySet-ExecutionPolicy Unrestricted- đăng ký hạng mục thi
Ytại lời nhắc xác nhận. Get-ExecutionPolicy
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.
Trong PowerShell, hãy chạy tập lệnh bằng lệnh sau:
& "X:\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.
Tái tạo lại kịch bản trước đó trong ISE:
- Dán đoạn mã vào trình soạn thảo.
- Lưu tập lệnh.
- Nhấn F5 để chạy nó.
- Quan sát kết quả hiển thị trong cửa sổ dòng lệnh.
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
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.
















