Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op: Windows PowerShell 2.0, Windows PowerShell 3.0
In het volgende onderwerp wordt beschreven hoe u de PowerShell SDK installeert in verschillende versies van Windows.
Windows PowerShell 3.0 SDK voor Windows 8 en Windows Server 2012 installeren
Windows PowerShell 3.0 wordt automatisch geïnstalleerd met Windows 8 en Windows Server 2012. Daarnaast kunt u de referentieassembly's voor Windows PowerShell 3.0 downloaden en installeren als onderdeel van de Windows 8 SDK. Met deze assembly's 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 referentieassembly, in \Program Files (x86)\Reference Assemblies\Microsoft\WindowsPowerShell\3.0. Zie de downloadsite van de Windows 8 SDK voor meer informatie. Windows PowerShell-codevoorbeelden zijn ook beschikbaar in de powershell-sdk-samples opslagplaats.
Referentieassemblies
Referentieassembly's worden standaard op de volgende locatie geïnstalleerd: C:\Program Files\Reference Assemblies\Microsoft\WindowsPowerShell\V1.0.
Notitie
Code die is gecompileerd op basis van de Windows PowerShell 2.0-assembly's, kan niet worden geladen in Windows PowerShell 1.0-installaties. Code die is gecompileerd op basis van de Windows PowerShell 1.0-assembly's, 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\. De volgende secties bevatten 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 ophaalt.
- GetProcessSample02 - Laat zien hoe u parameters toevoegt aan de cmdlet. De cmdlet gebruikt 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-afsluitfouten kunt afhandelen.
- GetProcessSample05 - Laat zien hoe u een lijst met opgegeven processen weergeeft.
- SelectObject - Laat zien hoe u een filter schrijft om alleen bepaalde objecten te selecteren.
- SelectString - Laat zien 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 PassThru-parameter op wanneer ze willen afdwingen dat de cmdlet een object retourneert,
- StopProcessSample02 - Laat zien hoe u een specifiek proces stopt.
- StopProcessSample03 - Laat zien hoe u aliassen kunt declareren voor parameters en hoe u jokertekens kunt ondersteunen.
- StopProcessSample04 - Laat zien hoe u parametersets declareert, het object dat de cmdlet als invoer gebruikt en hoe u de standaardparameter kunt opgeven die moet worden gebruikt.
Voorbeelden voor externe toegang
- 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 runspace-pool maakt en hoe u meerdere opdrachten gelijktijdig uitvoert met behulp van deze pool.
- Serialisatie01 - Laat zien hoe u een bestaande .NET-klasse bekijkt en ervoor zorgt dat informatie uit 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 gegevens uit 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 afgeleide klassen gedeserialiseerd (gerehydrateerd) worden in live .NET-objecten.
Gebeurtenisvoorbeelden
- Event01 - Laat zien hoe u een cmdlet voor gebeurtenisregistratie maakt door te afgeleid van ObjectEventRegistrationBase.
- Event02 - Laat zien hoe u meldingen ontvangt van Windows PowerShell-gebeurtenissen die worden gegenereerd op externe computers. Deze maakt gebruik van de PSEventReceived-gebeurtenis die wordt weergegeven via de Runspace-klasse.
Voorbeelden van hostingtoepassingen
- Runspace01 - Laat zien hoe u de PowerShell-klasse gebruikt om de
Get-Processcmdlet synchroon uit te voeren. De cmdletGet-Processretourneert procesobjecten voor elk proces dat op de lokale computer wordt uitgevoerd. - Runspace02 - Laat zien hoe u de PowerShell-klasse gebruikt om de
Get-ProcessenSort-Objectcmdlets synchroon uit te voeren. De cmdletGet-Processretourneert procesobjecten voor elk proces dat wordt uitgevoerd op de lokale computer en deSort-Objectsorteert de objecten op basis van hun id-eigenschap. 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-afsluitfouten kunt afhandelen. Het script ontvangt een lijst met procesnamen en haalt deze processen vervolgens op. De resultaten van het script, inclusief eventuele niet-afsluitfouten 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 afsluitfouten kunt ondervangen die worden gegenereerd 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 afsluitfout gegenereerd.
- 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) dat 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) dat synchroon wordt uitgevoerd met behulp van een PowerShell-object.
- Runspace07 - Toont 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 uitvoert.
- Runspace09 - Laat zien hoe u een script toevoegt aan de pijplijn van een PowerShell-object en hoe u het script asynchroon uitvoert. Gebeurtenissen worden gebruikt om de uitvoer van het script af te handelen.
- Runspace10 - Laat zien hoe u een standaardstatus van een initiële sessie maakt, hoe u een cmdlet toevoegt aan initialenSessionState, hoe u een runspace maakt die gebruikmaakt van de status van de eerste sessie en hoe u de opdracht uitvoert 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 sessiestatus 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 runspace-pool gebruikt om meerdere opdrachten gelijktijdig 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
exitaanroept. 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
Get-Processcmdlet uit en geeft de resultaten weer zoals u ze zou zien met behulp van pwrsh.exeen vervolgens worden de huidige gegevens en tijd in het Duits afgedrukt. - Host03: laat zien hoe u een interactieve console-hosttoepassing bouwt die opdrachten leest vanaf de opdrachtregel, de opdrachten uitvoert en vervolgens de resultaten weergeeft in de console.
- Host04: laat zien hoe u een interactieve console-hosttoepassing bouwt die opdrachten leest vanaf de opdrachtregel, de opdrachten uitvoert en vervolgens de resultaten weergeeft aan 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 op console gebaseerde hosttoepassing bouwt die opdrachten leest vanaf de opdrachtregel, de opdrachten uitvoert en vervolgens de resultaten weergeeft aan de console. Deze hosttoepassing ondersteunt ook aanroepen naar externe computers met behulp van de
Enter-PSSession- enExit-PSSession-cmdlets. - Host06: laat zien hoe u een interactieve consolegebaseerde hosttoepassing bouwt die opdrachten van de opdrachtregel leest, de opdrachten uitvoert en vervolgens de resultaten weergeeft aan de console. Daarnaast gebruikt dit voorbeeld de Tokenizer-API's om de kleur op te geven van de tekst die door de gebruiker is ingevoerd.
Voorbeelden van providers
AccessDBProviderSample01 - Laat zien hoe u een providerklasse declareert die rechtstreeks is afgeleid van de klasse CmdletProvider. Het is hier alleen opgenomen voor volledigheid.
AccessDBProviderSample02 - Laat zien hoe u de methoden NewDrive en RemoveDrive kunt overschrijven om aanroepen naar de
New-PSDriveenRemove-PSDrivecmdlets te ondersteunen. De providerklasse in dit voorbeeld is afgeleid van de klasse DriveCmdletProvider.AccessDBProviderSample03 - Laat zien hoe u de GetItem- en SetItem-methoden kunt overschrijven om aanroepen naar de
Get-Item- enSet-Item-cmdlets te ondersteunen. De providerklasse in dit voorbeeld is afgeleid van de klasse ItemCmdletProvider.AccessDBProviderSample04 - Laat zien hoe u containermethoden overschrijft om aanroepen naar de
Copy-Item,Get-ChildItem,New-ItemenRemove-Itemcmdlets te ondersteunen. Deze methoden moeten worden geïmplementeerd wanneer het gegevensarchief items bevat die containers zijn. Een container is een groep onderliggende items onder een gemeenschappelijk bovenliggend item. De providerklasse in dit voorbeeld is afgeleid van de klasse ItemCmdletProvider.AccessDBProviderSample05 - Laat zien hoe u containermethoden overschrijft ter ondersteuning van aanroepen naar de
Move-ItemenJoin-Pathcmdlets. Deze methoden moeten worden geïmplementeerd wanneer de gebruiker items in een container moet verplaatsen en als het gegevensarchief geneste containers bevat. De providerklasse in dit voorbeeld is afgeleid van de klasse NavigationCmdletProvider.AccessDBProviderSample06 - Laat zien hoe u inhoudsmethoden overschrijft ter ondersteuning van aanroepen naar de
Clear-Content,Get-ContentenSet-Contentcmdlets. Deze methoden moeten worden geïmplementeerd wanneer de gebruiker de inhoud van de items in het gegevensarchief moet beheren. De providerklasse in dit voorbeeld is afgeleid van de klasse NavigationCmdletProvider en implementeert de interface IContentCmdletProvider.