Get-Command

Wyszukuje cmdlety, funkcje i aliasy dostępne w sesji.

Get-Command to twoja wyszukiwarka poleceń w PowerShellu. Zwraca wszystkie komendy, jakie sesja jest w stanie uruchomić: cmdlety, funkcje, aliasy, skrypty oraz pliki wykonywalne z PATH. Jeśli nie pamiętasz, czy coś nazywa się Get-Service czy Get-Services, albo chcesz sprawdzić, jakie polecenia daje świeżo zaimportowany moduł, to jest narzędzie, od którego zaczynasz. Razem z Get-Help tworzy klasyczny duet do odkrywania, co w ogóle możesz w danej sesji zrobić.

Składnia i najważniejsze opcje

Podstawowa składnia: Get-Command [[-Name] ] [-CommandType ] [-Module ]

  • -Name — nazwa polecenia, którego szukasz. Działa z symbolami wieloznacznymi, np. Get-* albo *service*.
  • -CommandType — filtruje po typie: Cmdlet, Function, Alias, Application, Script lub All.
  • -Module — pokazuje tylko polecenia z danego modułu, np. Microsoft.PowerShell.Management.
  • -Verb — filtruje po czasowniku z pary verb-noun, np. Get, Set, Remove.
  • -Noun — filtruje po rzeczowniku, np. Process, Service.
  • -Syntax — zamiast tabeli zwraca samą składnię polecenia (szybsza alternatywa dla pełnego helpa).
  • -All — pokazuje wszystkie wersje polecenia o tej samej nazwie, łącznie z przesłoniętymi aliasami.
  • -ParameterName — znajduje polecenia, które mają konkretny parametr, np. -ComputerName.

Przykłady użycia

  • Get-Command Get-Process — pokazuje, czym jest Get-Process, z jakiego modułu pochodzi i jakiej jest wersji.
  • Get-Command -Verb Get -Noun Service — wyszukuje polecenia łączące czasownik Get z rzeczownikiem Service.
  • Get-Command -Module Microsoft.PowerShell.Management — listuje wszystkie polecenia dostarczane przez ten moduł.
  • Get-Command *item* -CommandType Cmdlet — znajduje cmdlety zawierające w nazwie item (np. Get-Item, Copy-Item).
  • Get-Command notepad — sprawdza, czy notepad.exe jest dostępny w PATH i pokazuje pełną ścieżkę do pliku.

Częste błędy i pułapki

Najczęstsza pomyłka to oczekiwanie, że Get-Command nazwa zwróci coś, gdy moduł nie jest jeszcze załadowany. W PowerShellu 3.0+ działa autoloading modułów, więc zwykle zadziała, ale w starszych wersjach albo dla modułów spoza standardowych ścieżek musisz najpierw zrobić Import-Module. Pamiętaj też, że -Name bez symboli wieloznacznych szuka dokładnego dopasowania — Get-Command process nie znajdzie Get-Process, ale Get-Command *process* już tak.

Druga pułapka: aliasy. Get-Command ls w PowerShellu na Windows zwróci alias do Get-ChildItem, ale na Linuksie i macOS tego aliasu nie ma (kolidowałby z prawdziwym ls). Jeśli chcesz odkryć, co kryje się pod aliasem, połącz to z Get-Command alias | Select-Object -ExpandProperty ResolvedCommand. I nie myl Get-Command z systemowym where z cmd.exe — w PowerShellu where to alias Where-Object, a do szukania plików wykonywalnych użyj właśnie Get-Command.

Powiązane komendy: Get-Help, Get-Member, Get-Module, Import-Module, Get-Alias.