Uzyskuje wszystkie polecenia.
Syntaktyka
Get-Command >] >] >] >] <Object>] >] >]
Get-Command <String>] >] >] <Object>] >] >]
Opis
Ccmdlet Get-Command
pobiera wszystkie polecenia, które są zainstalowane na komputerze, w tym cmdletów, aliasów, funkcji, filtrów, skryptów i aplikacji. Get-Command
Pobiera polecenia z modułów PowerShell oraz polecenia, które zostały zaimportowane z innych sesji. Aby pobrać tylko polecenia, które zostały zaimportowane do bieżącej sesji, użyj parametru ListImported.
Bez parametrów, Get-Command
pobierane są wszystkie polecenia cmdlets, funkcje i aliasy zainstalowane na komputerze. Get-Command *
Pobiera wszystkie typy poleceń, w tym wszystkie pliki niebędące plikami PowerShell w zmiennej środowiskowej Path ($env:Path
), które wymienia w typie polecenia Application.
Get-Command
która używa dokładnej nazwy polecenia, bez znaków wieloznacznych, automatycznie importuje moduł, który zawiera polecenie, dzięki czemu można go natychmiast użyć. Aby włączyć, wyłączyć i skonfigurować automatyczne importowanie modułów, użyj zmiennej preferencji $PSModuleAutoLoadingPreference
. Więcej informacji można znaleźć w temacie about_Preference_Variables.
Get-Command
pobiera dane bezpośrednio z kodu polecenia, w przeciwieństwie do Get-Help
, który pobiera informacje z tematów pomocy.
Począwszy od Windows PowerShell 5.0, wyniki działania cmdleta Get-Command
domyślnie wyświetlają kolumnę Version. Nowa właściwość Version została dodana do klasy CommandInfo.
Przykłady
Przykład 1: Pobierz cmdlets, funkcje i aliasy
To polecenie pobiera cmdlets, funkcje i aliasy PowerShell, które są zainstalowane na komputerze.
Get-Command
Przykład 2: Pobierz polecenia w bieżącej sesji
Ta komenda używa parametru ListImported, aby uzyskać tylko polecenia w bieżącej sesji.
Get-Command -ListImported
Przykład 3: Pobierz cmdlety i wyświetl je w kolejności
To polecenie pobiera wszystkie cmdlety, sortuje je alfabetycznie według rzeczownika w nazwie cmdletu, a następnie wyświetla je w grupach opartych na rzeczowniku. Takie wyświetlanie może pomóc w znalezieniu cmdletów dla danego zadania.
Get-Command -Type Cmdlet | Sort-Object -Property Noun | Format-Table -GroupBy Noun
Przykład 4: Pobierz polecenia w module
To polecenie używa parametru Module, aby uzyskać polecenia w Microsoft.PowerShell.Securityand Microsoft.PowerShell.Utility modules.
Get-Command -Module Microsoft.PowerShell.Security, Microsoft.PowerShell.Utility
Przykład 5: Uzyskaj informacje o cmdlecie
Ta komenda uzyskuje informacje o cmdlecie Get-AppLockerPolicy
. Importuje również modułAppLocker, który dodaje wszystkie polecenia z modułu AppLocker do bieżącej sesji.
Get-Command Get-AppLockerPolicy
Gdy moduł jest importowany automatycznie, efekt jest taki sam jak przy użyciu cmdletu Import-Module.Moduł może dodawać polecenia, typy i pliki formatowania oraz uruchamiać skrypty w sesji. Aby włączyć, wyłączyć i skonfigurować automatyczne importowanie modułów, należy użyć zmiennej preferencji $PSModuleAutoLoadingPreference
. Aby uzyskać więcej informacji, zobacz about_Preference_Variables.
Przykład 6: Uzyskaj składnię cmdleta
To polecenie wykorzystuje parametry ArgumentList i Syntax, aby uzyskać składnię Get-ChildItem
cmdleta, gdy jest on używany w napędzie Cert:. Dysk Cert: jest dyskiem PowerShell, który dostawca certyfikatów dodaje do sesji.
Get-Command -Name Get-Childitem -Args Cert: -Syntax
Porównując składnię wyświetlaną na wyjściu ze składnią, która jest wyświetlana po pominięciu parametru Args (ArgumentList), można zauważyć, że dostawca certyfikatów dodaje dynamiczny parametr CodeSigningCert do cmdletu Get-ChildItem
cmdlet.
Więcej informacji na temat dostawcy certyfikatów można znaleźć w części about_Certificate_Provider.
Przykład 7: Uzyskaj parametry dynamiczne
Polecenie w przykładzie wykorzystuje funkcję Get-DynamicParameters
do uzyskania parametrów dynamicznych, które dostawca certyfikatów dodaje do cmdletu Get-ChildItem
cmdlet, gdy jest on używany w napędzie Cert:.
function Get-DynamicParameters{ param ($Cmdlet, $PSDrive) (Get-Command -Name $Cmdlet -ArgumentList $PSDrive).ParameterSets | ForEach-Object {$_.Parameters} | Where-Object { $_.IsDynamic } | Select-Object -Property Name -Unique}Get-DynamicParameters -Cmdlet Get-ChildItem -PSDrive Cert:Name----CodeSigningCert
Funkcja Get-DynamicParameters
w tym przykładzie pobiera dynamiczne parametry cmdletu. Jest to alternatywa dla metody użytej w poprzednim przykładzie. Parametr dynamiczny może być dodany do acmdleta przez inny cmdlet lub provider.
Przykład 8: Pobierz wszystkie polecenia wszystkich typów
Ta komenda pobiera wszystkie polecenia wszystkich typów na komputerze lokalnym, w tym pliki wykonywalne w ścieżkach zmiennej środowiskowej Path ($env:path
).
Get-Command *
Zwraca obiekt ApplicationInfo (System.Management.Automation.ApplicationInfo) dla każdego pliku, a nie obiekt FileInfo (System.IO.FileInfo).
Przykład 9: Pobierz cmdlets używając nazwy parametru i typu
To polecenie pobiera cmdlets, które mają parametr, którego nazwa zawiera Auth i którego typ toAuthenticationMechanism.
Get-Command -ParameterName *Auth* -ParameterType AuthenticationMechanism
Możesz użyć polecenia takiego jak to, aby znaleźć cmdlety, które pozwalają określić metodę, która jest używana do uwierzytelniania użytkownika.
ParametrType odróżnia parametry, które przyjmują wartość AuthenticationMechanism od tych, które przyjmują parametr AuthenticationLevel, nawet jeśli mają podobne nazwy.
Przykład 10: Uzyskaj alias
Ten przykład pokazuje, jak używać cmdletu Get-Command
z aliasem.
Get-Command -Name dirCommandType Name ModuleName----------- ---- ----------Alias dir -> Get-ChildItem
Pomimo, że jest to typowe zastosowanie dla cmdletów i funkcji, Get-Command
pobiera również skrypty, funkcje, aliasy i pliki wykonywalne.
Wyniki polecenia pokazują specjalny widok wartości właściwości Name dla aliasów. Widok ten pokazuje alias i pełną nazwę polecenia.
Przykład 11: Pobierz składnię z aliasu
Przykład ten pokazuje, jak uzyskać składnię wraz ze standardową nazwą aliasu.
Wyjście polecenia pokazuje alias oznaczony etykietą ze standardową nazwą, a następnie składnię.
Get-Command -Name dir -Syntaxdir (alias) -> Get-ChildItemdir <string>] <string>] >] >] >] dir <string>] -LiteralPath <string> >] >] >]
Przykład 12: Pobierz wszystkie instancje polecenia Notatnik
Ten przykład wykorzystuje parametr All polecenia Get-Command
cmdlet, aby wyświetlić wszystkie instancje poleceniaNotepad
na komputerze lokalnym.
Get-Command Notepad -All | Format-Table CommandType, Name, DefinitionCommandType Name Definition----------- ---- ----------Application notepad.exe C:\WINDOWS\system32\notepad.exeApplication NOTEPAD.EXE C:\WINDOWS\NOTEPAD.EXE
Parametr All jest przydatny, gdy w sesji znajduje się więcej niż jedno polecenie o tej samej nazwie.
Zaczynając od Windows PowerShell 3.0, domyślnie, gdy sesja zawiera wiele poleceń o tej samej nazwie, Get-Command
pobiera tylko to polecenie, które jest uruchamiane po wpisaniu nazwy polecenia. Z parametrem All, Get-Command
pobiera wszystkie polecenia o podanej nazwie i zwraca je w kolejności pierwszeństwa wykonania. Aby uruchomić polecenie inne niż pierwsze na liście, wpisz pełną kwalifikowaną ścieżkę do polecenia.
Więcej informacji o pierwszeństwie poleceń, zobacz about_Command_Precedence.
Przykład 13: Uzyskaj nazwę modułu, który zawiera cmdlet
To polecenie uzyskuje nazwę modułu, w którym powstał Get-Date
cmdlet.Polecenie wykorzystuje właściwość ModuleName wszystkich poleceń.
(Get-Command Get-Date).ModuleNameMicrosoft.PowerShell.Utility
Ten format polecenia działa na polecenia w modułach PowerShell, nawet jeśli nie są one zaimportowane do sesji.
Przykład 14: Pobierz cmdlety i funkcje, które mają typ wyjściowy
Get-Command -Type Cmdlet | Where-Object OutputType | Format-List -Property Name, OutputType
To polecenie pobiera cmdlety i funkcje, które mają typ wyjściowy oraz typ obiektów, które zwracają.
Pierwsza część polecenia pobiera wszystkie cmdlety. Operator potoku (|
) wysyła cmdlety do cmdletaWhere-Object
, który wybiera tylko te, w których właściwość OutputType jest wypełniona. Inny operator potoku wysyła wybrane obiekty cmdletów do cmdleta Format-List
, który wyświetla nazwę i typ wyjścia każdego cmdleta na liście.
Właściwość OutputType obiektu CommandInfo ma wartość non-null tylko wtedy, gdy cmdletcode definiuje atrybut OutputType dla cmdleta.
Przykład 15: Pobierz polecenia cmdlet, które pobierają określony typ obiektu jako dane wejściowe
Get-Command -ParameterType (((Get-NetAdapter)).PSTypeNames)CommandType Name ModuleName----------- ---- ----------Function Disable-NetAdapter NetAdapterFunction Enable-NetAdapter NetAdapterFunction Rename-NetAdapter NetAdapterFunction Restart-NetAdapter NetAdapterFunction Set-NetAdapter NetAdapter
To polecenie znajduje polecenia cmdlet, które pobierają obiekty adaptera sieciowego jako dane wejściowe. Możesz użyć tego formatu polecenia, aby znaleźć polecenia cmdlet, które akceptują typ obiektów zwracanych przez dowolne polecenie.
Polecenie wykorzystuje wewnętrzną właściwość PSTypeNames wszystkich obiektów, która pobiera typy opisujące dany obiekt. Aby uzyskać właściwość PSTypeNames adaptera sieciowego, a nie właściwośćPSTypeNames kolekcji adapterów sieciowych, polecenie używa notacji tablicowej, aby uzyskać pierwszy adapter sieciowy, który zwróci cmdlet.
Przykład 16: Uzyskaj polecenia przy użyciu dopasowania rozmytego
W tym przykładzie nazwa polecenia celowo zawiera literówkę jako „get-commnd”.Używając przełącznika -UseFuzzyMatching
, cmdlet określił, że najlepszym dopasowaniem było Get-Command
, a następnie inne natywne polecenia w systemie, które były podobne.
Get-Command get-commnd -UseFuzzyMatchingCommandType Name Version Source----------- ---- ------- ------Cmdlet Get-Command 6.2.0.0 Microsoft.PowerShell.CoreApplication getconf 0.0.0.0 /usr/bin/getconfApplication command 0.0.0.0 /usr/bin/command
Parametry
Wskazuje, że ten cmdlet pobiera wszystkie polecenia, w tym polecenia tego samego typu, które mają taką samą nazwę. Domyślnie Get-Command
pobierane są tylko polecenia uruchamiane po wpisaniu nazwy polecenia.
Aby uzyskać więcej informacji na temat metody, której PowerShell używa do wyboru polecenia do uruchomienia, gdy wiele poleceń ma tę samą nazwę, zobacz about_Command_Precedence.Informacje na temat nazw poleceń kwalifikowanych przez moduły i uruchamiania poleceń, które nie są domyślnie uruchamiane z powodu konfliktu nazw, można znaleźć w temacie about_Modules.
Parametr ten został wprowadzony w Windows PowerShell 3.0.
W Windows PowerShell 2.0, Get-Command
domyślnie pobiera wszystkie polecenia.
Typ: | SwitchParameter |
Pozycja: | Named |
Default value: | None |
Accept pipeline input: | True |
Accept wildcard characters: | False |
Podajemy tablicę argumentów. Ten cmdlet pobiera informacje o cmdlecie lub funkcji, gdy jest ona używana z określonymi parametrami („argumentami”). Aliasem dla ArgumentList jest Args.
Aby wykryć parametry dynamiczne, które są dostępne tylko wtedy, gdy używane są pewne inne parametry, ustaw wartość ArgumentList na parametry, które wywołują parametry dynamiczne.
Aby wykryć parametry dynamiczne, które dostawca dodaje do cmdleta, ustaw wartość parametruArgumentList na ścieżkę w dysku dostawcy, taką jak WSMan:, HKLM: lub Cert:. Jeżeli polecenie jest cmdletem dostawcy PowerShell, należy wprowadzić tylko jedną ścieżkę w każdym poleceniu. Polecenia providercmdlet zwracają tylko dynamiczne parametry dla pierwszej ścieżki wartość ArgumentList. Aby uzyskać informacje na temat cmdletów provider, zobacz about_Providers.
Typ: | Obiekt |
Alias: | Args |
Pozycja: | 1 |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Określa typy poleceń, które pobiera ten cmdlet. Podaj jeden lub więcej typów poleceń. UżyjCommandType lub jego aliasu, Type. Domyślnie Get-Command
pobiera wszystkie cmdlety, funkcje i aliasy.
Dopuszczalne wartości dla tego parametru to:
- Alias. Uzyskuje aliasy wszystkich poleceń PowerShell. Aby uzyskać więcej informacji, zobacz about_Aliases.
- All. Wyświetla wszystkie typy poleceń. Ta wartość parametru jest odpowiednikiem
Get-Command *
. - Application. Pobiera pliki niebędące plikami PowerShell, znajdujące się w ścieżkach wymienionych w zmiennej środowiskowej Path ($env:path), w tym pliki .txt, .exe i .dll. Więcej informacji o zmiennej środowiskowejPath można znaleźć w about_Environment_Variables.
- Cmdlet. Wyświetla wszystkie polecenia cmdlet.
- Skrypta zewnętrzne. Pobiera wszystkie pliki .ps1 znajdujące się w ścieżkach wymienionych w zmiennej środowiskowej Path ($env:path).
- Filtr i funkcja. Pobiera wszystkie zaawansowane i proste funkcje i filtry PowerShell.
- Skrypty. Pobiera wszystkie bloki skryptów. Aby uzyskać skrypty PowerShell (pliki .ps1), należy użyć wartości ExternalScript.
Type: | CommandTypes |
Aliases: | Type |
Accepted values: | Alias, Function, Filter, Cmdlet, ExternalScript, Application, Script, Workflow, Configuration, All |
Position: | Named |
Default value: | None |
Accept pipeline input: | True |
Accept wildcard characters: | False |
Określa moduły o nazwach, które są określone w postaci obiektów ModuleSpecification, opisanych w sekcji Remarks konstruktora ModuleSpecification (Hashtable).Na przykład, parametr FullyQualifiedModule akceptuje nazwę modułu, która jest określona w jednym z następujących formatów:
@{ModuleName = "modulename"; ModuleVersion = "version_number"}
@{ModuleName = "modulename"; ModuleVersion = "version_number"; Guid = "GUID"}
ModuleName i ModuleVersion są wymagane, ale Guid jest opcjonalny.
Nie można określić parametru FullyQualifiedModule w tym samym poleceniu co parametr Moduleleparameter. Te dwa parametry wzajemnie się wykluczają.
Typ: | ModuleSpecification |
Pozycja: | Named |
Default value: | None |
Accept pipeline input: | True |
Accept wildcard characters: | False |
Wskazuje, że ten cmdlet pobiera tylko polecenia w bieżącej sesji.
Począwszy od PowerShell 3.0, domyślnie Get-Command
pobiera wszystkie zainstalowane polecenia, w tym między innymi polecenia w bieżącej sesji. W PowerShell 2.0 pobierane są tylko polecenia w bieżącej sesji.
Parametr ten został wprowadzony w Windows PowerShell 3.0.
Typ: | SwitchParameter |
Pozycja: | Named |
Default value: | None |
Accept pipeline input: | True |
Accept wildcard characters: | False |
Wskazuje tablicę modułów. Ten cmdlet pobiera polecenia, które pochodzą z określonych modułów.Podaj nazwy modułów lub obiektów modułów.
Ten parametr przyjmuje wartości łańcuchowe, ale wartością tego parametru może być również obiekt PSModuleInfoobject, taki jak obiekty, które zwracają cmdlety Get-Module
i Import-PSSession
.
Type: | String |
Aliases: | PSSnapin |
Position: | Named |
Default value: | None |
Accept pipeline input: | True |
Accept wildcard characters: | True |
Wskazuje tablicę nazw. Ten cmdlet pobiera tylko polecenia, które mają podaną nazwę. Podaj nazwę lub wzór nazwy. Dozwolone są znaki wieloznaczne.
Aby uzyskać polecenia o tej samej nazwie, należy użyć parametru Wszystkie. Jeśli dwa polecenia mają tę samą nazwę, domyślnie Get-Command
zostanie pobrane polecenie, które zostanie uruchomione po wpisaniu nazwy polecenia.
Typ: | Ciąg |
Pozycja: | 0 |
Default value: | None |
Accept pipeline input: | True |
Accept wildcard characters: | True |
Określa tablicę rzeczowników poleceń. Ten cmdlet pobiera polecenia, które zawierają polecenia cmdlet, funkcje i aliasy, których nazwy zawierają podany rzeczownik. Wprowadź jeden lub więcej rzeczowników lub wzorców rzeczowników. Dozwolone są znaki wieloznaczne.
Type: | String |
Pozycja: | Named |
Default value: | None |
Accept pipeline input: | True |
Accept wildcard characters: | True |
Określa tablicę nazw parametrów. Ten cmdlet pobiera polecenia w sesji, które mają określone parametry. Podaj nazwę parametru lub alias parametru. Obsługiwane są znaki wieloznaczne.
Parametry ParameterName i ParameterType wyszukują tylko polecenia w bieżącej sesji.
Ten parametr został wprowadzony w Windows PowerShell 3.0.
Typ: | Ciąg |
Pozycja: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | True |
Określa tablicę nazw parametrów. Ten cmdlet pobiera polecenia w sesji, które mają parametry określonego typu. Podaj pełną nazwę lub częściową nazwę typu parametru. Obsługiwane są znaki wieloznaczne.
Parametry ParameterName i ParameterType wyszukują tylko polecenia w bieżącej sesji.
Parametr ten został wprowadzony w Windows PowerShell 3.0.
Typ: | PSTypeName |
Pozycja: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | True |
Wskazuje, że ten cmdlet wyświetla informacje o poleceniu.
Ten parametr został wprowadzony w Windows PowerShell 5.0.
Typ: | SwitchParameter |
Pozycja: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Wskazuje, że ten cmdlet pobiera tylko następujące określone dane o poleceniu:
- Alias. Uzyskuje standardową nazwę i składnię.
- Cmdlets. Uzyskuje składnię.
- Funkcje i filtry. Uzyskuje definicję funkcji.
- Skrypty i aplikacje lub pliki. Uzyskuje ścieżkę i nazwę pliku.
Typ: | SwitchParameter |
Pozycja: | Named |
Default value: | None |
Accept pipeline input: | True |
Accept wildcard characters: | False |
Określa liczbę poleceń do pobrania. Możesz użyć tego parametru, aby ograniczyć wyjście acommand.
Type: | Int32 |
Position: | Named |
Default value: | None |
Accept pipeline input: | True |
Accept wildcard characters: | False |
Wskazuje użycie dopasowania znaków w poleceniu do wyszukiwania z dużymi literami w poleceniu. Na przykład, i-psdf
będzie pasować do Import-PowerShellDataFile
ponieważ każdy ze znaków do znalezienia pasuje do wielkiej litery w wyniku. Kiedy używasz tego typu dopasowania, wszelkie symbole wieloznaczne nie będą skutkowały dopasowaniem.
Typ: | SwitchParameter |
Pozycja: | Named |
Default value: | None |
Accept pipeline input: | True |
Accept wildcard characters: | False |
Wskazuje użycie algorytmu dopasowania rozmytego podczas wyszukiwania poleceń. Kolejność wyników jest od najbardziej zbliżonego do najmniej prawdopodobnego dopasowania. Nie należy używać znaków wieloznacznych z dopasowaniem rozmytym, ponieważ będzie ono próbowało dopasować komendy, które mogą zawierać te znaki.
Typ: | SwitchParameter |
Pozycja: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Podajemy tablicę czasowników poleceń. Ten cmdlet pobiera polecenia, które zawierają polecenia cmdlet, funkcje i aliasy, których nazwy zawierają określony czasownik. Wprowadź jeden lub więcej czasowników lub wzorców czasowników. Dozwolone są znaki wieloznaczne.
Type: | String |
Position: | Named |
Default value: | None |
Accept pipeline input: | True |
Accept wildcard characters: | True |
Inputs
String
Do tego cmdleta można przesyłać nazwy poleceń.
Outputs
CommandInfo
Ten cmdlet zwraca obiekty wywodzące się z klasy CommandInfo. Typ zwracanego obiektu zależy od typu polecenia, które Get-Command
dostaje.
AliasInfo
Opowiada aliasom.
ApplicationInfo
Opowiada aplikacjom i plikom.
CmdletInfo
Opowiada cmdletom.
FunctionInfo
Opowiada o funkcjach i filtrach.
Uwagi
- Gdy więcej niż jedno polecenie o tej samej nazwie jest dostępne dla sesji,
Get-Command
zwraca polecenie, które zostanie uruchomione po wpisaniu nazwy polecenia. Aby uzyskać polecenia o tej samej nazwie, wymienione w kolejności wykonywania, użyj parametru Wszystkie. Aby uzyskać więcej informacji, zobaczabout_Command_Precedence. - Gdy moduł jest importowany automatycznie, efekt jest taki sam jak przy użyciu polecenia
Import-Module
cmdlet. Moduł może dodawać polecenia, typy i pliki formatujące oraz uruchamiać skrypty w sesji.Aby włączyć, wyłączyć i skonfigurować automatyczne importowanie modułów, użyj zmiennej preferencji$PSModuleAutoLoadingPreference
. Aby uzyskać więcej informacji, zobaczabout_Preference_Variables.
- Export-PSSession
- Get-Help
- Get-Member
- Get-PSDrive
- Import-PSSession
- about_Command_Precedence