Xin chào ! Nếu đây là lần đầu tiên bạn đến với diễn đàn, xin vui lòng danh ra một phút bấm vào đây để đăng kí và tham gia thảo luận cùng VnPro.
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • PowerShell Cmdlet và Module – nền tảng cần nắm trước khi quản trị Azure bằng PowerShell

    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
    Attached Files
    Đặng Quang Minh, CCIE#11897 (Enterprise Infrastructure, Wireless, Automation, AI), CCSI#31417

    Email : dangquangminh@vnpro.org
    https://www.facebook.com/groups/vietprofessional/
Working...
X