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]
-Name— nazwa polecenia, którego szukasz. Działa z symbolami wieloznacznymi, np.Get-*albo*service*.-CommandType— filtruje po typie:Cmdlet,Function,Alias,Application,ScriptlubAll.-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 jestGet-Process, z jakiego modułu pochodzi i jakiej jest wersji.Get-Command -Verb Get -Noun Service— wyszukuje polecenia łączące czasownikGetz rzeczownikiemService.Get-Command -Module Microsoft.PowerShell.Management— listuje wszystkie polecenia dostarczane przez ten moduł.Get-Command *item* -CommandType Cmdlet— znajduje cmdlety zawierające w nazwieitem(np.Get-Item,Copy-Item).Get-Command notepad— sprawdza, czynotepad.exejest dostępny wPATHi 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.