PowerShell là giải pháp tự động hóa tác vụ đa nền tảng được tạo thành từ trình bao dòng lệnh, ngôn ngữ kịch bản và khung quản lý cấu hình. PowerShell chạy trên Windows, Linux và macOS. Cụ thể thì đặc điểm và tác dụng của PowerShell là gì? Tất cả sẽ được BKHOST giải thích trong bài viết dưới đây.
PowerShell là gì?
PowerShell hay đầy đủ là Windows PowerShell là một tiện ích dòng lệnh và ngôn ngữ kịch bản,là một công cụ dựa trên giao diện dòng lệnh (CLI) cho phép các nhà phát triển, quản trị viên tự động hóa các tác vụ và cấu hình bằng cách sử dụng mã.
Đây là một công cụ được phát triển dựa trên Framework.NET dành cho các quản trị viên công nghệ thông tin nhằm quản lý các dịch vụ. PowerShell được triển khai dựa trên dịch vụ độc quyền của Windows. Sau đó được Windows cung cấp mã nguồn mở và hoạt động trên Linux/macOS.
Hoạt động của PowerShell
Tương tự như Perl, ngôn ngữ PowerShell hỗ trợ Microsoft tự động hóa một số quy trình như xử lý hàng loạt hay thiết lập công cụ quản lý hệ thống. Ngoài ra, nó còn cung cấp một số phương pháp tự động hoá như:
- Các lệnh ghép ngắn là các lớp .NET rất nhỏ hiển thị dưới dạng lệnh hệ thống.
- Các tập lệnh là sự tích hợp của lệnh ghép ngắn và logic liên quan.
- Các tệp thực thi là các công cụ độc lập.
- Quá trình khởi tạo các lớp .NET tiêu chuẩn.
PowerShell giúp quản trị viên xử lý các công việc như trích xuất thông tin trên hệ điều hành bao gồm phiên bản và các mức gói dịch vụ. Các chương trình được tạo ra bởi nhà cung cấp PowerShell sử dụng dòng lệnh để truy cập dữ liệu trong kho chứa gồm ổ đĩa hệ thống tệp và sổ đăng ký Windows. Thay vì sử dụng Command Prompt, PowerShell được đặt làm CLI mặc định cho Windows 10 kể từ phiên bản 14791 và cung cấp các phương thức sử dụng cho người dùng.
Xem thêm: Các câu lệnh Powershell đơn giản cho hệ điều hành Windows
Các tính năng chính của PowerShell
- Khả năng khám phá các tính năng của PowerShell dựa trên các lệnh ghép ngắn như Get-Command nhằm tạo danh sách gồm các lệnh và chức năng của một máy tính. Đồng thời khám phá các tham số giúp tối ưu hóa phạm vi tìm kiếm.
- Khả năng hỗ trợ giúp tìm hiểu các quy tắc PowerShell và một số thành phần thông qua lệnh ghép ngắn
Get-Help
. Tham số -online cung cấp quyền truy cập website vào các bài viết hoặc chủ đề cụ thể. - Tính năng của các lệnh từ xa và công cụ quản lý Windows/WS cho phép quản trị viên thực hiện các hoạt động từ xa trên các máy tính khác nhau.
Ví dụ: Các tập lệnh PowerShell có thể chạy trên các máy tính từ xa bằng cách sử dụng giao thức WS-Management. - Pipelining là phương thức liên kết dựa trên | – một toán tử pipe cho phép đầu ra của lệnh này là đầu vào của lệnh tiếp theo trong một chuỗi đường dẫn. PowerShell có đường dẫn hướng đối tượng sử dụng các lệnh ghép ngắn.
Cấu hình trạng thái mong muốn
Trong phiên bản PowerShell 4.0 được bổ sung thêm một nền tảng quản lý cấu hình DSC cho phép quản trị viên đặt cấu hình cụ thể cho máy chủ. Trong đó DSC thực hiện hai chế độ hoạt động đó là chế độ đẩy và chế độ kéo:
- Chế độ đẩy là hình thức giao tiếp một chiều khi một máy chủ tiến hành gửi thông báo đến các nút và quản trị viên sẽ gửi thông báo từ một máy trạm. Ưu điểm của chế độ đẩy là ít tốn kém hơn khi chỉ sử dụng một thiết bị và có điểm hạn chế đó là các thông báo sẽ mất nếu thiết bị không có kết nối mạng.
- Các chuyên gia công nghệ thông tin sử dụng tệp MOF để thiết lập một máy chủ kéo bao gồm các chi tiết cấu hình của từng nút. Với mỗi nút có nhiệm vụ liên hệ máy chủ kéo để kiểm tra cấu hình mới. Quản trị viên có thể quản lý các thiết bị ở mọi trạng thái kết nối mạng. Khi có một thiết bị có kết nối mạng thì máy chủ kéo cũng được kết nối theo để kiểm tra cấu hình mới.
Tài nguyên DSC
DSC là một trong những thành phần của tập lệnh cấu hình cho phép quản trị viên kiểm tra các tài nguyên có sẵn trên máy thông qua lệnh Get-DscResource
.
Các tài nguyên này sử dụng tập lệnh để định cấu hình các thành phần như khoá đăng ký, dịch vụ Windows, thiết lập và quản lý người dùng cục bộ.
Ví dụ: Tài nguyên tệp quản lý tệp và thư mục hay tài nguyên đăng ký quản lý khoá đăng ký của một nút.
PowerShell Integrated Scripting Environment
PowerShell Integrated Scripting Environment (ISE) trong phiên bản PowerShell 2.0 là một ứng dụng máy chủ có nhiều chức năng như chỉnh sửa nhiều dòng, hỗ trợ theo môi trường, viết lệnh, kiểm tra và gỡ lỗi tập lệnh trong GUI của Windows.
Một số tính năng của PowerShell:
- Tác vụ phổ biến của PowerShell đó là đánh dấu và sao chép một phần lệnh bằng chuột hoặc tổ hợp phím Shift + mũi tên.
- PowerShell ISE cho phép người dùng dán nội dung vào bất kỳ đâu trong cửa sổ trình soạn thảo.
- Khả năng giữ các phiên bản khác nhau của lệnh trong trình soạn thảo hay chạy các lệnh cần thiết.
- Sử dụng phím F5 để chạy lệnh trực tiếp từ trình soạn thảo. Nếu muốn thực hiện một dòng cụ thể hãy giữ dòng đó và nhấn F8.
- Hỗ trợ phân biệt môi trường hiển thị lệnh ghép ngắn phù hợp với quá trình bắt đầu nhập lệnh.
- Tiện ích bổ sung lệnh hiển thị dưới dạng danh sách cho phép tùy chọn các lệnh ghép ngắn.
- Cung cấp các tab cho phép thực hiện nhiều tác vụ quản trị và chuyển nhanh từ CLI sang chế độ kịch bản.
Mô-đun PowerShell
Mô đun PowerShell hỗ trợ tái sử dụng một tập lệnh với mục đích tự động hoá tác vụ bất kỳ. Hiểu đơn giản đây là một tập hợp các chức năng của PowerShell có khả năng quản lý mọi khía cạnh và hỗ trợ quản trị viên thực hiện các công việc như tham chiếu, tải, duy trì và chia sẻ mã. Mô-đun PowerShell được tạo bằng cách lưu tập lệnh dưới dạng tệp PSM1.
Mô-đun PowerShell có bốn thành phần chính:
- Tệp mô đun PSM
- Tệp hỗ trợ và cần thiết của mô đun.
- Tệp kê khai mô tả mô đun.
- Thư mục lưu trữ nội dung.
Mô-đun PowerShell có 4 loại:
- Mô đun Script là một tệp PSM1 cho phép quản trị viên thực hiện các chức năng khác nhau như nhập, xuất và quản lý.
- Mô đun Binary là một .NET chứa các mã biên dịch được sử dụng để tạo lệnh ghép ngắn.
- Mô đun Manifest là các tệp kê khai PSM1 và PSD1 được liên kết với nhau.
- Mô đun Dynamic được tạo theo tập lệnh yêu cầu nhưng không được lưu trữ liên tục.
Các chức năng của PowerShell
- Lệnh ghép ngắn PowerShell có các mã lệnh được viết bằng ngôn ngữ .NET đã biên dịch còn các hàm viết bằng PowerShell thì không được biên dịch.
- Các lệnh ghép ngắn PowerShell được đóng gói và triển khai dễ dàng hơn so với các thư viện đóng gói chức năng. Nguyên nhân là do lệnh ghép ngắn và các chức năng nâng cao hỗ trợ ràng buộc tham số mạnh mẽ.
- Bằng cách mô tả một tham số cho shell, quản trị viên có thể sử dụng bất kỳ loại tham số PowerShell nào, chẳng hạn như tham số được đặt tên, tham số bắt buộc và tham số PowerShell vị trí.
Ví dụ hàm PowerShell:
{{EJS0}}
Cấu trúc ngôn ngữ
PowerShell là một ngôn ngữ kịch bản cung cấp các cấu trúc ngôn ngữ kiểm soát tập lệnh và quyết định cách thức hoạt động. Trong đó, cấu trúc ngôn ngữ gồm điều kiện, switch, vòng lặp và biến.
Điều kiện
Cấu trúc ngôn ngữ “if
” được sử dụng để đánh giá một biểu thức điều kiện. Chẳng hạn như khi biểu thức điều kiện là True ngay lập tức sẽ có một khối tập lệnh được thực thi:
{{EJS1}}
Switch
Câu lệnh chuyển đổi được sử dụng khi có một danh sách dài các câu lệnh có điều kiện để kiểm tra. Switch thường được sử dụng thay cho nhiều cấu trúc if
/ then
/ else
.
{{EJS2}}
Vòng lặp
- Câu lệnh while lặp lại mã là các biểu thức điều kiện đúng:
{{EJS3}}
- Vòng lặp Do được thực hiện ở cuối cùng:
{{EJS4}}
- Nếu sử dụng vòng lặp foreach, PowerShell sẽ lặp lại mã cho từng mục được đề cập trong tập lệnh.
{{EJS5}}
- Sử dụng vòng lặp for để thực thi các câu lệnh nhiều lần đến khi đáp ứng được một điều kiện
{{EJS6}}
Biến
- Các biến PowerShell có khả năng ánh xạ các lớp cơ bản trong .NET framework cho phép lưu trữ dữ liệu theo nhiều cách khác nhau.
- Tên biến trong PowerShell gồm ký hiệu $ và một chuỗi là các số, chữ cái, ký hiệu và dấu cách.
Ví dụ:$ var = "HELLO"
Mảng
- Mảng PowerShell cho phép lưu trữ nhiều mục trong một biến hoặc trường. Chẳng hạn nếu muốn gán nhiều giá trị cho một biến bất kỳ hãy sử dụng lệnh:
$a=1,2,3
- Mỗi mục trong một mảng sẽ được xử lý riêng biệt bằng cách cung cấp các chỉ số bắt đầu từ 0. PowerShell tự động hoá xử lý chèn mảng mà không ảnh hưởng đến các phần tử nào khác.
Hash tables
Hash tables – bảng băm là cấu trúc dữ liệu tương tự như mảng. Tuy nhiên, các mục và giá trị của Hash tables đều được lưu trữ bằng một cặp khóa trị hoặc hóa trị riêng biệt. Ngoài ra, nó còn cho phép lưu trữ nhiều giá trị trong một phần tử.
Ví dụ: So sánh mảng và hash tables:
{{EJS7}}
Hỗ trợ và đánh giá
- PowerShell cho phép bổ sung thêm các chủ đề hỗ trợ cho mô đun, tập lệnh và các lệnh riêng lẻ bằng cách sử dụng lệnh Get-Help.
- PowerShell sẽ tiến hành nhập chủ đề hỗ trợ cho mô đun sau khi được nhập vào phiên. Nếu không có chủ đề trợ giúp thì lệnh Get-Help sẽ tự động tạo cho mô đun. Có ba hỗ trợ PowerShell chính là hỗ trợ nhận xét, hỗ trợ ngoài và hỗ trợ cập nhật.
- Trợ giúp nhận xét được đọc bằng các tập lệnh Get-Help.
- Hỗ trợ ngoài cho phép tác giả xác định nội dung hỗ trợ trong tệp XML được viết bằng XAML.
- Hỗ trợ cập nhật dựa vào hỗ trợ ngoài cho phép người dùng tài xuống các nội dung hỗ trợ mới nhất bằng lệnh Update-Help.
Các chương trình thực thi
PowerShell cùng là một cmd.exe
thay thế giúp chạy một chương trình thực thi theo nhiều cách bằng lệnh Start-Process/Invoke-Expression
và ký hiệu.
Ví dụ: Sử dụng ping.exe
để chạy chương trình thực thi bằng PowerShell:
{{EJS8}}
Tổng kết về PowerShell
Trên đây là toàn bộ thông tin chi tiết về PowerShell bao gồm cách thức hoạt động, các tính năng nổi bật nhất dành cho Microsoft mà chúng tôi muốn gửi đến bạn. Hy vọng đó là những thông tin hữu ích mà bạn cũng đang tìm đọc.
Nếu bạn có thắc mắc về PowerShell hoặc muốn tìm thêm những yếu tố khác liên quan đến việc quản trị mạng, hãy để lại ở bên bình luận bên dưới, BKHOST sẽ trả lời bạn trong thời gian sớm nhất.
P/s: Bạn cũng có thể truy cập vào Blog của BKHOST để đọc thêm các bài viết chia sẻ kiến thức về lập trình, quản trị mạng, website, domain, hosting, vps, server, email,… Chúc bạn thành công.