PowerShell là gì?
Microsoft PowerShell là một tiện ích dòng lệnh và ngôn ngữ kịch bản, là công cụ mạnh mẽ dành cho các quản trị viên, giúp bạn có thể tự động hóa hàng loạt nhiệm vụ cho máy tính và mạng. PowerShell chứa các thành phần của Command Prompt và được xây dựng trên framework .NET. Nếu bạn đang tìm hiểu về quản trị mạng, thì bạn cần biết rằng PowerShell chính là công cụ được các quản trị viên công nghệ thông tin chọn để quản lý các mạng lớn.
Học cách sử dụng PowerShell sẽ giúp đơn giản hóa nhiều công việc tẻ nhạt hàng ngày. Bạn cũng có thể thực hiện các thay đổi toàn hệ thống thông qua mạng mà không phải điều chỉnh riêng lẻ cho từng máy chủ. PowerShell đang trở thành một phần thiết yếu trong việc vận hành môi trường đám mây lai.
PowerShell có rất nhiều cách sử dụng khác nhau giúp làm việc tối ưu hơn và giữ cho mạng hoạt động hiệu quả. Những cách sử dụng cơ bản nhất bao gồm: lên lịch cập nhật hàng ngày trên các hệ thống, tạo báo cáo cho những tiến trình hiện tại, dịch vụ theo chu kỳ và nhiều thứ khác. Đúng là nhiều tác vụ trong số này có thể được thực hiện thông qua GUI, tuy nhiên quan điểm của PowerShell là thực hiện chúng nhanh hơn.
PowerShell cũng cấp một giải pháp tự động hoá đa nền tảng bằng dòng lệnh, nó có cả ngôn ngữ kịch bản (scripting language) và cấu hình, quản lý bộ khung làm việc (framework).
Không như trước PowerShell chỉ là một công cụ chỉ chạy trên Windows, giờ đây PowerShell có thể chạy trên các hệ điều hành Windows, Linux và cả macOS.
Lịch sử PowerShell
PowerShell được cài đặt theo mặc định trong Windows 10, Windows 7, Windows Server 2008 R2 và các phiên bản Windows mới hơn. Những bản PowerShell mới được bổ sung thêm nhiều tính năng mới và "cmdlets" (thuật ngữ của Microsoft cho các lệnh PowerShell - phát âm là "command-lets") và được cài đặt bằng phiên bản tương ứng của Windows Management Framework (WMF).
Hiện tại WMF 5.1 là phiên bản mới nhất được khuyến nghị sử dụng. Trong một số trường hợp, một số tính năng mới phụ thuộc vào hệ điều hành bên cạnh phiên bản WMF. Chẳng hạn, Windows 8 và Windows Server 2012 hỗ trợ cmdlet Test-NetConnection, cho phép bạn kiểm tra kết nối với một cổng TCP/IP cụ thể, nhưng cmdlet này không khả dụng trong Windows 7 ngay cả khi chạy phiên bản WMF mới nhất.
Trên hầu hết các hệ thống Windows, người dùng sẽ có sẵn hai môi trường PowerShell, bảng điều khiển PowerShell và PowerShell ISE (Môi trường tập lệnh tích hợp). Bảng điều khiển PowerShell xuất hiện giống như dòng lệnh truyền thống, nhưng với toàn bộ tính năng đầy đủ của PowerShell đằng sau nó. Tên biến, vòng lặp, tự động hoàn thành lệnh và piping có sẵn từ bảng điều khiển PowerShell.
Để sử dụng sâu hơn (như xây dựng tập lệnh), PowerShell ISE cung cấp tính năng tự động hoàn thành câu lệnh, highlight code và khả năng hoàn tất code Intellisense của Microsoft để hỗ trợ bạn tạo và kiểm tra code PowerShell. PowerShell ISE cũng cho phép bạn làm việc với nhiều tập lệnh PowerShell đồng thời sử dụng điều hướng theo tab.
Làm việc với giao diện dòng lệnh
PowerShell là một shell lệnh hiện đại bao gồm các tính năng tốt nhất của các shell phổ biến khác. Không giống như hầu hết các shell chỉ chấp nhận và trả về văn bản, PowerShell chấp nhận và trả về các đối tượng .NET. Lớp vỏ bao gồm các tính năng sau:
- Lịch sử dòng lệnh mạnh mẽ
- Hoàn thành tab và dự đoán lệnh (Xem about_PSReadLine)
- Hỗ trợ bí danh lệnh và tham số
- Đường ống cho các câu lệnh xâu chuỗi
- Hệ thống trợ giúp trong bảng điều khiển, tương tự như trang man trên hệ điều hành Unix
Ngôn ngữ kịch bản (Scripting Language)
Là ngôn ngữ kịch bản, PowerShell thường được sử dụng để tự động hóa việc quản lý hệ thống. Nó cũng được sử dụng để xây dựng, thử nghiệm và triển khai các giải pháp, thường là trong môi trường CI/CD. PowerShell được xây dựng trên .NET Common Language Runtime (CLR). Tất cả đầu vào và đầu ra đều là đối tượng .NET. Không cần phân tích văn bản đầu ra để trích xuất thông tin từ đầu ra. Ngôn ngữ tập lệnh PowerShell bao gồm các tính năng sau:
- Có thể mở rộng thông qua các hàm, lớp, tập lệnh và mô-đun
- Hệ thống định dạng mở rộng cho đầu ra dễ dàng
- Hệ thống kiểu mở rộng để tạo kiểu động
- Hỗ trợ tích hợp cho các định dạng dữ liệu phổ biến như CSV, JSON và XML
Nền tảng tự động hoá
Bản chất có thể mở rộng của PowerShell đã cho phép hệ sinh thái gồm các mô-đun PowerShell triển khai và quản lý hầu hết mọi công nghệ mà bạn làm việc cùng. Ví dụ:
Microsoft:
- Azure
- Windows
- Exchange
- SQL
Bên phát triển thứ ba:
- AWS
- VMWare
- Google Cloud
Quản lý cấu hình
Cấu hình trạng thái mong muốn (Desired State Configuration - DSC) của PowerShell là một khung quản lý trong PowerShell cho phép bạn quản lý cơ sở hạ tầng doanh nghiệp của mình bằng cấu hình dưới dạng mã lệnh. Với DSC, bạn có thể:
- Tạo cấu hình khai báo và tập lệnh tùy chỉnh để triển khai lặp lại
- Thực thi cài đặt cấu hình và báo cáo về sự thay đổi cấu hình
- Triển khai cấu hình bằng mô hình đẩy lên (push) hoặc kéo xuống (pull)
Cài đặt PowerShell trên Windows
Có nhiều cách để cài đặt PowerShell trong Windows. Mỗi phương pháp cài đặt được thiết kế để hỗ trợ các kịch bản và quy trình công việc khác nhau. Chọn phương pháp phù hợp nhất với nhu cầu của bạn.
- Winget - Cách cài đặt PowerShell trên máy khách Windows được khuyến nghị
- Gói MSI - Lựa chọn tốt nhất cho Máy chủ Windows và các kịch bản triển khai doanh nghiệp
- Gói ZIP - Cách dễ nhất để "tải phụ" hoặc cài đặt nhiều phiên bản
- Sử dụng phương pháp này cho Windows Nano Server, Windows IoT và các hệ thống dựa trên Arm
- Công cụ .NET Global - Một lựa chọn tốt cho các nhà phát triển .NET cài đặt và sử dụng các công cụ toàn cầu khác
- Gói Microsoft Store - Cách cài đặt dễ dàng cho người dùng PowerShell thông thường nhưng có những hạn chế
Cài đặt PowerShell bằng Winget
Winget, Trình quản lý gói Windows, là một công cụ dòng lệnh cho phép người dùng khám phá, cài đặt, nâng cấp, xóa và định cấu hình các ứng dụng trên máy khách Windows. Công cụ này là giao diện máy khách cho dịch vụ Trình quản lý gói Windows. Công cụ dòng lệnh Winget được tích hợp sẵn với Windows 11 và các phiên bản Windows 10 hiện đại theo mặc định dưới dạng Trình cài đặt ứng dụng.
The following commands can be used to install PowerShell using the published winget packages:
Search for the latest version of PowerShell
$ winget search Microsoft.PowerShell
$ winget install --id Microsoft.Powershell --source winget
$ winget install --id Microsoft.Powershell.Preview --source winget
Cài đặt gói MSI
Để cài đặt PowerShell trên Windows, hãy sử dụng các liên kết sau để tải xuống gói cài đặt từ GitHub.
Sau khi tải xuống, bấm đúp vào tệp trình cài đặt và làm theo lời nhắc.
Trình cài đặt tạo một lối tắt trong Menu Bắt đầu của Windows.
- Theo mặc định gói được cài đặt trong đường dẫn: $env:ProgramFiles\PowerShell\<version>
- Bạn có thể khởi chạy PowerShell thông qua Start Menu hoặc $env:ProgramFiles\PowerShell\<version>\pwsh.exe
Kiểm tra cài đặt PowerShell
Sử dụng câu lệnh sau để kiểm tra cài đặt powershell:
$ pwsh --version
PowerShell 7.4.5