Get-Command

Hiermee worden alle opdrachten ophaalt.

Syntax

Get-Command
   [-Verb <String[]>]
   [-Noun <String[]>]
   [-Module <String[]>]
   [-FullyQualifiedModule <ModuleSpecification[]>]
   [-TotalCount <Int32>]
   [-Syntax]
   [-ShowCommandInfo]
   [[-ArgumentList] <Object[]>]
   [-All]
   [-ListImported]
   [-ParameterName <String[]>]
   [-ParameterType <PSTypeName[]>]
   [<CommonParameters>]
Get-Command
   [[-Name] <String[]>]
   [-Module <String[]>]
   [-FullyQualifiedModule <ModuleSpecification[]>]
   [-CommandType <CommandTypes>]
   [-TotalCount <Int32>]
   [-Syntax]
   [-ShowCommandInfo]
   [[-ArgumentList] <Object[]>]
   [-All]
   [-ListImported]
   [-ParameterName <String[]>]
   [-ParameterType <PSTypeName[]>]
   [<CommonParameters>]

Description

Met Get-Command de cmdlet worden alle opdrachten opgehaald die op de computer zijn geïnstalleerd, waaronder cmdlets, aliassen, functies, filters, scripts en toepassingen. Get-Command haalt de opdrachten op uit PowerShell-modules en -opdrachten die zijn geïmporteerd uit andere sessies. Als u alleen opdrachten wilt ophalen die zijn geïmporteerd in de huidige sessie, gebruikt u de parameter ListImported .

Zonder parameters worden Get-Command alle cmdlets, functies en aliassen opgehaald die op de computer zijn geïnstalleerd. Get-Command * haalt alle typen opdrachten op, inclusief alle niet-PowerShell-bestanden in de omgevingsvariabele Path ($env:Path), die worden vermeld in het opdrachttype Toepassing.

Get-Command die de exacte naam van de opdracht gebruikt, zonder jokertekens, importeert automatisch de module die de opdracht bevat, zodat u de opdracht onmiddellijk kunt gebruiken. Gebruik de $PSModuleAutoLoadingPreference voorkeursvariabele om het automatisch importeren van modules in te schakelen, uit te schakelen en te configureren. Zie about_Preference_Variables voor meer informatie.

Get-Command haalt de gegevens rechtstreeks op uit de opdrachtcode, in tegenstelling tot Get-Help, waarmee de informatie wordt opgehaald uit Help-onderwerpen.

Vanaf Windows PowerShell 5.0 worden in de resultaten van de Get-Command cmdlet standaard een versiekolom weergegeven. Er is een nieuwe versie-eigenschap toegevoegd aan de klasse CommandInfo .

Voorbeelden

Voorbeeld 1: cmdlets, functies en aliassen ophalen

Met deze opdracht worden de PowerShell-cmdlets, -functies en -aliassen opgehaald die op de computer zijn geïnstalleerd.

Get-Command

Voorbeeld 2: Opdrachten ophalen in de huidige sessie

Met deze opdracht wordt de parameter ListImported gebruikt om alleen de opdrachten in de huidige sessie op te halen.

Get-Command -ListImported

Voorbeeld 3: Cmdlets ophalen en weergeven in volgorde

Met deze opdracht worden alle cmdlets opgeslagen, alfabetisch gesorteerd op het zelfstandig naamwoord in de naam van de cmdlet en vervolgens weergegeven in groepen op basis van zelfstandig naamwoorden. Met deze weergave kunt u de cmdlets voor een taak vinden.

Get-Command -Type Cmdlet | Sort-Object -Property Noun | Format-Table -GroupBy Noun

Voorbeeld 4: Opdrachten ophalen in een module

Met deze opdracht wordt de moduleparameter gebruikt om de opdrachten op te halen in de modules Microsoft.PowerShell.Security en Microsoft.PowerShell.Utility.

Get-Command -Module Microsoft.PowerShell.Security, Microsoft.PowerShell.Utility

Voorbeeld 5: Informatie over een cmdlet ophalen

Met deze opdracht wordt informatie opgehaald over de Get-AppLockerPolicy cmdlet. Ook wordt de AppLocker-module geïmporteerd, waarmee alle opdrachten in de AppLocker-module worden toegevoegd aan de huidige sessie.

Get-Command Get-AppLockerPolicy

Wanneer een module automatisch wordt geïmporteerd, is het effect hetzelfde als het gebruik van de cmdlet Import-Module. De module kan opdrachten, typen en opmaakbestanden toevoegen en scripts uitvoeren in de sessie. Gebruik de $PSModuleAutoLoadingPreference voorkeursvariabele om het automatisch importeren van modules in te schakelen, uit te schakelen en te configureren. Zie about_Preference_Variables voor meer informatie.

Voorbeeld 6: De syntaxis van een cmdlet ophalen

Met deze opdracht worden de parameters ArgumentList en Syntaxis gebruikt om de syntaxis van de Get-ChildItem cmdlet op te halen wanneer deze wordt gebruikt in het station Cert: station. Het certificaat: station is een PowerShell-station dat de certificaatprovider aan de sessie toevoegt.

Get-Command  -Name Get-Childitem -Args Cert: -Syntax

Wanneer u de syntaxis in de uitvoer vergelijkt met de syntaxis die wordt weergegeven wanneer u de parameter Args (ArgumentList) weglaat, ziet u dat de certificaatprovider een dynamische parameter, CodeSigningCert, toevoegt aan de Get-ChildItem cmdlet.

Zie about_Certificate_Provider voor meer informatie over de certificaatprovider.

Voorbeeld 7: Dynamische parameters ophalen

Met de opdracht in het voorbeeld wordt de Get-DynamicParameters functie gebruikt om de dynamische parameters op te halen die de certificaatprovider toevoegt aan de Get-ChildItem cmdlet wanneer deze wordt gebruikt in het station Cert: station.

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

De Get-DynamicParameters functie in dit voorbeeld haalt de dynamische parameters van een cmdlet op. Dit is een alternatief voor de methode die in het vorige voorbeeld wordt gebruikt. Dynamische parameter kan worden toegevoegd aan een cmdlet door een andere cmdlet of een provider.

Voorbeeld 8: Alle opdrachten van alle typen ophalen

Met deze opdracht worden alle opdrachten van alle typen op de lokale computer opgehaald, inclusief uitvoerbare bestanden in de paden van de omgevingsvariabele Path ($env:path).

Get-Command *

Het retourneert een ApplicationInfo-object (System.Management.Automation.ApplicationInfo) voor elk bestand, niet een FileInfo-object (System.IO.FileInfo).

Voorbeeld 9: Cmdlets ophalen met behulp van een parameternaam en -type

Met deze opdracht worden cmdlets ophaalt die een parameter hebben waarvan de naam Auth bevat en waarvan het type AuthenticationMechanism is.

Get-Command -ParameterName *Auth* -ParameterType AuthenticationMechanism

U kunt een opdracht zoals deze gebruiken om cmdlets te vinden waarmee u de methode kunt opgeven die wordt gebruikt om de gebruiker te verifiëren.

De parameter ParameterType onderscheidt parameters die een AuthenticationMechanism-waarde gebruiken van parameters die een AuthenticationLevel-parameter gebruiken, zelfs wanneer ze vergelijkbare namen hebben.

Voorbeeld 10: Een alias ophalen

In dit voorbeeld ziet u hoe u de Get-Command cmdlet gebruikt met een alias.

Get-Command -Name dir

CommandType     Name                                               ModuleName
-----------     ----                                               ----------
Alias           dir -> Get-ChildItem

Hoewel deze doorgaans wordt gebruikt voor cmdlets en functies, Get-Command worden ook scripts, functies, aliassen en uitvoerbare bestanden opgeslagen.

In de uitvoer van de opdracht ziet u de speciale weergave van de eigenschap Naam voor aliassen. In de weergave ziet u de alias en de volledige opdrachtnaam.

Voorbeeld 11: Alle exemplaren van de opdracht Kladblok ophalen

In dit voorbeeld wordt de parameter All van de Get-Command cmdlet gebruikt om alle exemplaren van de Notepad opdracht op de lokale computer weer te geven.

Get-Command Notepad -All | Format-Table CommandType, Name, Definition

CommandType     Name           Definition
-----------     ----           ----------
Application     notepad.exe    C:\WINDOWS\system32\notepad.exe
Application     NOTEPAD.EXE    C:\WINDOWS\NOTEPAD.EXE

De parameter All is handig wanneer er meer dan één opdracht met dezelfde naam in de sessie is.

Vanaf Windows PowerShell 3.0 krijgt, wanneer de sessie standaard meerdere opdrachten met dezelfde naam bevat, Get-Command alleen de opdracht die wordt uitgevoerd wanneer u de opdrachtnaam typt. Met de parameter Alle worden Get-Command alle opdrachten met de opgegeven naam opgeslagen en geretourneerd in de volgorde van de uitvoeringsprioriteit. Als u een andere opdracht dan de eerste opdracht in de lijst wilt uitvoeren, typt u het volledig gekwalificeerde pad naar de opdracht.

Zie about_Command_Precedence voor meer informatie over de prioriteit van opdrachten.

Voorbeeld 12: De naam ophalen van een module die een cmdlet bevat

Met deze opdracht wordt de naam opgehaald van de module waarin de Get-Date cmdlet afkomstig is. De opdracht maakt gebruik van de eigenschap ModuleName van alle opdrachten.

(Get-Command Get-Date).ModuleName

Microsoft.PowerShell.Utility

Deze opdrachtindeling werkt op opdrachten in PowerShell-modules, zelfs als deze niet in de sessie worden geïmporteerd.

Voorbeeld 13: cmdlets en functies ophalen die een uitvoertype hebben

Get-Command -Type Cmdlet | Where-Object OutputType | Format-List -Property Name, OutputType

Met deze opdracht worden de cmdlets en functies opgehaald met een uitvoertype en het type objecten dat ze retourneren.

Het eerste deel van de opdracht haalt alle cmdlets op. Een pijplijnoperator (|) verzendt de cmdlets naar de Where-Object cmdlet, waarmee alleen de cmdlets worden geselecteerd waarin de eigenschap OutputType wordt ingevuld. Een andere pijplijnoperator verzendt de geselecteerde cmdlet-objecten naar de Format-List cmdlet, waarmee de naam en het uitvoertype van elke cmdlet in een lijst worden weergegeven.

De eigenschap OutputType van een CommandInfo-object heeft alleen een niet-null-waarde wanneer de cmdlet-code het OutputType-kenmerk voor de cmdlet definieert.

Voorbeeld 14: Cmdlets ophalen die een specifiek objecttype als invoer gebruiken

Get-Command -ParameterType (((Get-NetAdapter)[0]).PSTypeNames)

CommandType     Name                                               ModuleName
-----------     ----                                               ----------
Function        Disable-NetAdapter                                 NetAdapter
Function        Enable-NetAdapter                                  NetAdapter
Function        Rename-NetAdapter                                  NetAdapter
Function        Restart-NetAdapter                                 NetAdapter
Function        Set-NetAdapter                                     NetAdapter

Met deze opdracht vindt u cmdlets die netadapterobjecten als invoer gebruiken. U kunt deze opdrachtindeling gebruiken om de cmdlets te vinden die het type objecten accepteren dat elke opdracht retourneert.

De opdracht maakt gebruik van de intrinsieke eigenschap PSTypeNames van alle objecten, waarmee de typen worden opgehaald die het object beschrijven. Als u de eigenschap PSTypeNames van een netadapter wilt ophalen en niet de eigenschap PSTypeNames van een verzameling netadapters, gebruikt de opdracht matrix-notatie om de eerste netadapter op te halen die door de cmdlet wordt geretourneerd. Als u de eigenschap PSTypeNames van een netadapter wilt ophalen en niet de eigenschap PSTypeNames van een verzameling netadapters, gebruikt de opdracht matrix-notatie om de eerste netadapter op te halen die door de cmdlet wordt geretourneerd.

Parameters

-All

Geeft aan dat met deze cmdlet alle opdrachten worden ophaalt, inclusief opdrachten van hetzelfde type met dezelfde naam. Get-Command Standaard worden alleen de opdrachten weergegeven die worden uitgevoerd wanneer u de opdrachtnaam typt.

Zie about_Command_Precedence voor meer informatie over de methode die PowerShell gebruikt om de opdracht te selecteren die moet worden uitgevoerd wanneer meerdere opdrachten dezelfde naam hebben. Zie about_Modules voor informatie over namen van module-gekwalificeerde opdrachten en het uitvoeren van opdrachten die niet standaard worden uitgevoerd vanwege een naamconflict.

Deze parameter is geïntroduceerd in Windows PowerShell 3.0.

In Windows PowerShell 2.0 worden Get-Command standaard alle opdrachten opgeslagen.

Type:SwitchParameter
Position:Named
Default value:False
Accept pipeline input:True
Accept wildcard characters:False
-ArgumentList

Hiermee geeft u een matrix van argumenten op. Met deze cmdlet wordt informatie opgehaald over een cmdlet of functie wanneer deze wordt gebruikt met de opgegeven parameters ("argumenten"). De alias voor ArgumentList is Args.

Als u dynamische parameters wilt detecteren die alleen beschikbaar zijn wanneer bepaalde andere parameters worden gebruikt, stelt u de waarde van ArgumentList in op de parameters die de dynamische parameters activeren.

Als u de dynamische parameters wilt detecteren die een provider toevoegt aan een cmdlet, stelt u de waarde van de parameter ArgumentList in op een pad in het providerstation, zoals WSMan:, HKLM:of Cert:. Wanneer de opdracht een PowerShell-provider-cmdlet is, voert u slechts één pad in elke opdracht in. De provider-cmdlets retourneren alleen de dynamische parameters voor het eerste pad de waarde van ArgumentList. Zie about_Providers voor informatie over de provider-cmdlets.

Type:Object[]
Aliases:Args
Position:1
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-CommandType

Hiermee geeft u de typen opdrachten op die door deze cmdlet worden opgehaald. Voer een of meer opdrachttypen in. Gebruik CommandType of de alias, Type. Haalt standaard Get-Command alle cmdlets, functies en aliassen op.

De aanvaardbare waarden voor deze parameter zijn:

  • Alias: Haalt de aliassen van alle PowerShell-opdrachten op. Zie about_Aliases voor meer informatie.
  • All: Hiermee worden alle opdrachttypen opgehaald. Deze parameterwaarde is het equivalent van Get-Command *.
  • Application: Haalt niet-PowerShell-bestanden op in paden die worden vermeld in de omgevingsvariabele Pad ($env:path), inclusief .txt, .exe en .dll bestanden. Zie about_Environment_Variables voor meer informatie over de omgevingsvariabele Path.
  • Cmdlet: haalt alle cmdlets op.
  • ExternalScript: haalt alle .ps1 bestanden op in de paden die worden vermeld in de omgevingsvariabele Path ($env:path).
  • Filter en Function: haalt alle geavanceerde en eenvoudige functies en filters van PowerShell op.
  • Script: Haalt alle scriptblokken op. Gebruik de waarde om PowerShell-scripts (.ps1 bestanden) op te ExternalScript halen.
  • Workflow: Haalt alle werkstromen op. Zie Inleiding tot Windows PowerShell werkstroom voor meer informatie over werkstromen.

Deze waarden worden gedefinieerd als een opsomming op basis van vlaggen. U kunt meerdere waarden combineren om meerdere vlaggen in te stellen met behulp van deze parameter. De waarden kunnen worden doorgegeven aan de parameter CommandType als een matrix met waarden of als een door komma's gescheiden tekenreeks van deze waarden. De cmdlet combineert de waarden met behulp van een binaire-OF-bewerking. Het doorgeven van waarden als een matrix is de eenvoudigste optie en stelt u ook in staat om tabvoltooiing te gebruiken voor de waarden.

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
-FullyQualifiedModule

Hiermee geeft u modules met namen die zijn opgegeven in de vorm van ModuleSpecification-objecten , beschreven in het gedeelte Opmerkingen van ModuleSpecification Constructor (Hashtable). De parameter FullyQualifiedModule accepteert bijvoorbeeld een modulenaam die is opgegeven in een van de volgende indelingen:

  • @{ModuleName = "modulename"; ModuleVersion = "version_number"}
  • @{ModuleName = "modulename"; ModuleVersion = "version_number"; Guid = "GUID"}

ModuleName en ModuleVersion zijn vereist, maar Guid is optioneel.

U kunt de parameter FullyQualifiedModule niet opgeven in dezelfde opdracht als een moduleparameter . De twee parameters sluiten elkaar wederzijds uit.

Type:ModuleSpecification[]
Position:Named
Default value:None
Accept pipeline input:True
Accept wildcard characters:False
-ListImported

Geeft aan dat deze cmdlet alleen opdrachten in de huidige sessie krijgt.

Vanaf PowerShell 3.0 worden standaard Get-Command alle geïnstalleerde opdrachten opgehaald, waaronder, maar niet beperkt tot, de opdrachten in de huidige sessie. In PowerShell 2.0 worden alleen opdrachten in de huidige sessie weergegeven.

Deze parameter is geïntroduceerd in Windows PowerShell 3.0.

Type:SwitchParameter
Position:Named
Default value:None
Accept pipeline input:True
Accept wildcard characters:False
-Module

Hiermee geeft u een matrix van modules. Met deze cmdlet worden de opdrachten opgehaald die afkomstig zijn van de opgegeven modules of modules. Voer de namen van modules of modules in.

Deze parameter gebruikt tekenreekswaarden, maar de waarde van deze parameter kan ook een PSModuleInfo- of PSSnapinInfo-object zijn, zoals de objecten die de Get-ModuleGet-PSSnapin, en Import-PSSession cmdlets retourneren.

U kunt naar deze parameter verwijzen op de naam, module of op de alias, PSSnapin. De parameternaam die u kiest, heeft geen invloed op de uitvoer van de opdracht.

Type:String[]
Aliases:PSSnapin
Position:Named
Default value:None
Accept pipeline input:True
Accept wildcard characters:True
-Name

Hiermee geeft u een matrix met namen op. Met deze cmdlet worden alleen opdrachten met de opgegeven naam ophaalt. Voer een naam of naampatroon in. Jokertekens zijn toegestaan.

Als u opdrachten met dezelfde naam wilt ophalen, gebruikt u de parameter Alle . Wanneer twee opdrachten dezelfde naam hebben, Get-Command haalt u standaard de opdracht op die wordt uitgevoerd wanneer u de opdrachtnaam typt.

Type:String[]
Position:0
Default value:None
Accept pipeline input:True
Accept wildcard characters:True
-Noun

Hiermee geeft u een matrix van opdracht zelfstandige naamwoorden. Met deze cmdlet worden opdrachten ophaalt, waaronder cmdlets, functies en aliassen, met namen die het opgegeven zelfstandig naamwoord bevatten. Voer een of meer zelfstandige naamwoorden of zelfstandige naamwoordpatronen in. Jokertekens zijn toegestaan.

Type:String[]
Position:Named
Default value:None
Accept pipeline input:True
Accept wildcard characters:True
-ParameterName

Hiermee geeft u een matrix met parameternamen op. Met deze cmdlet worden opdrachten opgeslagen in de sessie met de opgegeven parameters. Voer parameternamen of parameteraliassen in. Jokertekens worden ondersteund.

De parameters ParameterName en ParameterType zoeken alleen opdrachten in de huidige sessie.

Deze parameter is geïntroduceerd in Windows PowerShell 3.0.

Type:String[]
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:True
-ParameterType

Hiermee geeft u een matrix met parameternamen op. Met deze cmdlet worden opdrachten opgeslagen in de sessie met parameters van het opgegeven type. Voer de volledige naam of gedeeltelijke naam van een parametertype in. Jokertekens worden ondersteund.

De parameters ParameterName en ParameterType zoeken alleen opdrachten in de huidige sessie.

Deze parameter is geïntroduceerd in Windows PowerShell 3.0.

Type:PSTypeName[]
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:True
-ShowCommandInfo

Geeft aan dat met deze cmdlet opdrachtgegevens worden weergegeven.

Deze parameter is geïntroduceerd in Windows PowerShell 5.0.

Type:SwitchParameter
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-Syntax

Geeft aan dat met deze cmdlet alleen de volgende opgegeven gegevens over de opdracht worden opgehaald:

  • Aliassen haalt de standaardnaam op.
  • Cmdlets. Hiermee haalt u de syntaxis op.
  • Functies en filters. Hiermee haalt u de functiedefinitie op.
  • Scripts en toepassingen of bestanden. Hiermee haalt u het pad en de bestandsnaam op.
Type:SwitchParameter
Position:Named
Default value:None
Accept pipeline input:True
Accept wildcard characters:False
-TotalCount

Hiermee geeft u het aantal opdrachten op dat moet worden get. U kunt deze parameter gebruiken om de uitvoer van een opdracht te beperken.

Type:Int32
Position:Named
Default value:None
Accept pipeline input:True
Accept wildcard characters:False
-Verb

Hiermee geeft u een matrix van opdrachtwoorden. Met deze cmdlet worden opdrachten ophaalt, waaronder cmdlets, functies en aliassen, met namen die het opgegeven werkwoord bevatten. Voer een of meer werkwoorden of werkwoordpatronen in. Jokertekens zijn toegestaan.

Type:String[]
Position:Named
Default value:None
Accept pipeline input:True
Accept wildcard characters:True

Invoerwaarden

String

U kunt opdrachtnamen doorsluisen naar deze cmdlet.

Uitvoerwaarden

CommandInfo

Met deze cmdlet worden objecten geretourneerd die zijn afgeleid van de klasse CommandInfo . Het type object dat wordt geretourneerd, is afhankelijk van het type opdracht dat Get-Command wordt opgehaald.

AliasInfo

Vertegenwoordigt aliassen.

ApplicationInfo

Vertegenwoordigt toepassingen en bestanden.

CmdletInfo

Vertegenwoordigt cmdlets.

FunctionInfo

Vertegenwoordigt functies en filters.

WorkflowInfo

Vertegenwoordigt werkstromen.

Notities

  • Wanneer meer dan één opdracht met dezelfde naam beschikbaar is voor de sessie, Get-Command retourneert u de opdracht die wordt uitgevoerd wanneer u de opdrachtnaam typt. Als u opdrachten met dezelfde naam wilt ophalen, vermeld in uitvoeringsvolgorde, gebruikt u de parameter All . Zie about_Command_Precedence voor meer informatie.
  • Wanneer een module automatisch wordt geïmporteerd, is het effect hetzelfde als het gebruik van de Import-Module cmdlet. De module kan opdrachten, typen en opmaakbestanden toevoegen en scripts uitvoeren in de sessie. Gebruik de $PSModuleAutoLoadingPreference voorkeursvariabele om het automatisch importeren van modules in te schakelen, uit te schakelen en te configureren. Zie about_Preference_Variables voor meer informatie.