De Windows PowerShell SDK installeren

Van toepassing op: Windows PowerShell 2.0, Windows PowerShell 3.0

In het volgende onderwerp wordt beschreven hoe u de PowerShell SDK installeert op verschillende versies van Windows.

De Windows PowerShell 3.0 SDK voor Windows 8 en Windows Server 2012

Windows PowerShell 3.0 wordt automatisch geïnstalleerd met Windows 8 en Windows Server 2012. Daarnaast kunt u de referentieassembasses voor Windows PowerShell 3.0 downloaden en installeren als onderdeel van de Windows 8 SDK. Met deze assemblies kunt u cmdlets, providers en hostprogramma's schrijven voor Windows PowerShell 3.0. Wanneer u de Windows SDK voor Windows 8 installeert, worden de Windows PowerShell-assembly's automatisch geïnstalleerd in de map van de referentieassemblage in \Program Files (x86)\Reference Assemblies\Microsoft\WindowsPowerShell\3.0 . Zie de downloadsite van Windows 8 SDK voor meer informatie. Windows PowerShell codevoorbeelden zijn ook beschikbaar in de opslagplaats powershell-sdk-samples.

De Windows PowerShell 3.0 SDK voor Windows 7 en Windows Server 2008 R2 installeren

Windows 7 en Windows Server 2008 R2 automatisch PowerShell 2.0 geïnstalleerd. Bovendien kunt u PowerShell 3.0 op deze systemen installeren. U kunt de Windows 8 SDK ook installeren op Windows 7 en Windows Server 2008 R2, zoals hierboven beschreven.

De Windows PowerShell 2.0 SDK voor Windows 7, Vista, XP, Server 2003 en Server 2008 installeren

De Windows PowerShell 2.0 SDK biedt de referentieassemblage's die nodig zijn voor het schrijven van cmdlets, providers en hostingtoepassingen, en biedt C#-voorbeeldcode die kan worden gebruikt als beginpunt wanneer u begint met het schrijven van code.

Referentieassemblage's

Referentieassemblage's worden standaard op de volgende locatie geïnstalleerd: c:\Program Files\Reference Assemblies\Microsoft\WindowsPowerShell\V1.0 .

Notitie

Code die is gecompileerd op Windows PowerShell 2.0-assemblies, kan niet worden geladen in Windows PowerShell 1.0-installaties. Code die is gecompileerd op de Windows PowerShell 1.0-assemblies, kan echter worden geladen in Windows PowerShell 2.0-installaties.

Voorbeelden

Codevoorbeelden worden standaard op de volgende locatie geïnstalleerd: C:\Program Files\Microsoft SDKs\Windows\v7.0\Samples\sysmgmt\WindowsPowerShell\ . In de volgende secties vindt u een korte beschrijving van wat elk voorbeeld doet.

Cmdlet-voorbeelden

  • GetProcessSample01: laat zien hoe u een eenvoudige cmdlet schrijft die alle processen op de lokale computer op haalt.
  • GetProcessSample02: laat zien hoe u parameters toevoegt aan de cmdlet. De cmdlet neemt een of meer procesnamen en retourneert de overeenkomende processen.
  • GetProcessSample03: laat zien hoe u parameters toevoegt die invoer van de pijplijn accepteren.
  • GetProcessSample04: laat zien hoe u niet-beëindigingsfouten kunt afhandelen.
  • GetProcessSample05: toont hoe u een lijst met opgegeven processen we weergeven.
  • SelectObject: toont hoe u een filter schrijft om alleen bepaalde objecten te selecteren.
  • SelectString: toont hoe u bestanden kunt zoeken naar opgegeven patronen.
  • StopProcessSample01: laat zien hoe u een PassThru-parameter implementeert en hoe u feedback van gebruikers kunt aanvragen door aanroepen naar de methoden ShouldProcess en ShouldContinue. Gebruikers geven de parameter PassThru op wanneer ze willen forceeren dat de cmdlet een -object retourneert.
  • StopProcessSample02: laat zien hoe u een specifiek proces kunt stoppen.
  • StopProcessSample03: hier ziet u hoe u aliassen voor parameters kunt declareeren en hoe u jokertekens kunt ondersteunen.
  • StopProcessSample04: hier ziet u hoe u parametersets declareert, het object dat door de cmdlet als invoer wordt gebruikt en hoe u de standaardparameterset opgeeft die moet worden gebruikt.

Voorbeelden voor remoting

  • RemoteRunspace01: laat zien hoe u een externe runspace maakt die wordt gebruikt om een externe verbinding tot stand te brengen.
  • RemoteRunspacePool01: laat zien hoe u een externe runspacegroep maakt en hoe u meerdere opdrachten tegelijk kunt uitvoeren met behulp van deze pool.
  • Serialisatie01: laat zien hoe u een bestaande .NET-klasse bekijkt en ervoor zorgt dat informatie van geselecteerde openbare eigenschappen van deze klasse behouden blijft tijdens serialisatie/deserialisatie.
  • Serialisatie02: laat zien hoe u een bestaande .NET-klasse bekijkt en ervoor zorgt dat de gegevens van het exemplaar van deze klasse behouden blijven tijdens serialisatie/deserialisatie wanneer de informatie niet beschikbaar is in openbare eigenschappen van de klasse.
  • Serialisatie03: laat zien hoe u een bestaande .NET-klasse bekijkt en ervoor zorgt dat exemplaren van deze klasse en van afgeleide klassen worden gedeserialiseerd (gerehydrateerd) naar live .NET-objecten.

Gebeurtenisvoorbeelden

  • Event01: laat zien hoe u een cmdlet voor gebeurtenisregistratie maakt door af te leiden van ObjectEventRegistrationBase.
  • Event02: laat zien hoe u meldingen kunt ontvangen van Windows PowerShell gebeurtenissen die worden gegenereerd op externe computers. Er wordt gebruikgemaakt van de PSEventReceived-gebeurtenis die wordt blootgesteld via de Runspace-klasse.

Voorbeelden van hostingtoepassing

  • Runspace01: laat zien hoe u de PowerShell-klasse gebruikt om de Get-Process cmdlet synchroon uit te voeren. De Get-Process cmdlet retourneert Procesobjecten voor elk proces dat wordt uitgevoerd op de lokale computer.
  • Runspace02: laat zien hoe u de PowerShell-klasse gebruikt om de Get-Process Sort-Object cmdlets en synchroon uit te voeren. De Get-Process cmdlet retourneert Procesobjecten voor elk proces dat wordt uitgevoerd op de lokale computer en de sorteert de objecten op Sort-Object basis van de eigenschap Id. De resultaten van deze opdrachten worden weergegeven met behulp van een DataGridView-besturingselement.
  • Runspace03: laat zien hoe u de PowerShell-klasse gebruikt om een script synchroon uit te voeren en hoe u niet-beëindigingsfouten kunt afhandelen. Het script ontvangt een lijst met procesnamen en haalt deze processen vervolgens op. De resultaten van het script, inclusief eventuele niet-beëindigingsfouten die zijn gegenereerd tijdens het uitvoeren van het script, worden weergegeven in een consolevenster.
  • Runspace04: laat zien hoe u de PowerShell-klasse gebruikt om opdrachten uit te voeren en hoe u beëindigingsfouten kunt ondervangen die optreden bij het uitvoeren van de opdrachten. Er worden twee opdrachten uitgevoerd en de laatste opdracht wordt doorgegeven aan een parameterargument dat ongeldig is. Als gevolg hiervan worden er geen objecten geretourneerd en wordt er een beëindigingsfout opgetreden.
  • Runspace05: laat zien hoe u een module toevoegt aan een InitialSessionState-object, zodat de cmdlet van de module beschikbaar is wanneer de runspace wordt geopend. De module biedt een Get-Proc-cmdlet (gedefinieerd door het GetProcessSample01-voorbeeld) die synchroon wordt uitgevoerd met behulp van een PowerShell-object.
  • Runspace06: laat zien hoe u een module toevoegt aan een InitialSessionState-object, zodat de module wordt geladen wanneer de runspace wordt geopend. De module biedt een Get-Proc-cmdlet (gedefinieerd door het GetProcessSample02-voorbeeld) die synchroon wordt uitgevoerd met behulp van een PowerShell-object.
  • Runspace07: laat zien hoe u een runspace maakt en vervolgens die runspace gebruikt om twee cmdlets synchroon uit te voeren met behulp van een PowerShell-object.
  • Runspace08: laat zien hoe u opdrachten en argumenten toevoegt aan de pijplijn van een PowerShell-object en hoe u de opdrachten synchroon kunt uitvoeren.
  • Runspace09: laat zien hoe u een script toevoegt aan de pijplijn van een PowerShell-object en hoe u het script asynchroon kunt uitvoeren. Gebeurtenissen worden gebruikt om de uitvoer van het script te verwerken.
  • Runspace10: laat zien hoe u een standaard initiële sessietoestand maakt, hoe u een cmdlet toevoegt aan initialSessionState, hoe u een runspace maakt die gebruikmaakt van de initiële sessietoestand en hoe u de opdracht kunt uitvoeren met behulp van een PowerShell-object.
  • Runspace11: laat zien hoe u de klasse ProxyCommand gebruikt om een proxyopdracht te maken die een bestaande cmdlet aanroept, maar de set beschikbare parameters beperkt. De proxyopdracht wordt vervolgens toegevoegd aan een initiële sessietoestand die wordt gebruikt om een beperkte runspace te maken. Dit betekent dat de gebruiker alleen toegang heeft tot de functionaliteit van de cmdlet via de proxyopdracht.
  • PowerShell01: laat zien hoe u een beperkte runspace maakt met behulp van een InitialSessionState-object.
  • PowerShell02: laat zien hoe u een runspacepool gebruikt om meerdere opdrachten tegelijk uit te voeren.

Hostvoorbeelden

  • Host01: laat zien hoe u een hosttoepassing implementeert die gebruikmaakt van een aangepaste host. In dit voorbeeld wordt een runspace gemaakt die gebruikmaakt van de aangepaste host en vervolgens wordt de PowerShell-API gebruikt om een script uit te voeren dat exit aanroept. De hosttoepassing kijkt vervolgens naar de uitvoer van het script en drukt de resultaten af.
  • Host02: laat zien hoe u een hosttoepassing schrijft die gebruikmaakt van de Windows PowerShell runtime, samen met een aangepaste host-implementatie. De hosttoepassing stelt de hostcultuur in op Duits, voert de cmdlet uit en geeft de resultaten weer zoals u ze zou zien met behulp van pwrsh.exe, en drukt vervolgens de huidige gegevens en tijd af in het Get-Process Duits.
  • Host03: laat zien hoe u een interactieve hosttoepassing op basis van een console bouwt die opdrachten leest vanaf de opdrachtregel, de opdrachten uitvoert en vervolgens de resultaten we weergeven in de console.
  • Host04: laat zien hoe u een interactieve hosttoepassing op basis van een console bouwt die opdrachten leest vanaf de opdrachtregel, de opdrachten uitvoert en vervolgens de resultaten we weergeven in de console. Deze hosttoepassing biedt ook ondersteuning voor het weergeven van prompts waarmee de gebruiker meerdere opties kan opgeven.
  • Host05: laat zien hoe u een interactieve hosttoepassing op basis van een console bouwt die opdrachten leest vanaf de opdrachtregel, de opdrachten uitvoert en vervolgens de resultaten we weergeven in de console. Deze hosttoepassing ondersteunt ook aanroepen naar externe computers met behulp van de Enter-PsSession Exit-PsSession cmdlets en .
  • Host06: laat zien hoe u een interactieve hosttoepassing op basis van een console bouwt die opdrachten leest vanaf de opdrachtregel, de opdrachten uitvoert en vervolgens de resultaten we weergeven in de console. Daarnaast gebruikt dit voorbeeld de Tokenizer-API's om de kleur op te geven van de tekst die door de gebruiker wordt ingevoerd.

Voorbeelden van provider

  • AccessDBProviderSample01: toont hoe u een providerklasse declareerd die rechtstreeks is afgeleid van de klasse CmdletProvider. Deze is hier alleen voor volledigheid opgenomen.

  • AccessDBProviderSample02: hier ziet u hoe u de methoden NewDrive en RemoveDrive overschrijft om aanroepen naar de New-PSDrive Remove-PSDrive cmdlets en te ondersteunen. De providerklasse in dit voorbeeld is afgeleid van de klasse DriveCmdletProvider.

  • AccessDBProviderSample03: laat zien hoe u de methoden GetItem en SetItem kunt overschrijven om aanroepen naar de Get-Item Set-Item cmdlets en te ondersteunen. De providerklasse in dit voorbeeld is afgeleid van de klasse ItemCmdletProvider.

  • AccessDBProviderSample04: laat zien hoe u containermethoden kunt overschrijven om aanroepen naar de Copy-Item Get-ChildItem New-Item cmdlets , , en te Remove-Item ondersteunen. Deze methoden moeten worden geïmplementeerd wanneer het gegevensopslag items bevat die containers zijn. Een container is een groep onderliggende items onder een algemeen bovenliggend item. De providerklasse in dit voorbeeld is afgeleid van de klasse ItemCmdletProvider.

  • AccessDBProviderSample05: laat zien hoe u containermethoden kunt overschrijven om aanroepen naar de Move-Item Join-Path cmdlets en te ondersteunen. Deze methoden moeten worden geïmplementeerd wanneer de gebruiker items binnen een container moet verplaatsen en als het gegevensopslag geneste containers bevat. De providerklasse in dit voorbeeld is afgeleid van de klasse NavigationCmdletProvider.

  • AccessDBProviderSample06: toont hoe u inhoudsmethoden overschrijft om aanroepen naar de Clear-Content Get-Content cmdlets , en Set-Content te ondersteunen. Deze methoden moeten worden geïmplementeerd wanneer de gebruiker de inhoud van de items in het gegevensopslag moet beheren. De providerklasse in dit voorbeeld is afgeleid van de klasse NavigationCmdletProvider en implementeert de interface IContentCmdletProvider.