Lệnh Get-Member PowerShell là một công cụ không thể thiếu đối với bất kỳ ai làm việc với PowerShell, từ người mới bắt đầu cho đến quản trị viên hệ thống chuyên nghiệp. Lệnh này cho phép bạn khám phá cấu trúc của bất kỳ đối tượng nào trong PowerShell, bao gồm các thuộc tính (properties), phương thức (methods), sự kiện (events) và các thành viên khác. Thay vì phải đoán mò hoặc tra cứu tài liệu dài dòng, bạn chỉ cần pipe một đối tượng qua Get-Member là có ngay danh sách đầy đủ mọi thông tin về đối tượng đó. Trong bài viết này, chúng ta sẽ đi sâu vào cách sử dụng lệnh này một cách hiệu quả, từ những thao tác cơ bản nhất cho đến các kỹ thuật nâng cao giúp bạn làm chủ PowerShell.
Lệnh Get-Member PowerShell là gì? Bản chất hoạt động

Get-Member là một lệnh có sẵn trong PowerShell (cmdlet) được thiết kế để hiển thị các thành viên (members) của một đối tượng.NET. Bất kỳ thứ gì trong PowerShell đều là đối tượng: file, thư mục, service, process, registry key, string, array… Mỗi đối tượng đều có một kiểu dữ liệu (type) cụ thể và kế thừa các thuộc tính, phương thức từ lớp cha của nó. Get-Member cho phép bạn xem tất cả các thành viên mà đối tượng đó sở hữu, giúp bạn hiểu rõ dữ liệu bạn đang xử lý và biết được những gì Không, tên thành viên trong PowerShell không phân biệt hoa/thường, nhưng bạn nên viết đúng chính tả để dễ đọc.
$members = Get-Process | Get-Member.
Dùng Get-Member -MemberType Method. Ví dụ: Get-Process | Get-Member -MemberType Method sẽ hiển thị tất cả phương thức như Close(), Kill(), Refresh(), WaitForInputIdle().
Tại sao tôi chạy Get-Member nhưng không thấy kết quả?
Lý do thường gặp: (1) Bạn đang pipe một collection rỗng, ví dụ Get-Process -Name 'nonexistent' | Get-Member sẽ không có output. (2) Đối tượng là $null. (3) Bạn dùng sai tham số -Name làm filter không khớp. Hãy kiểm tra đối tượng bằng $null -ne (Get-Process -Name 'something') trước.
Có thể xem các thành viên tĩnh (static) của một lớp không?
Có. Bạn dùng [tên_lớp] | Get-Member -Static -Force. Ví dụ: [System.DateTime] | Get-Member -Static -Force sẽ hiển thị các thuộc tính tĩnh như Now, UtcNow, Today và các phương thức tĩnh như DaysInMonth(), IsLeapYear().
Tôi muốn xuất danh sách các thành viên ra file thì làm thế nào?
Get-Member hiển thị tất cả các thành viên (cả thuộc tính và phương thức) và có sẵn các tham số lọc mạnh mẽ. Trong khi .PSObject.Properties chỉ hiển thị các thuộc tính mở rộng của PowerShell (không hiển thị thuộc tính gốc.NET). Nếu bạn chỉ cần danh sách các thuộc tính, Get-Member -MemberType Property vẫn đầy đủ hơn.
Kết luận

Lệnh Get-Member PowerShell là một trong những công cụ debug và khám phá mạnh mẽ nhất trong hành trang của người dùng PowerShell. Nó cho phép bạn hiểu rõ cấu trúc của bất kỳ đối tượng nào, từ đó khai thác tối đa sức mạnh của ngôn ngữ. Đừng ngại thử nghiệm lệnh này với mọi loại đối tượng bạn gặp: dịch vụ, file, tiến trình, biến, kết quả từ API… Mỗi lần chạy Get-Member là một lần bạn học được điều mới về cách PowerShell hoạt động bên trong. Hãy biến nó thành thói quen ngay khi bạn muốn biết “thằng này có cái gì” để script của bạn trở nên thông minh và chính xác hơn.







