Installera Windows PowerShell SDK:n
Gäller för: Windows PowerShell 2.0, Windows PowerShell 3.0
I följande avsnitt beskrivs hur du installerar PowerShell SDK på olika versioner av Windows.
Installera Windows PowerShell 3.0 SDK för Windows 8 och Windows Server 2012
Windows PowerShell 3.0 installeras automatiskt med Windows 8 och Windows Server 2012. Dessutom kan du ladda ned och installera referenssammansättningarna för Windows PowerShell 3.0 som en del av Windows 8 SDK. Med dessa sammansättningar kan du skriva cmdlets, providers och värdprogram för Windows PowerShell 3.0. När du installerar Windows SDK för Windows 8 installeras Windows PowerShell-sammansättningar automatiskt i referenssammansättningsmappen i \Program Files (x86)\Reference Assemblies\Microsoft\WindowsPowerShell\3.0 . Mer information finns på nedladdningswebbplatsen Windows 8 SDK. Windows PowerShell kodexempel finns också på lagringsplatsen powershell-sdk-samples.
Installera Windows PowerShell 3.0 SDK för Windows 7 och Windows Server 2008 R2
Windows 7 och Windows Server 2008 R2 har PowerShell 2.0 installerat automatiskt. Dessutom kan du installera PowerShell 3.0 på dessa system. Du kan också installera Windows 8 SDK på Windows 7 och Windows Server 2008 R2 enligt beskrivningen ovan.
Installera Windows PowerShell 2.0 SDK för Windows 7, Vista, XP, Server 2003 och Server 2008
I Windows PowerShell 2.0 SDK finns referenssammansättningar som behövs för att skriva cmdlets, leverantörer och värdprogram, och den innehåller C#-exempelkod som kan användas som startpunkt när du börjar skriva kod.
Referenssammansättningar
Referenssammansättningar installeras på följande plats som standard: c:\Program Files\Reference Assemblies\Microsoft\WindowsPowerShell\V1.0 .
Anteckning
Kod som kompileras mot Windows PowerShell 2.0-sammansättningar kan inte läsas in i Windows PowerShell 1.0-installationer. Kod som kompileras mot Windows PowerShell 1.0-sammansättningar kan dock läsas in i Windows PowerShell 2.0-installationer.
Exempel
Kodexempel installeras på följande plats som standard: C:\Program Files\Microsoft SDKs\Windows\v7.0\Samples\sysmgmt\WindowsPowerShell\ . Följande avsnitt innehåller en kort beskrivning av vad varje exempel gör.
Cmdlet-exempel
- GetProcessSample01 – Visar hur du skriver en enkel cmdlet som hämtar alla processer på den lokala datorn.
- GetProcessSample02 – Visar hur du lägger till parametrar i cmdleten . Cmdleten tar ett eller flera processnamn och returnerar matchande processer.
- GetProcessSample03 – Visar hur du lägger till parametrar som accepterar indata från pipelinen.
- GetProcessSample04 – Visar hur du hanterar icke-avslutande fel.
- GetProcessSample05 – Visar hur du visar en lista över angivna processer.
- SelectObject – Visar hur du skriver ett filter för att välja endast vissa objekt.
- SelectString – Visar hur du söker efter angivna mönster i filer.
- StopProcessSample01 – Visar hur du implementerar en PassThru-parameter och hur du begär användarfeedback via anrop till metoderna ShouldProcess och ShouldContinue. Användare anger PassThru-parametern när de vill tvinga cmdleten att returnera ett objekt,
- StopProcessSample02 – Visar hur du stoppar en specifik process.
- StopProcessSample03 – Visar hur du deklarerar alias för parametrar och hur du stöder jokertecken.
- StopProcessSample04 – Visar hur du deklarerar parameteruppsättningar, objektet som cmdleten tar som indata och hur du anger den standardparameter som ska användas.
Fjärrkommunikationsexempel
- RemoteRunspace01 – Visar hur du skapar ett fjärrkörningsutrymme som används för att upprätta en fjärranslutning.
- RemoteRunspacePool01 – Visar hur du skapar en fjärrkörningspool och hur du kör flera kommandon samtidigt med hjälp av den här poolen.
- Serialisering01 – Visar hur du tittar på en befintlig .NET-klass och ser till att informationen från valda offentliga egenskaper för den här klassen bevaras över serialisering/deserialisering.
- Serialisering02 – Visar hur du tittar på en befintlig .NET-klass och ser till att informationen från instansen av den här klassen bevaras över serialisering/deserialisering när informationen inte är tillgänglig i offentliga egenskaper för klassen.
- Serialisering03 – Visar hur du tittar på en befintlig .NET-klass och ser till att instanser av den här klassen och härledda klasser deserialiseras (rehydreras) till levande .NET-objekt.
Händelseexempel
- Event01 – Visar hur du skapar en cmdlet för händelseregistrering genom att härleda från ObjectEventRegistrationBase.
- Event02 – Visar hur du tar emot meddelanden om Windows PowerShell händelser som genereras på fjärrdatorer. Den använder pseventReceived-händelsen som exponeras via klassen Runspace.
Värdprogramexempel
- Runspace01 – Visar hur du använder PowerShell-klassen för att köra
Get-Processcmdleten synkront.Get-ProcessCmdleten returnerar processobjekt för varje process som körs på den lokala datorn. - Runspace02 – Visar hur du använder PowerShell-klassen för att
Get-ProcessköraSort-Objectcmdletarna och synkront. Cmdleten returnerar processobjekt för varje process som körs på den lokala datorn och sorterarGet-ProcessSort-Objectobjekten baserat på deras ID-egenskap. Resultatet av dessa kommandon visas med hjälp av en DataGridView-kontroll. - Runspace03 – Visar hur du använder PowerShell-klassen för att köra ett skript synkront och hur du hanterar icke-avslutande fel. Skriptet tar emot en lista med processnamn och hämtar sedan dessa processer. Skriptets resultat, inklusive eventuella icke-avslutande fel som genererades när skriptet kördes, visas i ett konsolfönster.
- Runspace04 – Visar hur du använder PowerShell-klassen för att köra kommandon och hur du fångar avslutande fel som uppstår när kommandon körs. Två kommandon körs och det sista kommandot skickas ett parameterargument som inte är giltigt. Därför returneras inga objekt och ett avslutande fel returneras.
- Runspace05 – Visar hur du lägger till en snapin-modulen till ett InitialSessionState-objekt så att snapin-modulens cmdlet är tillgänglig när runspace öppnas. Snapin-modulen innehåller Get-Proc cmdlet (definieras av GetProcessSample01-exemplet) som körs synkront med hjälp av ett PowerShell-objekt.
- Runspace06 – Visar hur du lägger till en modul i ett InitialSessionState-objekt så att modulen läses in när runspace öppnas. Modulen innehåller en Get-Proc cmdlet (definieras av GetProcessSample02-exemplet) som körs synkront med hjälp av ett PowerShell-objekt.
- Runspace07 – Visar hur du skapar ett körningsutrymme och sedan använder det runspace för att köra två cmdlets synkront med hjälp av ett PowerShell-objekt.
- Runspace08 – Visar hur du lägger till kommandon och argument i pipelinen för ett PowerShell-objekt och hur du kör kommandona synkront.
- Runspace09 – Visar hur du lägger till ett skript i pipelinen för ett PowerShell-objekt och hur du kör skriptet asynkront. Händelser används för att hantera utdata från skriptet.
- Runspace10 – Visar hur du skapar ett standardinitierat sessionstillstånd, hur du lägger till en cmdlet i InitialSessionState, hur du skapar ett körningsutrymme som använder det inledande sessionstillståndet och hur du kör kommandot med hjälp av ett PowerShell-objekt.
- Runspace11 – Visar hur du använder klassen ProxyCommand för att skapa ett proxykommando som anropar en befintlig cmdlet, men begränsar uppsättningen tillgängliga parametrar. Proxykommandot läggs sedan till i ett inledande sessionstillstånd som används för att skapa ett begränsat körningsutrymme. Det innebär att användaren endast kan komma åt cmdletens funktioner via proxykommandot.
- PowerShell01 – Visar hur du skapar ett begränsat körningsutrymme med ett InitialSessionState-objekt.
- PowerShell02 – Visar hur du använder en runspace-pool för att köra flera kommandon samtidigt.
Värdexempel
- Host01 – Visar hur du implementerar ett värdprogram som använder en anpassad värd. I det här exemplet skapas ett runspace som använder den anpassade värden och sedan används PowerShell-API:et för att köra ett skript som anropar
exit. Värdprogrammet tittar sedan på skriptets utdata och skriver ut resultatet. - Host02 – Visar hur du skriver ett värdprogram som använder Windows PowerShell runtime tillsammans med en anpassad värdimplementering. Värdprogrammet anger värdkulturen till tyska, kör cmdleten och visar resultatet som du skulle se dem med hjälp av pwrsh.exe och skriver sedan ut aktuella data och tid på
Get-Processtyska. - Host03 – Visar hur du skapar ett interaktivt konsolbaserat värdprogram som läser kommandon från kommandoraden, kör kommandona och sedan visar resultatet för konsolen.
- Host04 – Visar hur du skapar ett interaktivt konsolbaserat värdprogram som läser kommandon från kommandoraden, kör kommandona och sedan visar resultatet för konsolen. Det här värdprogrammet har också stöd för att visa uppmaningar som gör att användaren kan ange flera alternativ.
- Host05 – Visar hur du skapar ett interaktivt konsolbaserat värdprogram som läser kommandon från kommandoraden, kör kommandona och sedan visar resultatet för konsolen. Det här värdprogrammet stöder också anrop till fjärrdatorer med hjälp av
Enter-PsSessionExit-PsSessioncmdletarna och . - Host06 – Visar hur du skapar ett interaktivt konsolbaserat värdprogram som läser kommandon från kommandoraden, kör kommandona och sedan visar resultatet för konsolen. Dessutom använder det här exemplet Tokenizer-API:er för att ange färgen på den text som anges av användaren.
Providerexempel
AccessDBProviderSample01 – Visar hur du deklarerar en providerklass som härleds direkt från klassen CmdletProvider. Den ingår här endast för fullständighet.
AccessDBProviderSample02 – Visar hur du skriver över metoderna NewDrive och RemoveDrive för att stödja anrop till
New-PSDriveRemove-PSDrivecmdletarna och . Providerklassen i det här exemplet härleds från klassen DriveCmdletProvider.AccessDBProviderSample03 – Visar hur du skriver över metoderna GetItem och SetItem för att stödja anrop till
Get-ItemSet-Itemcmdletarna och . Providerklassen i det här exemplet härleds från klassen ItemCmdletProvider.AccessDBProviderSample04 – Visar hur du skriver över containermetoder för att stödja anrop till
Copy-ItemGet-ChildItemNew-Itemcmdletarna , ,Remove-Itemoch . Dessa metoder bör implementeras när datalagret innehåller objekt som är containrar. En container är en grupp med underordnade objekt under ett gemensamt överordnat objekt. Providerklassen i det här exemplet härleds från klassen ItemCmdletProvider.AccessDBProviderSample05 – Visar hur du skriver över containermetoder för att stödja anrop till
Move-ItemJoin-Pathcmdletarna och . Dessa metoder ska implementeras när användaren behöver flytta objekt i en container och om datalagret innehåller kapslade containrar. Providerklassen i det här exemplet härleds från klassen NavigationCmdletProvider.AccessDBProviderSample06 – Visar hur du skriver över innehållsmetoder för att stödja anrop till
Clear-ContentGet-ContentSet-Contentcmdletarna , och . Dessa metoder ska implementeras när användaren behöver hantera innehållet i objekten i datalagret. Providerklassen i det här exemplet härleds från klassen NavigationCmdletProvider och implementerar gränssnittet IContentCmdletProvider.