PowerShell Cmdlet và Module – nền tảng cần nắm trước khi quản trị Azure bằng PowerShell
Nếu đã quen quản trị Windows Server bằng giao diện GUI, khi chuyển sang PowerShell chúng ta sẽ gặp hàng loạt câu lệnh như:
Get-Process
Start-Service
Get-ChildItem
Get-AzVM
Những câu lệnh này được gọi là Cmdlet – đọc là “command-let”.
Hiểu Cmdlet và Module là bước nền tảng trước khi đi sâu vào Azure PowerShell và Automation. Cmdlet là gì?
Cmdlet là một lệnh PowerShell được thiết kế để thực hiện một chức năng cụ thể.
Microsoft khuyến khích mỗi Cmdlet nên đơn giản và tập trung vào một nhiệm vụ.
Ví dụ:
Get-Process
Dùng để lấy thông tin các process.
Start-Service
Khởi động một service.
Get-ChildItem
Liệt kê các item bên trong một vị trí, chẳng hạn thư mục.
Điểm đặc trưng của PowerShell là Cmdlet thường không được đặt tên tùy ý mà tuân theo cấu trúc:
Verb-Noun
hay:
Động từ – Danh từ
Ví dụ:
Get-Process
Trong đó:
Get = hành động
Process = đối tượng cần thao tác.
Nhờ quy tắc này, khi đã hiểu PowerShell, chúng ta có thể phần nào đoán được chức năng của một Cmdlet chỉ bằng cách nhìn vào tên. Các Verb thường gặp
Một số Verb rất phổ biến:
Get → lấy hoặc đọc thông tin.
Set → thay đổi hoặc cập nhật.
New → tạo mới.
Remove → xóa.
Start → khởi động.
Stop → dừng.
Format → định dạng dữ liệu hiển thị.
Out → đưa output đến một destination.
Muốn xem danh sách các Verb chuẩn được PowerShell hỗ trợ, sử dụng:
Get-Verb
Việc sử dụng các Verb chuẩn giúp tên Cmdlet nhất quán và dễ học hơn. Không nhớ Cmdlet? Hãy dùng Get-Help
Không ai làm PowerShell thực tế mà nhớ toàn bộ Cmdlet và parameter.
Một trong những lệnh quan trọng nhất cần nhớ lại chính là:
Get-Help
Ví dụ:
Get-Help Get-ChildItem
Muốn xem chi tiết hơn:
Get-Help Get-ChildItem -Detailed
PowerShell còn hỗ trợ nhiều tùy chọn giúp Administrator khám phá cách sử dụng lệnh.
Vì vậy, kỹ năng PowerShell quan trọng không chỉ là nhớ lệnh, mà còn là biết cách tự tìm lệnh và đọc Help. Module là gì?
Nếu Cmdlet là những “công cụ” thì có thể hình dung Module là hộp chứa các công cụ có liên quan đến nhau.
PowerShell Module là một package chứa các thành phần PowerShell như Cmdlet, Function, Variable, Provider hoặc các tài nguyên liên quan.
Module có thể được triển khai dưới nhiều dạng, chẳng hạn binary module, script module hoặc manifest-based module; vì vậy không nên hiểu Module chỉ đơn giản luôn là một file DLL.
PowerShell cơ bản đã có nhiều Module phục vụ quản trị hệ điều hành. Khi cần quản trị những công nghệ khác, chúng ta cài thêm Module tương ứng.
Ví dụ rất quan trọng đối với Azure Administrator là:
Az PowerShell Module
Sau khi cài Az Module, chúng ta có hàng loạt Cmdlet để quản trị Azure.
Ví dụ:
Get-AzVM
New-AzVM
Start-AzVM
Stop-AzVM
Restart-AzVM
Đây chính là cách PowerShell mở rộng từ công cụ quản trị Windows thành công cụ quản trị Cloud. Get-Module dùng để làm gì?
Muốn xem các Module đang được load trong PowerShell session:
Get-Module
Output có thể hiển thị các thông tin như:
ModuleType
Version
Name
Ví dụ:
Microsoft.PowerShell.Management
Microsoft.PowerShell.Utility
PackageManagement
PowerShellGet
PSReadLine
Một điểm dễ nhầm:
Get-Module
mặc định hiển thị những Module đang được load trong session.
Nếu muốn xem các Module có sẵn trên máy, có thể dùng:
Get-Module -ListAvailable
Sự khác biệt nhỏ này rất hữu ích khi troubleshooting PowerShell. Cmdlet và Module liên hệ với nhau như thế nào?
Có thể hình dung:
PowerShell
→ Module
→ Cmdlet
Ví dụ trong Azure:
PowerShell
→ Az Module
→ Get-AzVM
→ New-AzVM
→ Start-AzVM
→ Stop-AzVM
Khi cần thêm khả năng quản trị, chúng ta bổ sung Module tương ứng thay vì phải thay đổi toàn bộ PowerShell. Tại sao kiến thức này quan trọng với Azure Administrator?
Giả sử bạn muốn quản trị Azure VM.
Thay vì vào Azure Portal và thực hiện:
Virtual Machines → VM01 → Restart
chúng ta có thể dùng PowerShell:
Restart-AzVM -ResourceGroupName "RG01" -Name "VM01"
Với một VM, sự khác biệt chưa đáng kể.
Nhưng nếu cần xử lý 100 VM, PowerShell cho phép kết hợp Cmdlet, Pipeline, Loop và Script để tự động hóa công việc.
Đó chính là sự chuyển đổi:
GUI Administration → Command Line → Scripting → Automation Một tư duy rất quan trọng khi học PowerShell
Đừng cố học thuộc hàng trăm Cmdlet.
Hãy nắm chắc:
Verb-Noun
Get-Help
Get-Command
Get-Module
Pipeline
và cách khám phá Parameter của Cmdlet.
Khi gặp một công nghệ mới như Azure, Microsoft 365 hay Windows Server, bạn chỉ cần xác định Module nào cung cấp các Cmdlet cần thiết, sau đó sử dụng hệ thống Help để tìm hiểu chúng.
PowerShell vì thế không đơn thuần là một tập hợp câu lệnh.
Nó là một nền tảng quản trị và tự động hóa có cấu trúc, và Cmdlet + Module chính là hai trong những viên gạch đầu tiên mà một System Administrator hay Azure Administrator cần nắm chắc.
#PowerShell #AzurePowerShell #Cmdlet #PowerShellModule #AZ104 #AzureAdministrator #WindowsServer automation #MicrosoftAzure #SysAdmin MCSA vnpro #MCSAAzureAWS
Nếu đã quen quản trị Windows Server bằng giao diện GUI, khi chuyển sang PowerShell chúng ta sẽ gặp hàng loạt câu lệnh như:
Get-Process
Start-Service
Get-ChildItem
Get-AzVM
Những câu lệnh này được gọi là Cmdlet – đọc là “command-let”.
Hiểu Cmdlet và Module là bước nền tảng trước khi đi sâu vào Azure PowerShell và Automation. Cmdlet là gì?
Cmdlet là một lệnh PowerShell được thiết kế để thực hiện một chức năng cụ thể.
Microsoft khuyến khích mỗi Cmdlet nên đơn giản và tập trung vào một nhiệm vụ.
Ví dụ:
Get-Process
Dùng để lấy thông tin các process.
Start-Service
Khởi động một service.
Get-ChildItem
Liệt kê các item bên trong một vị trí, chẳng hạn thư mục.
Điểm đặc trưng của PowerShell là Cmdlet thường không được đặt tên tùy ý mà tuân theo cấu trúc:
Verb-Noun
hay:
Động từ – Danh từ
Ví dụ:
Get-Process
Trong đó:
Get = hành động
Process = đối tượng cần thao tác.
Nhờ quy tắc này, khi đã hiểu PowerShell, chúng ta có thể phần nào đoán được chức năng của một Cmdlet chỉ bằng cách nhìn vào tên. Các Verb thường gặp
Một số Verb rất phổ biến:
Get → lấy hoặc đọc thông tin.
Set → thay đổi hoặc cập nhật.
New → tạo mới.
Remove → xóa.
Start → khởi động.
Stop → dừng.
Format → định dạng dữ liệu hiển thị.
Out → đưa output đến một destination.
Muốn xem danh sách các Verb chuẩn được PowerShell hỗ trợ, sử dụng:
Get-Verb
Việc sử dụng các Verb chuẩn giúp tên Cmdlet nhất quán và dễ học hơn. Không nhớ Cmdlet? Hãy dùng Get-Help
Không ai làm PowerShell thực tế mà nhớ toàn bộ Cmdlet và parameter.
Một trong những lệnh quan trọng nhất cần nhớ lại chính là:
Get-Help
Ví dụ:
Get-Help Get-ChildItem
Muốn xem chi tiết hơn:
Get-Help Get-ChildItem -Detailed
PowerShell còn hỗ trợ nhiều tùy chọn giúp Administrator khám phá cách sử dụng lệnh.
Vì vậy, kỹ năng PowerShell quan trọng không chỉ là nhớ lệnh, mà còn là biết cách tự tìm lệnh và đọc Help. Module là gì?
Nếu Cmdlet là những “công cụ” thì có thể hình dung Module là hộp chứa các công cụ có liên quan đến nhau.
PowerShell Module là một package chứa các thành phần PowerShell như Cmdlet, Function, Variable, Provider hoặc các tài nguyên liên quan.
Module có thể được triển khai dưới nhiều dạng, chẳng hạn binary module, script module hoặc manifest-based module; vì vậy không nên hiểu Module chỉ đơn giản luôn là một file DLL.
PowerShell cơ bản đã có nhiều Module phục vụ quản trị hệ điều hành. Khi cần quản trị những công nghệ khác, chúng ta cài thêm Module tương ứng.
Ví dụ rất quan trọng đối với Azure Administrator là:
Az PowerShell Module
Sau khi cài Az Module, chúng ta có hàng loạt Cmdlet để quản trị Azure.
Ví dụ:
Get-AzVM
New-AzVM
Start-AzVM
Stop-AzVM
Restart-AzVM
Đây chính là cách PowerShell mở rộng từ công cụ quản trị Windows thành công cụ quản trị Cloud. Get-Module dùng để làm gì?
Muốn xem các Module đang được load trong PowerShell session:
Get-Module
Output có thể hiển thị các thông tin như:
ModuleType
Version
Name
Ví dụ:
Microsoft.PowerShell.Management
Microsoft.PowerShell.Utility
PackageManagement
PowerShellGet
PSReadLine
Một điểm dễ nhầm:
Get-Module
mặc định hiển thị những Module đang được load trong session.
Nếu muốn xem các Module có sẵn trên máy, có thể dùng:
Get-Module -ListAvailable
Sự khác biệt nhỏ này rất hữu ích khi troubleshooting PowerShell. Cmdlet và Module liên hệ với nhau như thế nào?
Có thể hình dung:
PowerShell
→ Module
→ Cmdlet
Ví dụ trong Azure:
PowerShell
→ Az Module
→ Get-AzVM
→ New-AzVM
→ Start-AzVM
→ Stop-AzVM
Khi cần thêm khả năng quản trị, chúng ta bổ sung Module tương ứng thay vì phải thay đổi toàn bộ PowerShell. Tại sao kiến thức này quan trọng với Azure Administrator?
Giả sử bạn muốn quản trị Azure VM.
Thay vì vào Azure Portal và thực hiện:
Virtual Machines → VM01 → Restart
chúng ta có thể dùng PowerShell:
Restart-AzVM -ResourceGroupName "RG01" -Name "VM01"
Với một VM, sự khác biệt chưa đáng kể.
Nhưng nếu cần xử lý 100 VM, PowerShell cho phép kết hợp Cmdlet, Pipeline, Loop và Script để tự động hóa công việc.
Đó chính là sự chuyển đổi:
GUI Administration → Command Line → Scripting → Automation Một tư duy rất quan trọng khi học PowerShell
Đừng cố học thuộc hàng trăm Cmdlet.
Hãy nắm chắc:
Verb-Noun
Get-Help
Get-Command
Get-Module
Pipeline
và cách khám phá Parameter của Cmdlet.
Khi gặp một công nghệ mới như Azure, Microsoft 365 hay Windows Server, bạn chỉ cần xác định Module nào cung cấp các Cmdlet cần thiết, sau đó sử dụng hệ thống Help để tìm hiểu chúng.
PowerShell vì thế không đơn thuần là một tập hợp câu lệnh.
Nó là một nền tảng quản trị và tự động hóa có cấu trúc, và Cmdlet + Module chính là hai trong những viên gạch đầu tiên mà một System Administrator hay Azure Administrator cần nắm chắc.
#PowerShell #AzurePowerShell #Cmdlet #PowerShellModule #AZ104 #AzureAdministrator #WindowsServer automation #MicrosoftAzure #SysAdmin MCSA vnpro #MCSAAzureAWS