Get-Member

Pokazuje właściwości i metody obiektu przekazanego potokiem.

Get-Member to twój prześwietlacz obiektów w PowerShell. Bierze cokolwiek, co przekażesz mu potokiem, i pokazuje listę właściwości oraz metod, jakie ten obiekt udostępnia — czyli co możesz z niego odczytać i co możesz na nim zrobić. W PowerShell wszystko jest obiektem (a nie zwykłym tekstem jak w Bashu), więc gdy nie wiesz, czy istnieje pole .Length, .Name albo metoda .Stop(), zamiast zgadywać po prostu pytasz Get-Member. To pierwsze narzędzie, po które sięgasz przy nauce nowego polecenia.

Składnia i najważniejsze opcje

Podstawowa składnia: | Get-Member [-MemberType ]

  • -MemberType — filtruje wynik do konkretnego typu, np. Property, Method, NoteProperty, ScriptProperty, Event albo zbiorcze Properties / Methods.
  • -Name — pokazuje tylko składowe o podanej nazwie (przyjmuje też wildcardy, np. Name*).
  • -Static — pokazuje składowe statyczne klasy, a nie instancji obiektu. Łączenie go z -View lub -Force nie ma sensu, bo te są wtedy ignorowane.
  • -Force — dorzuca składowe normalnie ukryte, m.in. PSBase i wewnętrzne właściwości .NET.
  • -View — wybiera zakres: Base, Adapted, Extended lub All. Domyślnie to Adapted, Extended.
  • -InputObject — przekazuje obiekt parametrem zamiast potokiem (uwaga na pułapkę niżej).

Przykłady użycia

  • Get-Process | Get-Member — wypisuje wszystkie właściwości i metody obiektu procesu, np. CPU, Id, Kill().
  • Get-Service | Get-Member -MemberType Method — pokazuje tylko metody, więc szybko zobaczysz Start(), Stop() i co jeszcze możesz zrobić z usługą.
  • Get-Date | Get-Member -MemberType Method -Name *Add* — zawęża do metod z „Add” w nazwie, np. AddDays, AddHours.
  • [System.IO.File] | Get-Member -Static — wylistuje statyczne metody klasy, np. ReadAllText, Exists, bez tworzenia instancji.
  • Get-ChildItem | Get-Member -Force — odsłania ukryte składowe katalogu, w tym PSBase z surowymi właściwościami .NET.

Częste błędy i pułapki

Najczęstsza wpadka: "jakis tekst" | Get-Member zwraca składowe typu String, a nie tego, co miałeś na myśli. Get-Member analizuje typ obiektu, który dostaje — nie jego „znaczenie”.

Druga pułapka dotyczy kolekcji. Gdy zrobisz $tablica | Get-Member, potok rozpakowuje tablicę i pokazuje typ jej elementów. Jeśli chcesz zbadać samą tablicę, użyj Get-Member -InputObject $tablica — wtedy dostaniesz składowe obiektu Object[], w tym Count i Length.

I jeszcze drobiazg: -Static kasuje działanie -Force oraz -View, więc nie kombinuj ich razem, licząc na sumę efektów.

Powiązane komendy: Get-Command (znajdowanie poleceń), Get-Help (dokumentacja i parametry), Get-TypeData oraz Select-Object (wybór konkretnych właściwości po tym, jak Get-Member podpowie ci ich nazwy).