Vad är nytt med Windows PowerShell 5.0

Windows PowerShell 5.0 innehåller betydande nya funktioner som förlänger användningen, förbättrar användarvänligheten och låter dig kontrollera och hantera Windows-baserade miljöer enklare och mer heltäckande.

Windows PowerShell 5.0 är bakåtkompatibelt. Cmdlets, providers, moduler, snap-ins, skript, funktioner och profiler som designades för Windows PowerShell 4.0, Windows PowerShell 3.0 och Windows PowerShell 2.0 fungerar generellt i Windows PowerShell 5.0 utan ändringar.

Installera Windows PowerShell

Windows PowerShell 5.0 installeras som standard på Windows Server 2016 Technical Preview och Windows 10.

För att installera Windows PowerShell 5.0 på Windows Server 2012 R2, Windows 8.1 Enterprise eller Windows 8.1 Pro, ladda ner och installera Windows Management Framework 5.0. Se till att läsa nedladdningsdetaljerna och uppfylla alla systemkrav innan du installerar Windows Management Framework 5.0.

I det här avsnittet

Windows PowerShell 4.0 uppdateras i november 2014 uppdateringssammanställning (KB 3000850)

Många uppdateringar och förbättringar av Windows PowerShell Desired State Configuration (DSC) i Windows PowerShell 4.0 finns tillgängliga i uppdateringsrullningen från november 2014 för Windows RT 8.1, Windows 8.1 och Windows Server 2012 R2 (KB3000850). Du kan avgöra om KB3000850 är installerat på ditt system genom att köra Get-Hotfix -Id KB3000850 Windows PowerShell.

  • Uppdateringar av befintliga cmdlets i PSDesiredStateConfiguration-modulen

  • Nya cmdlets i PSDesiredStateConfiguration-modulen

  • Språkförbättringar

    • DependsOn stöder nu sammansatta resurser.
    • DependsOn stöder nu nummer i resursinstansnamn.
    • Noduttryck som utvärderar till tomma ger inte längre fel.
    • Ett fel som uppstår om ett noduttryck utvärderar till tomt har åtgärdats.
    • Konfigurationer som anropar konfigurationer fungerar nu i Windows PowerShell-konsol.
  • Pull-lägesförbättringar

    • Pull-läget stöder nu alla ZIP-filer.
    • AllowModuleOverwrite fungerar nu korrekt.
  • Förbättringar av resiliens

    • Nytt DebugMode låter dig ladda om resursmoduler.
    • Om ett konfigurationsfel inträffar raderas inte filen pending.mof.
    • Local Configuration Manager (LCM) är nu mer motståndskraftig när metakonfigurationsinställningar har blivit korrupta.
  • Diagnostikförbättringar

    • En varning visas när LCM ställer in timern till andra inställningar än du har angett.
    • Felloggfiler innehåller nu anropsstacken för Windows PowerShell-resurser.
  • Förbättringar av flexibilitet

    • Resursen LocalConfigurationManager har en ny egenskap, ActionAfterReboot.
      • ContinueConfiguration (standardvärde): Återupptar automatiskt en konfiguration efter att en målnod startats om.
      • StopConfiguration: Återuppta inte automatiskt en konfiguration efter att en nod startats om.
    • En konsistenskörning kan nu inträffa oftare än en PULL-operation, eller tvärtom.
    • Versionshanteringsstöd: DSC kan nu känna igen ett dokument som genererats på en nyare klient (inkluderat i WMF 5.0).
  • Förbättringar av felförebyggande

    • Modulversionen är nu upprätthållen innan en konfiguration tillämpas.
    • DebugPreference är nu korrekt inställd för Get-, Set- eller Test-TargetResource anrop.
  • Förbättringar av behörighetshantering

    • Ett certifikat används nu om både Certificate och PSDscAllowPlainTextPassword är specificerade.
    • Inloggningsuppgifter dekrypteras, även för Get-TargetResource.
    • Metakonfigurationsuppgifter krypteras och dekrypteras.
    • PSCredentials dekrypteras nu när de finns i ett inbäddat objekt.
  • Inbyggda resursförbättringar

    • Paketresursen
      • Installerar inte längre fel paket (varken från lokala eller webbkällor).
      • Stöder nu HTTPS.
    • Det finns nu stöd för HTTPS i paketresursen.
    • Arkivresursen stöder nu inloggningsuppgifter.

Nya funktioner i Windows PowerShell 5.0

Nya funktioner i Windows PowerShell

  • Från och med Windows PowerShell 5.0 kan du utveckla med klasser, formell syntax och semantik som liknar andra objektorienterade programmeringsspråk. Class, Enum och andra nyckelord har lagts till i Windows PowerShell-språket för att stödja den nya funktionen. För mer information om att arbeta med klasser, se about_Classes.

  • Windows PowerShell 5.0 introducerar en ny, strukturerad informationsström som du kan använda för att överföra strukturerad data mellan ett skript och dess anropare (eller värdmiljö). Du kan nu använda Write-Host för att sända ut data till informationsströmmen. Informationsströmmar fungerar också för PowerShell.Streams, jobb, schemalagda jobb och arbetsflöden. Följande funktioner stödjer informationsflödet.

    • En ny Write-Information-cmdlet som låter dig specificera hur Windows PowerShell hanterar informationsströmsdata för ett kommando. Write-Host är ett omslag för Write-Information. Write-Information är också en stödd arbetsflödesaktivitet.
    • Två nya vanliga parametrar, InformationVariable och InformationAction, låter dig bestämma hur informationsströmmar från ett kommando visas. Giltiga värden för InformationAction är SilentlyContinue, Stop, Continue, Inquire, Ignore eller Suspend, där SilentlyContinue är standard. InformationVariable anger en sträng som namnet på en variabel där du vill att Write-Host data från ett kommando ska sparas.
    • En ny preferensvariabel, InformationPreference, specificerar din standardinställning för informationsströmdata i en Windows PowerShell-session. Standardvärdet är SilentlyContinue.
    • Två nya arbetsflödesliknande parametrar, PSInformation och InformationAction, har lagts till.
    • När du använder kommandot Format-Table formateras tabellkolumnerna automatiskt genom att utvärdera de första 300 ms data som passerar genom strömmen.
  • I samarbete med Microsoft Research har en ny cmdlet, ConvertFrom-String, lagts till. ConvertFrom-String låter dig extrahera och analysera strukturerade objekt från innehållet i textsträngar. För mer information, se ConvertFrom-String.

  • En ny Convert-String-cmdlet formaterar automatiskt text baserat på ett exempel som du ger i en -Example parameter.

  • En ny modul, Microsoft.PowerShell.Archive, inkluderar cmdlets som låter dig komprimera filer och mappar till arkivfiler (även kallade ZIP), extrahera filer från befintliga ZIP-filer och uppdatera ZIP-filer med nyare versioner av filer som komprimerats i dem.

  • En ny modul, PackageManagement, låter dig upptäcka och installera mjukvarupaket på Internet. Modulet PackageManagement (tidigare känt som OneGet) är en hanterare eller multiplexer av befintliga pakethanterare (även kallade paketleverantörer) för att förena Windows pakethantering med ett enda Windows PowerShell-gränssnitt.

  • En ny modul, PowerShellGet, låter dig hitta, installera, publicera och uppdatera moduler och DSC-resurser i PowerShell Gallery, eller i ett internt modularkiv som du kan sätta upp genom att köra Register-PSRepository-cmdleten.

  • Ett nytt språknyckelord, Hidden, har lagts till för att specificera att en medlem (en egenskap eller en metod) inte visas som standard i Get-Member resultat (om du inte lägger till parametern -Force). Egenskaper eller metoder som har markerats som dolda visas inte heller i IntelliSense-resultat, om du inte befinner dig i ett sammanhang där medlemmen ska vara synlig; Till exempel bör den automatiska variabeln $This visa dolda medlemmar när den är i klassmetoden.

  • Nytt föremål, Ta bort föremål och Get-ChildItem har förbättrats för att stödja skapandet och hanteringen av symboliska länkar. -ItemType-parametern för New-Item accepterar ett nytt värde, SymbolicLink. Nu kan du skapa symboliska länkar på en enda rad genom att köra New-Item-cmdleten.

  • Get-ChildItem har också en ny -Depth-parameter, som du använder tillsammans med -Recurse-parametern för att begränsa rekursionen. Till exempel returnerar Get-ChildItem -Recurse -Depth 2 resultat från den aktuella mappen, alla barnmappar i den aktuella mappen och alla mappar inom barnmapparna.

  • Copy-Item låter dig nu kopiera filer eller mappar från en Windows PowerShell-session till en annan, vilket innebär att du kan kopiera filer till sessioner som är anslutna till fjärrdatorer (inklusive datorer som kör Nano Server och därför inte har något annat gränssnitt). För att kopiera filer, ange PSSession ID som värdet på de nya -FromSession- och -ToSession-parametrarna, och lägg till -Path och -Destination för att ange ursprungs- respektive destinationsväg. Till exempel Copy-Item -Path c:\myFile.txt -ToSession $s -Destination d:\destinationFolder.

  • Windows PowerShell-transkription har förbättrats för att gälla för alla värdapplikationer (såsom Windows PowerShell ISE) utöver konsolvärden (powershell.exe). Transkriberingsalternativ (inklusive aktivering av systemomfattande transkription) kan konfigureras genom att aktivera inställningen Slå på PowerShell transkriptionsgrupppolicy , som finns i Administrativa mallar/Windows-komponenter/Windows PowerShell.

  • En ny detaljerad skriptspårningsfunktion låter dig aktivera detaljerad spårning och analys av Windows PowerShell-skriptanvändning på ett system. Efter att du aktiverat detaljerad skriptspårning loggar Windows PowerShell alla skriptblock till Event Tracing for Windows (ETW) händelseloggen, Microsoft-Windows-PowerShell/Operational.

  • Från och med Windows PowerShell 5.0 stödjer nya Cryptographic Message Syntax-cmdlets kryptering och dekryptering av innehåll med hjälp av IETF-standardformatet för kryptografiskt skydd av meddelanden, enligt RFC5652. Get-CmsMessage, Protect-CmsMessage och Unprotect-CmsMessage cmdlets har lagts till i Microsoft.PowerShell.Security-modulen .

  • Nya cmdlets i Microsoft.PowerShell.Utility-modulen , Get-Runspace, Debug-Runspace, Get-RunspaceDebug, Enable-RunspaceDebug och Disable-RunspaceDebug, låter dig ställa in felsökningsalternativ på ett runspace och starta och stoppa felsökning på ett runspace. För felsökning av godtyckliga runspaces (det vill säga runspaces som inte är standardrunspace för en Windows PowerShell-konsol eller Windows PowerShell ISE-session) låter Windows PowerShell dig sätta breakpoints i ett skript, och med tillägg stoppar de skriptet tills du kan bifoga en debugger för att felsöka runspace-skriptet. Stöd för nästlad felsökning för godtyckliga runspaces har lagts till i Windows PowerShell-skriptdebugger för runspaces.

  • En ny Format-Hex-cmdlet har lagts till i Microsoft.PowerShell.Utility-modulen . Format-Hex låter dig visa text eller binär data i hexadecimalt format.

  • Get-Clipboard och Set-Clipboard cmdlets har lagts till i Microsoft.PowerShell.Utility-modulen ; de underlättar överföringen av innehåll till och från en Windows PowerShell-session. Urklippsmenyn stödjer bilder, ljudfiler, fillistor och text.

  • En ny cmdlet, Clear-RecycleBin, har lagts till i Microsoft.PowerShell.Management-modulen ; denna cmdlet tömmer återvinningsbehållaren för en fast enhet, som inkluderar externa enheter. Som standard ombeds du bekräfta ett Clear-RecycleBin-kommando, eftersom egenskapen ConfirmImpact för cmdleten är inställd på ConfirmImpact.High.

  • En ny cmdlet, New-TemporaryFile, låter dig skapa en tillfällig fil som en del av skriptningen. Som standard skapas den nya temporära filen i C:\Users\<user name>\AppData\Local\Temp.

  • Utfil-, Add-Content- och Set-Content-cmdlets har nu en ny -NoNewline-parameter, som utelämnar en ny rad efter utdatan.

  • Cmdleten New-Guid använder .NET Framework Guid-klassen för att generera en GUID, användbar när du skriver skript eller DSC-resurser.

  • Eftersom filversionsinformation kan vara missvisande, särskilt efter att en fil har patchats, finns nya skriptegenskaper för FileVersionRaw och ProductVersionRaw tillgängliga för FileInfo-objekt. Till exempel kan du köra följande kommando för att visa värdena för dessa egenskaper för powershell.exe, där $pid innehåller process-ID för en körande session av Windows PowerShell: Get-Process -Id $pid -FileVersionInfo | Format-List *version* -Force

  • Nya cmdlets Enter-PSHostProcess och Exit-PSHostProcess låter dig felsöka Windows PowerShell-skript i processer som är separata från den nuvarande processen som körs i Windows PowerShell-konsolen. Kör Enter-PSHostProcess för att mata in eller koppla till ett specifikt process-ID, och kör sedan Get-Runspace för att returnera de aktiva runspaces inom processen. Kör Exit-PSHostProcess för att koppla bort från processen när du är klar med felsökningen av skriptet inom processen.

  • En ny Wait-Debugger-cmdlet har lagts till i Microsoft.PowerShell.Utility-modulen . Du kan köra Wait-Debugger för att stoppa ett skript i felsökaren innan du kör nästa sats i skriptet.

  • Windows PowerShell Workflow-felsökaren stöder nu kommando- eller tabb-komplettering, och du kan felsöka nästlade arbetsflödesfunktioner. Du kan nu trycka på Ctrl+Break för att mata in felsökaren i ett körande skript, både i lokala och fjärrsessioner, samt i ett arbetsflödesskript.

  • En Debug-Job cmdlet har lagts till i Microsoft.PowerShell.Core-modulen för att felsöka jobbskript som körs för Windows PowerShell Workflow, bakgrund och jobb som körs i fjärrsessioner.

  • Ett nytt tillstånd, AtBreakpoint, har lagts till för Windows PowerShell-jobb. AtBreakpoint-tillståndet gäller när ett jobb kör ett skript som inkluderar fasta brytpunkter, och skriptet har nått en brytpunkt. När ett jobb stannar vid en felsökningsbrytpunkt måste du felsöka jobbet genom att köra Debug-Job-cmdlet.

  • Windows PowerShell 5.0 implementerar stöd för flera versioner av en enda Windows PowerShell-modul i samma mapp i $PSModulePath. En egenskap RequiredVersion har lagts till i klassen ModuleSpecification för att hjälpa dig få önskad version av en modul; denna egenskap är ömsesidigt uteslutande med egenskapen ModuleVersion. RequiredVersion stöds nu som en del av värdet i parametern FullyQualifiedName för cmdlets Get-Module, Import-Module och Remove-Module.

  • Du kan nu utföra modulversionsvalidering genom att köra Test-ModuleManifest-cmdlet.

  • Resultaten från Get-Command-cmdleten visar nu en versionskolumn; en ny Version-egenskap har lagts till i klassen CommandInfo. Get-Command visar kommandon från flera versioner av samma modul. Versionsegenskapen är också en del av härledda klasser av CmdletInfo: CmdletInfo och ApplicationInfo.

  • Get-Command har en ny parameter, -ShowCommandInfo, som returnerar ShowCommand-information som PSObjects. Detta är särskilt användbar funktionalitet när Show-Command körs i Windows PowerShell ISE med Windows PowerShell fjärrkontroll. Parametern -ShowCommandInfo ersätter den befintliga Get-SerializedCommand-funktionen i Microsoft.PowerShell.Utility-modulen, men Get-SerializedCommand-skriptet finns fortfarande tillgängligt för att stödja nednivåskriptning.

  • En ny Get-ItemPropertyValue-cmdlet låter dig få värdet på en egenskap utan att använda punktnotation. Till exempel kan du i äldre versioner av Windows PowerShell köra följande kommando för att få värdet av egenskapen Application Base i PowerShellEngine-registernyckeln: (Get-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\PowerShell\3\PowerShellEngine -Name ApplicationBase). ApplicationBase. Från och med Windows PowerShell 5.0 kan du köra Get-ItemPropertyValue -Path HKLM:\SOFTWARE\Microsoft\PowerShell\3\PowerShellEngine -Name ApplicationBase.

  • Windows PowerShell-konsolen använder nu syntaxfärgning, precis som i Windows PowerShell ISE.

  • En ny NetworkSwitch-modul innehåller cmdlets som gör det möjligt att applicera switch, virtuellt LAN (VLAN) och grundläggande lager 2-nätverksswitchportkonfiguration på Windows Server 2012 R2-logocertifierade nätverksswitchar.

  • Parametern FullyQualifiedName har lagts till i Import-Module och Remove-Module cmdlets, för att stödja lagring av flera versioner av en enda modul.

  • Save-Help, Update-Help, Import-PSSession, Export-PSSesion och Get-Command har en ny parameter, FullQualifiedModule, av typen ModuleSpecification. Lägg till denna parameter för att specificera en modul med dess fullt kvalificerade namn.

  • Värdet på $PSVersionTable.PSVersion har uppdaterats till 5.0.

  • WMF 5.0 (PowerShell 5.0) inkluderar Pester-modulen . Pester är ett enhetstestningsramverk för PowerShell. Den innehåller några lättanvända nyckelord som låter dig skapa tester för dina skript.

Nya funktioner i Windows PowerShell önskad tillståndskonfiguration

  • Windows PowerShell-språkförbättringar låter dig definiera Windows PowerShell Desired State Configuration (DSC)-resurser med hjälp av klasser. Import-DscResource är nu ett verkligt dynamiskt nyckelord; Windows PowerShell tolkar den angivna modulens rotmodul och söker efter klasser som innehåller attributet DscResource. Du kan nu använda klasser för att definiera DSC-resurser, där varken en MOF-fil eller en DSCResource-undermapp i modulmappen krävs. En Windows PowerShell-modulfil kan innehålla flera DSC-resursklasser.
  • En ny parameter, ThrottleLimit, har lagts till följande cmdlets i PSDesiredStateConfiguration-modulen. Lägg till parametern ThrottleLimit för att specificera antalet måldatorer eller enheter som du vill att kommandot ska fungera på samtidigt.
    • Get-DscConfiguration
    • Get-DscConfigurationStatus
    • Get-DscLocalConfigurationManager
    • Restore-DscConfiguration
    • Test-DscConfiguration
    • Compare-DscConfiguration
    • Publish-DscConfiguration
    • Set-DscLocalConfigurationManager
    • Start-DscConfiguration
    • Update-DscConfiguration
  • Med centraliserad DSC-felrapportering loggas rik felinformation inte bara i händelseloggen, utan kan också skickas till en central plats för senare analys. Du kan använda denna centrala plats för att lagra DSC-konfigurationsfel som har uppstått för vilken server som helst i deras miljö. Efter att rapportservern har definierats i metakonfigurationen skickas alla fel till rapportservern och lagras sedan i en databas. Du kan ställa in denna funktionalitet oavsett om en målnod är konfigurerad för att hämta konfigurationer från en pull-server eller inte.
  • Förbättringar av Windows PowerShell ISE underlättar DSC-resursförfattning. Du kan nu göra följande.
    • Lista alla DSC-resurser inom en konfigurations - eller nodblock genom att ange Ctrl+Mellanslag på en tom rad inom blocket.
    • Automatisk komplettering av resursegenskaper för uppräkningstypen .
    • Automatisk komplettering på egenskapen DependsOn för DSC-resurser, baserat på andra resursinstanser i konfigurationen.
    • Förbättrad fyllning av resursvärden på fliken.
  • En användare kan nu köra en resurs under en specificerad uppsättning referensuppgifter genom att lägga till attributet PSDscRunAsCredential i ett Node-block. Till exempel är PSDscRunAsCredential = Get-Credential Contoso\DscUser. Denna funktionalitet är användbar för att skapa konfigurationer som kör Windows Installer och körbara installationsfiler, komma åt registret per användare, eller utföra andra uppgifter utanför den aktuella användarkontexten.
  • 32-bitars (x86-baserat) stöd har lagts till för nyckelordet Konfiguration .
  • Windows PowerShell inkluderar nu stöd för anpassad hjälp för DSC-konfigurationer, definierat genom att lägga till [CmdletBinding()] i den genererade konfigurationsfunktionen.
  • Ett nytt attribut DscLocalConfigurationManager betecknar ett konfigurationsblock som en meta-konfiguration, vilket används för att konfigurera DSC Local Configuration Manager. Denna attribut begränsar en konfiguration till att endast innehålla objekt som konfigurerar DSC Local Configuration Manager. Under bearbetningen genererar denna konfiguration en *.meta.mof-fil som sedan skickas till lämpliga målnoder genom att köra Set-DscLocalConfigurationManager-cmdleten.
  • Delkonfigurationer är nu tillåtna i Windows PowerShell 5.0. Du kan leverera konfigurationsdokument till en nod i fragment. För att en nod ska ta emot flera fragment av ett konfigurationsdokument måste nodens Local Configuration Manager först ställas in för att specificera de förväntade fragmenten
  • Datoröverskridande synkronisering är nytt i DSC i Windows PowerShell 5.0. med de inbyggda WaitFor*-resurserna (WaitForAll, WaitForAny och WaitForSome) kan du nu ange beroenden mellan datorer under konfigurationskörningar, utan externa orkestreringar. Dessa resurser tillhandahåller nod-till-nod-synkronisering med hjälp av CIM-anslutningar över WS-Man-protokollet. En konfiguration kan vänta på att en annan dators specifika resursstatus ska ändras.
  • Just Enough Administration (JEA), en ny delegeringssäkerhetsfunktion, utnyttjar DSC- och Windows PowerShell-begränsade runspaces för att hjälpa företag att skydda från dataförlust eller kompromettering av anställda, oavsett om det är avsiktligt eller oavsiktligt. För mer information om JEA, inklusive var du kan ladda ner xJEA DSC-resursen, se Just Enough Administration.
  • Följande nya cmdlets har lagts till PSDesiredStateConfiguration-modulen.
    • En ny Get-DscConfigurationStatus-cmdlet får övergripande information om konfigurationsstatus från en målnod. Du kan få status på den sista, eller alla konfigurationer.
    • En ny Compare-DscConfiguration-cmdlet jämför en specificerad konfiguration med det faktiska tillståndet för en eller flera målnoder.
    • En ny Publish-DscConfiguration-cmdlet kopierar en konfigurations-MOF-fil till en målnod, men tillämpar inte konfigurationen. Konfigurationen appliceras under nästa konsistenspass, eller när du kör Update-DscConfiguration-cmdleten.
    • En ny Test-DscConfiguration-cmdlet låter dig verifiera att en resulterande konfiguration matchar önskad konfiguration, och returnera antingen True om konfigurationen matchar önskad konfiguration, eller False om den faktiska konfigurationen inte stämmer överens.
    • En ny Update-DscConfiguration cmdlet tvingar en konfiguration att bearbetas. Om Local Configuration Manager är i pull-läge hämtar cmdleten konfigurationen från pull-servern innan den appliceras.

Nya funktioner i Windows PowerShell ISE

  • Du kan nu redigera fjärrskript och filer för Windows PowerShell i en lokal kopia av Windows PowerShell ISE, genom att köra Enter-PSSession för att starta en fjärrsession på datorn som lagrar filerna du vill redigera, och sedan köra PSEdit-sökväg <och filnamn på den fjärrdatorn>. Denna funktion underlättar redigering av Windows PowerShell-filer som lagras i Server Core-installationsalternativet i Windows Server, där Windows PowerShell ISE inte kan köras.
  • Cmdleten Start-Transcript stöds nu i Windows PowerShell ISE.
  • Du kan nu felsöka fjärrskript i Windows PowerShell ISE.
  • Ett nytt menykommando, Break All (Ctrl+B), bryter sig in i felsökaren för både lokala och fjärrkörande skript.

Nya funktioner i Windows PowerShell Web Services (Management OData IIS Extension)

  • Från och med Windows PowerShell 5.0 kan du generera en uppsättning Windows PowerShell-cmdlets baserade på funktionaliteten som exponeras av en given OData-endpoint, genom att köra Export-ODataEndpointProxy-cmdleten som finns i den nya Microsoft.PowerShell.OdataUtils-modulen .

Anmärkningsvärda buggfixar i Windows PowerShell 5.0

  • Windows PowerShell 5.0 inkluderar en ny COM-implementation, som ger betydande prestandaförbättringar när du arbetar med COM-objekt.
  • Betydande prestandaförbättringar har gjorts för första tab-slutförandet i en Windows PowerShell-session, vilket förkortar tabb-slutförandetiden med nästan 500 ms.

Nya funktioner i Windows PowerShell 4.0

Windows PowerShell 4.0 är bakåtkompatibelt. Cmdlets, providers, moduler, snap-ins, skript, funktioner och profiler som designades för Windows PowerShell 3.0 och Windows PowerShell 2.0 fungerar i Windows PowerShell 4.0 utan ändringar.

Windows PowerShell 4.0 installeras som standard på Windows 8.1 och Windows Server 2012 R2. För att installera Windows PowerShell 4.0 på Windows 7 med SP1, eller Windows Server 2008 R2, ladda ner och installera Windows Management Framework 4.0. Se till att läsa nedladdningsdetaljerna och uppfylla alla systemkrav innan du installerar Windows Management Framework 4.0.

Windows PowerShell 4.0 innehåller följande nya funktioner.

Nya funktioner i Windows PowerShell

  • Windows PowerShell Desired State Configuration (DSC) är ett nytt hanteringssystem i Windows PowerShell 4.0 som möjliggör distribution och hantering av konfigurationsdata för mjukvarutjänster och miljön där dessa tjänster körs. För mer information om DSC, se Kom igång med Windows PowerShell Desired State Configuration.
  • Save-Help låter dig nu spara hjälp för moduler som installeras på fjärrdatorer. Du kan använda Save-Help för att ladda ner modulen Hjälp från en internetansluten klient (där inte alla moduler du vill ha hjälp till nödvändigtvis är installerade), och sedan kopiera den sparade hjälpen till en fjärrdelad mapp eller en fjärrdator som inte har internetåtkomst.
  • Windows PowerShell-felsökningen har förbättrats för att möjliggöra felsökning av Windows PowerShell-arbetsflöden samt skript som körs på fjärrdatorer. Windows PowerShell-arbetsflöden kan nu felsökas på skriptnivå från antingen Windows PowerShell-kommandoraden eller Windows PowerShell ISE. Windows PowerShell-skript, inklusive skriptarbetsflöden, kan nu felsökas över fjärrsessioner. Fjärrfelsökningssessioner bevaras över Windows PowerShell-fjärrsessioner som kopplas bort och sedan kopplas ihop igen.
  • En RunNow-parameter för Register-ScheduledJob och Set-ScheduledJob eliminerar behovet av att sätta ett omedelbart startdatum och tid för jobb med hjälp av Trigger-parametern .
  • Invoke-RestMethod och Invoke-WebRequest låter dig nu ställa in alla headers med parametern Headers. Även om denna parameter alltid har funnits, var den en av flera parametrar för webb-cmdlets som resulterade i undantag eller fel.
  • Get-Module har en ny parameter, FullQualifiedName, av typen ModuleSpecification[]. Parametern FullyQualifiedNameGet-Module låter dig nu specificera en modul med modulens namn, version och eventuellt dess GUID.
  • Standardinställningen för exekveringspolicy på Windows Server 2012 R2 är RemoteSigned. På Windows 8.1 sker ingen ändring i standardinställningen.
  • Från och med Windows PowerShell 4.0 stöds metodanrop med dynamiska metodnamn. Du kan använda en variabel för att lagra ett metodnamn och sedan dynamiskt anropa metoden genom att anropa variabeln.
  • Asynkrona arbetsflödesjobb raderas inte längre när den time-out-period som anges av PSElapsedTimeoutSec-arbetsflödets gemensamma parameter har passerat.
  • En ny parameter, RepeatIndefinitely, har lagts till i cmdletarna New-JobTrigger och Set-JobTrigger . Detta eliminerar behovet av att ange ett TimeSpan.MaxValue-värde för parametern RepetitionDuration för att köra ett schemalagt jobb upprepade gånger under en obestämd period.
  • En Passthru-parameter har lagts till i cmdletarna Enable-JobTrigger och Disable-JobTrigger . Passthru-parametern visar alla objekt som skapas eller modifieras av ditt kommando.
  • Parameternamnen för att specificera en arbetsgrupp i Add-Computer- och Remove-Computer-cmdletarna är nu konsekventa. Båda cmdletarna använder nu parametern WorkgroupName.
  • En ny gemensam parameter, PipelineVariable, har lagts till. PipelineVariable låter dig spara resultaten av ett pipat kommando (eller en del av ett pipat kommando) som en variabel som kan skickas genom resten av pipelinen.
  • Samlingsfiltrering med metodsyntax stöds nu. Detta innebär att du nu kan filtrera en samling objekt med förenklad syntax, liknande den för Where() eller Where-Object, formaterad som ett metodanrop. Följande är ett exempel: (Get-Process).where({$_. Namn -match 'powershell'})
  • Get-Process-cmdleten har en ny switchparameter, IncludeUserName.
  • En ny cmdlet, Get-FileHash, som returnerar en filhash i ett av flera format för en specificerad fil, har lagts till.
  • I Windows PowerShell 4.0, om en modul använder DefaultCommandPrefix-nyckeln i sitt manifest, eller om användaren importerar en modul med Prefix-parametern , visar egenskapen ExportedCommands för modulen kommandona i modulen med prefixet. När du kör kommandona med den modulkvalificerade syntaxen ModuleName\CommandName måste kommandonamnen inkludera prefixet.
  • Värdet på $PSVersionTable.PSVersion har uppdaterats till 4.0.
  • Där() operatörens beteende har förändrats. Collection.Where('property -match name') att acceptera ett stränguttryck i formatet "Property -CompareOperator Value" stöds inte längre. Däremot accepterar Where() -operatorn stränguttryck i formatet av ett skriptblock; Detta stöds fortfarande.

Nya funktioner i Windows PowerShell Integrated Scripting Environment (ISE)

  • Windows PowerShell ISE stöder både felsökning av Windows PowerShell Workflow och fjärrskriptfelsökning.
  • IntelliSense-stöd har lagts till för Windows PowerShell Desired State Configuration-leverantörer och konfigurationer.

Nya funktioner i Windows PowerShell Workflow

  • Stöd har lagts till för en ny PipelineVariable-gemensam parameter i samband med iterativa pipelines, såsom de som används av System Center Orchestrator; det vill säga, pipelines som kör kommandon helt enkelt från vänster till höger, till skillnad från att köra mellan dem med streaming.
  • Parameterbindning har förbättrats avsevärt för att fungera utanför tab-completion scenarion, till exempel med kommandon som inte finns i det aktuella runspacet.
  • Stöd för anpassade containeraktiviteter har lagts till i Windows PowerShell Workflow. Om en aktivitetsparameter är av typen Activity, Activity[] (eller är en generisk samling aktiviteter) och användaren har tillhandahållit ett skriptblock som argument, konverterar Windows PowerShell Workflow skriptblocket till XAML, precis som vid vanlig Windows PowerShell-skript-till-arbetsflöde-kompilering.
  • Efter en krasch återansluter Windows PowerShell Workflow automatiskt till hanterade noder.
  • Du kan nu strypa Foreach -Parallel activity-satser med egenskapen ThrottleLimit .
  • ErrorActions gemensamma parameter har ett nytt giltigt värde, Suspend, som är exklusivt för arbetsflöden.
  • En arbetsflödesendpoint stängs nu automatiskt om det inte finns några aktiva sessioner, inga pågående jobb och inga väntande jobb. Denna funktion sparar resurser på datorn som fungerar som arbetsflödesserver när de automatiska stängningsvillkoren har uppfyllts.

Nya funktioner i Windows PowerShell Web Services

  • När ett fel uppstår i Windows PowerShell Web Services (PSWS, även kallat Management OData IIS Extension), medan en cmdlet körs, returneras mer detaljerade felmeddelanden till anroparen. Dessutom följer felkoderna Windows Azure REST API:s felkodsriktlinjer.
  • En endpoint kan nu definiera API-versionen samt upprätthålla användningen av en specifik API-version. När versionsavvikelser uppstår mellan klient och server visas fel både för klienten och servern.
  • Hanteringen av dispatchschemat har förenklats genom att automatiskt generera värden för eventuella saknade fält i schemat. Generering sker som en hjälpsam startpunkt, även om dispatch-schemat inte existerar.
  • Typhantering i PSWS har förbättrats för att stödja typer som använder en annan konstruktör än standardkonstruktören, genom att bete sig liknande PSTypeConverter i Windows PowerShell. Detta låter dig använda komplexa typer med PSWS.
  • PSWS tillåter nu att expandera en associerad instans medan en fråga körs. För större binärt innehåll (såsom bilder, ljud eller video) är överföringskostnaden betydande, och det är bättre att överföra binär data utan kodning. PSWS använder namngivna resursströmmar för överföring utan kodning. Den namngivna resursströmmen är en egenskap hos en enhet av typen Edm.Stream . Varje namngiven resursström har en separat URI för GET- eller UPDATE-operationer.
  • OData-åtgärder tillhandahåller nu en mekanism för att anropa icke-CRUD (Skapa, Läsa, Uppdatera och Radera) metoder på en resurs. Du kan anropa en åtgärd genom att skicka en HTTP POST-förfrågan till den URI som är definierad för åtgärden. Parametrarna för åtgärden definieras i POST-förfrågan.
  • För att vara i linje med Windows Azures riktlinjer bör alla URL:er förenklas. En ändring som ingår i Key As Segment gör det möjligt att representera enskilda nycklar som segment. Observera att referenser som använder flera nyckelvärden kräver kommaseparerade värden i parentesnotation, som tidigare.
  • Före denna release av PSWS var det enda sättet att utföra Skapa, Uppdatera eller Radera operationer att anropa Post, Put eller Delete på en toppnivåresurs. Nytt i denna version av PSWS är att Contained Resource operations låter användare uppnå samma resultat samtidigt som de når samma resurs mindre direkt, och närmar sig som om dessa resurser vore innehållna.

Nya funktioner i Windows PowerShell Web Access

  • Du kan koppla bort och återansluta till befintliga sessioner i den webbaserade Windows PowerShell Web Access-konsolen. En Spara-knapp i webbkonsolen låter dig koppla bort en session utan att ta bort den och återansluta till sessionen en annan gång.
  • Standardparametrar kan visas på inloggningssidan. För att visa standardparametrar, konfigurera värden för alla inställningar som visas i området Optional Connection Settings på inloggningssidan i en fil som heterweb.config. Du kan använda filenweb.config för att konfigurera alla valfria anslutningsinställningar förutom en andra eller alternativ uppsättning legitimationsuppgifter.
  • I Windows Server 2012 R2 kan du fjärrstyra auktoriseringsregler för Windows PowerShell Web Access. Add-PswaAuthorizationRule och Test-PswaAuthorizationRule-cmdlets inkluderar nu en Credential-parameter som gör det möjligt för administratörer att hantera auktoriseringsregler från en fjärrdator eller i en Windows PowerShell Web Access-session.
  • Du kan nu ha flera Windows PowerShell Web Access-sessioner i en enda webbläsarsession genom att använda en ny webbläsarflik för varje session. Du behöver inte längre öppna en ny webbläsarsession för att ansluta till en ny session i den webbaserade Windows PowerShell-konsolen.

Anmärkningsvärda buggfixar i Windows PowerShell 4.0

  • Get-Counter kan nu returnera räknare som innehåller apostroftecken i franska Windows-utgåvor.
  • Du kan nu se GetType-metoden på deserialiserade objekt.
  • #Requires uttalanden låter nu användare kräva administratörsbehörighet om det behövs.
  • Import-Csv-cmdleten ignorerar nu tomma rader.
  • Ett problem där Windows PowerShell ISE använder för mycket minne när du kör ett Invoke-WebRequest-kommando har blivit åtgärdat.
  • Get-Module visar nu modulversioner i en versionskolumn .
  • Remove-Item -Recurse tar nu bort objekt från undermappar som förväntat.
  • En egenskap UserName har lagts till i Get-Process-utdataobjekt .
  • Call-RestMethod-cmdleten returnerar nu alla tillgängliga resultat.
  • Add-Member påverkar nu hashtabeller, även om hashtabellerna ännu inte har öppnats.
  • Select-Object -Expanda misslyckas inte längre eller genererar ett undantag om värdet på egenskapen är null eller tomt.
  • Get-Process kan nu användas i en pipeline med andra kommandon som hämtar egenskapen ComputerName från objekt.
  • ConvertTo-Json och ConvertFrom-Json kan nu acceptera termer inom dubbla citattecken, och dess felmeddelanden är nu lokaliserbara.
  • Get-Job returnerar nu alla slutförda schemalagda jobb, även i nya sessioner.
  • Problem med montering och avmontering av VHD:er med filsystemleverantören i Windows PowerShell 4.0 har åtgärdats. Windows PowerShell kan nu upptäcka nya enheter när de monteras i samma session.
  • Du behöver inte längre explicit ladda in schemalagda jobb- eller arbetsflödesmoduler för att arbeta med deras jobbtyper.
  • Prestandaförbättringar har gjorts i processen att importera arbetsflöden som definierar nästlade arbetsflöden; Denna process går nu snabbare.

Nya funktioner i Windows PowerShell 3.0

Windows PowerShell 3.0 innehåller följande nya funktioner.

Windows PowerShell arbetsflöde

Windows PowerShell Workflow tillför kraften från Windows Workflow Foundation till Windows PowerShell. Du kan skriva arbetsflöden i XAML eller i Windows PowerShell-språket och köra dem precis som du skulle köra en cmdlet. Cmdleten Get-Command får arbetsflödeskommandon och cmdleten Get-Help får hjälp för arbetsflöden.

Arbetsflöden är sekvenser av multidatorhanteringsaktiviteter som är långvariga, upprepbara, frekventa, parallelliserbara, avbrottsbara, pausbara och omstartbara. Arbetsflöden kan återupptas vid avsiktliga eller oavsiktliga avbrott, såsom nätverksavbrott, omstart av Windows eller strömavbrott.

Arbetsflöden är också portabla; de kan exporteras som eller importeras från XAML-filer. Du kan skriva anpassade sessionskonfigurationer som tillåter arbetsflöde eller aktiviteter i ett arbetsflöde att köras av delegerade eller underordnade användare.

Följande är fördelarna med Windows PowerShell Workflow

  • Automatisering av sekvenserade, långvariga uppgifter.
  • Fjärrövervakning av långvariga uppgifter. Status och framsteg i aktiviteterna är synliga när som helst.
  • Multidatorhantering. Kör samtidigt uppgifter som arbetsflöden på hundratals hanterade noder. Windows PowerShell Workflow innehåller ett inbyggt bibliotek med vanliga hanteringsparametrar, såsom PSComputerName, som möjliggör scenarier för hantering av flera datorer.
  • En enda uppgift för utförande av komplexa processer. Du kan kombinera relaterade skript som implementerar ett helt end-to-end-scenario i ett enda arbetsflöde.
  • Persistens.: ett arbetsflöde sparas (eller checkpointas) vid specifika punkter definierade av dess författare så att du kan återuppta arbetsflödet från den senaste persisterade uppgiften (eller kontrollpunkten), istället för att starta om arbetsflödet från början.
  • Robusthet. Automatiserad felåterställning. Arbetsflöden överlever både planerade och oplanerade omstarter. Du kan pausa arbetsflödeskörningen och sedan återuppta arbetsflödet från den senaste persistenspunkten. Arbetsflödesförfattare kan utse specifika aktiviteter som ska köras om vid fel på en eller flera hanterade noder.
  • Möjlighet att koppla bort, återansluta och köra i avkopplade sessioner. Användare kan ansluta och koppla bort från arbetsflödesservern, men arbetsflödet körs kontinuerligt. Du kan logga ut från klientdatorn eller starta om klientdatorn och övervaka arbetsflödeskörningen från en annan dator utan att avbryta arbetsflödet.
  • Schemaläggning. Arbetsflödesuppgifter kan schemaläggas som vilken Windows PowerShell-cmdlet eller skript som helst.
  • Arbetsflöde och anslutningsbegränsning. Arbetsflödeskörning och anslutningar till noder kan begränsas, vilket möjliggör skalbarhet och högtillgängliga scenarier.

Windows PowerShell-webbåtkomst

Windows PowerShell Web Access är en funktion i Windows Server 2012 som låter användare köra Windows PowerShell-kommandon och skript i en webbaserad konsol. Enheter som använder den webbaserade konsolen kräver inte Windows PowerShell, fjärrhanteringsprogramvara eller webbläsartillägg. Allt som krävs är en korrekt konfigurerad Windows PowerShell Web Access-gateway och en klientwebbläsare som stödjer JavaScript och accepterar cookies.

För mer information, se Deploy Windows PowerShell Web Access.

Nya Windows PowerShell ISE-funktioner

För Windows PowerShell 3.0 har Windows PowerShell Integrated Scripting Environment (ISE) många nya funktioner, inklusive IntelliSense, Show-Command fönster, en enhetlig konsolpanel, utdrag, parentesmatchning, expand-collapse-sektioner, autosparning, lista över senaste objekt, rik kopia, blockkopia och fullt stöd för att skriva Windows PowerShell-skriptarbetsflöden. För mer information, se about_Windows_PowerShell_ISE.

Stöd för Microsoft .NET Framework 4

Windows PowerShell är byggt mot Common Language Runtime 4.0. Cmdlet-, skript- och arbetsflödesutvecklare kan använda de nya Microsoft .NET Framework 4-klasserna i Windows PowerShell, med funktioner som Application Compatibility and Deployment, Managed Extensibility Framework, Parallel Computing, Networking, Windows Communication Foundation och Windows Workflow Foundation.

Stöd för Windows förinstallationsmiljö

Windows PowerShell 3.0 är en valfri komponent i Windows Preinstallation Environment (Windows PE) 4.0 för Windows 8. Windows PE är ett minimalt operativsystem som startar en dator utan operativsystem och förbereder den för Windows-installation. Windows PE kan användas för att partitionera och formatera hårddiskar, kopiera diskavbildningar till en dator och initiera Windows Setup från en nätverksdelning. Windows PowerShell 3.0 kan användas på Windows PE för att hantera distribution, diagnostik och återställningsscenarier.

Frånkopplade sessioner

Från och med Windows PowerShell 3.0 sparas persistenta användarhanterade sessioner ("PSSessions") som du skapar med New-PSSession-cmdleten på fjärrdatorn. De är inte längre beroende av den session där de skapades.

Du kan nu koppla bort en session utan att störa kommandona som körs i sessionen. Du kan stänga sessionen och stänga av din dator. Senare kan du återansluta till sessionen från en annan session på samma eller på en annan dator.

ComputerName-parametern i cmdleten hämtar Get-PSSession nu alla användarens sessioner som ansluter till datorn, även om de startades i en annan session på en annan dator. Du kan ansluta till sessionerna, få kommandoresultat, starta nya kommandon och sedan koppla bort sessionen.

Nya cmdlets har lagts till för att stödja Disconnected Sessions-funktionen, inklusive Disconnect-PSSession, Connect-PSSession, och Receive-PSSession, och nya parametrar har lagts till cmdlets som hanterar PSSessions, såsom parametern InDisconnectedSession för Invoke-Command cmdleten.

Funktionen Disconnected Sessions stöds endast när datorerna på både den ursprungliga ("klienten") och den avslutande ("server") änden av anslutningen kör Windows PowerShell 3.0.

Robust sessionsanslutning

Windows PowerShell 3.0 upptäcker oväntade kopplingsförluster mellan klient och server och försöker återupprätta anslutningen och återuppta exekveringen automatiskt. Om klient-server-anslutningen inte kan återupprättas inom den tilldelade tiden meddelas användaren och sessionen kopplas ner. Under försöket att återansluta ger Windows PowerShell kontinuerlig återkoppling till användaren.

Om den frånkopplade sessionen startades med InvokeCommand skapar Windows PowerShell ett jobb för den frånkopplade sessionen för att göra det enklare att återansluta och återuppta exekveringen.

Dessa funktioner ger en mer pålitlig och återhämtad fjärrkontrollupplevelse och gör det möjligt för användare att utföra långvariga uppgifter som kräver robusta sessioner, såsom arbetsflöden.

Uppdaterbart hjälpsystem

Du kan nu ladda ner uppdaterade hjälpfiler för cmdletarna i dina moduler. Cmdleten Update-Help identifierar de senaste hjälpfilerna, laddar ner dem från Internet, packar upp dem, validerar dem och installerar dem i rätt språkspecifik katalog för modulen.

För att använda de uppdaterade hjälpfilerna, skriv Get-Helpbara . Du behöver inte starta om Windows eller Windows PowerShell. För att uppdatera hjälp för moduler i $pshome-katalogen, starta Windows PowerShell med alternativet "Kör som administratör".

För att stödja användare som inte har internetåtkomst och användare bakom brandväggar, laddar den nya Save-Help cmdleten ner hjälpfiler till en filsystemkatalog, såsom en fildelning. Användare kan sedan använda Update-Help cmdlet för att hämta uppdaterade hjälpfiler från fildelningen.

Du kan använda Update-Help cmdlet för att uppdatera hjälpfiler för alla eller specifika moduler i alla stödda UI-kulturer. Du kan till och med lägga in ett Update-Help kommando i din Windows PowerShell-profil. Som standard laddar Windows PowerShell ner hjälpfilerna för en modul högst en gång per dag.

Windows 8- och Windows Server 2012-moduler inkluderar inte hjälpfiler. För att ladda ner de senaste hjälpfilerna, skriv Update-Help. För mer information, skriv Get-Help (utan parametrar) eller se about_Updatable_Help.

När hjälpfilerna för en cmdlet inte är installerade på datorn visar cmdleten Get-Help nu automatiskt genererad hjälp. Den automatiskt genererade hjälpen inkluderar kommandosyntax och instruktioner för att använda cmdleten Update-Help för att ladda ner hjälpfiler.

Vilken modulförfattare som helst kan stödja Updatable Help för sin modul. Du kan inkludera hjälpfiler i modulen och använda Updatable Help för att uppdatera dem eller utelämna hjälpfilerna och använda Updatable Help för att installera dem. För mer information om att stödja Updateable Help, se Stöd för Updateable Help.

Förbättrad onlinehjälp

Windows PowerShell online-hjälp är en värdefull resurs för alla användare, men den är särskilt viktig för användare som inte kan eller inte kan installera uppdaterade hjälpfiler.

För att få onlinehjälp för vilken Windows PowerShell-cmdlet som helst, skriv:

Get-Help <cmdlet-name> -Online

Windows PowerShell öppnar onlineversionen av hjälpämnet i din standardwebbläsare.

FunktionenGet-Help -Online i Windows PowerShell 3.0 är nu ännu kraftfullare eftersom den fungerar även när hjälpfiler för cmdleten inte är installerade på datorn. FunktionenGet-Help -Online hämtar URI:n för onlinehjälpämnet från HelpUri-egenskapen för cmdlets och avancerade funktioner.

PS C:\>(Get-Command Get-ScheduledJob).HelpUri
https://go.microsoft.com/fwlink/?LinkID=223923

Från och med Windows PowerShell 3.0 kan författare av C#-cmdlets fylla i egenskapen HelpUri genom att skapa ett HelpUri-attribut på cmdlet-klassen. Författare till avancerade funktioner kan definiera en HelpUri-egenskap på attributet CmdletBinding . Värdet på egenskapen HelpUri måste börja med "http" eller "https".

Du kan också inkludera ett HelpUri-värde i den första relaterade länken i en XML-baserad cmdlet-hjälpfil eller i . Länkdirektiv för kommentarsbaserad hjälp i en funktion.

För mer information om att stödja onlinehjälp, se Stöd till onlinehjälp.

CIM-integration

Windows PowerShell 3.0 inkluderar stöd för Common Information Model (CIM), som ger gemensamma definitioner av hanteringsinformation för system, nätverk, applikationer och tjänster, vilket möjliggör utbyte av hanteringsinformation mellan heterogena system. Stöd för CIM i Windows PowerShell 3.0, inklusive möjligheten att skapa Windows PowerShell-cmdlets baserade på nya eller befintliga CIM-klasser, kommandon baserade på cmdlet-definition XML-filer, stöd för CIM .NET Framework. API, CIM-hanterings-cmdlets och WMI 2.0-leverantörer.

Sessionskonfigurationsfiler

Från och med Windows PowerShell 3.0 kan du designa en anpassad sessionskonfiguration med hjälp av en fil. Den nya sessionskonfigurationsfilen låter dig bestämma miljön för sessioner som använder sessionskonfigurationen, inklusive vilka moduler, skript och formatfiler som laddas in i sessionerna, vilka cmdlets och språkelement användare kan använda, vilka moduler och skript de kan köra och vilka variabler de kan se.

Du kan designa en session där användare bara kan köra cmdlets från en viss modul, eller en session där användarna har fullt språk, tillgång till alla moduler och tillgång till skript som utför avancerade uppgifter.

I tidigare versioner av Windows PowerShell var styrning på denna nivå endast tillgänglig för dem som kunde skriva ett C#-program eller ett komplext startskript. Nu kan vilken medlem som helst i administratörsgruppen på datorn anpassa en sessionskonfiguration med hjälp av en konfigurationsfil.

Om du vill skapa en sessionskonfigurationsfil använder du cmdleten New-PSSessionConfigurationFile. För att applicera sessionskonfigurationsfilen på en sessionskonfiguration, använd Register-PSSessionConfiguration cmdlets eller 'Set-PSSessionConfiguration.

För mer information, se about_Session_Configuration_Files och New-PSSessionConfigurationFile.

Schemalagda jobb och Task Scheduler-integration

Du kan nu schemalägga bakgrundsjobb för Windows PowerShell och hantera dem i Windows PowerShell och i Task Scheduler.

Windows PowerShell-schemalagda jobb är en användbar hybrid av bakgrundsjobb för Windows PowerShell och uppgifter i Task Scheduler.

Precis som Windows PowerShell-bakgrundsjobb körs schemalagda jobb asynkront i bakgrunden. Instanser av schemalagda jobb som har slutförts kan hanteras med hjälp av jobb-cmdlets, såsom Start-Job och Get-Job.

Precis som uppgifter i Task Scheduler kan du köra schemalagda jobb på ett engångs- eller återkommande schema, eller som svar på en åtgärd eller händelse. Du kan se och hantera schemalagda jobb i Task Scheduler, aktivera och inaktivera dem vid behov, köra dem eller använda dem som mallar, och sätta villkor för hur jobben startar.

Dessutom kommer schemalagda jobb med en anpassad uppsättning cmdlets för att hantera dem. Cmdlets låter dig skapa, redigera, hantera, inaktivera och återaktivera schemalagda jobb, skapa schemalagda jobb-triggers och ställa in schemalagda jobbalternativ.

För mer information om schemalagda jobb, se about_Scheduled_Jobs.

Windows PowerShell-språkförbättringar

Windows PowerShell 3.0 innehåller många funktioner som är utformade för att göra språket enklare, lättare att använda och för att undvika vanliga fel. Förbättringarna inkluderar egenskapsuppräkning, räknings- och längdegenskaper på skalärobjekt, nya omdirigeringsoperatorer, $Using scope-modifieraren, PSItem automatisk variabel, flexibel skriptformatering, attribut för variabler, förenklade attributargument, numeriska kommandonamn, Stop-Parsing-operatorn, förbättrad array-splatting, nya bitoperatorer, ordnade ordböcker, PSCustomObject-casting och förbättrad kommentarsbaserad hjälp.

Nya kärn-cmdlets

Nya cmdlets lades till i Windows PowerShell-installationen, inklusive cmdlets för att hantera schemalagda jobb, avkopplade sessioner, CIM-integration och Updatable Help System.

  • CimCmdlets
    • Get-CimAssociatedInstance
    • Get-CimClass
    • Get-CimInstance
    • Get-CimSession
    • Invoke-CimMethod
    • New-CimInstance
    • New-CimSession
    • New-CimSessionOption
    • Register-CimIndicationEvent
    • Remove-CimInstance
    • Remove-CimSession
    • Set-CimInstance
  • Microsoft.PowerShell.Core
    • Connect-PSSession
    • Disconnect-PSSession
    • New-PSSessionConfigurationFile
    • New-PSTransportOption
    • Receive-PSSession
    • Resume-Job
    • Save-Help
    • Suspend-Job
    • Test-PSSessionConfigurationFile
    • Update-Help
  • Microsoft.PowerShell.Diagnostics
    • New-WinEvent
  • Microsoft.PowerShell.Management
    • Get-ControlPanelItem
    • Rename-Computer
    • Show-ControlPanelItem
  • Microsoft.PowerShell.Utility
    • ConvertFrom-Json
    • ConvertTo-Json
    • Get-TypeData
    • Invoke-RestMethod
    • Invoke-WebRequest
    • Remove-TypeData
    • Show-Command
    • Unblock-File
  • PSScheduledJob
    • Add-JobTrigger
    • Disable-JobTrigger
    • Disable-ScheduledJob
    • Enable-JobTrigger
    • Enable-ScheduledJob
    • Get-JobTrigger
    • Get-ScheduledJob
    • Get-ScheduledJobOption
    • New-JobTrigger
    • New-ScheduledJobOption
    • Register-ScheduledJob
    • Set-JobTrigger
    • Set-ScheduledJob
    • Set-ScheduledJobOption
    • Unregister-ScheduledJob
  • PSWorkflow
    • New-PSWorkflowExecutionOption
    • New-PSWorkflowSession
  • PSWorkflowUtility
    • Invoke-AsWorkflow
  • ISE
    • Get-IseSnippet
    • Import-IseSnippet
    • New-IseSnippet

Förbättringar av befintliga kärn-cmdlets och leverantörer

Windows PowerShell 3.0 inkluderar nya funktioner för befintliga cmdlets, inklusive den förenklade syntaxen, samt nya parametrar för följande cmdlets: Dator-cmdlets, CSV-cmdlets, Get-ChildItem, Get-Command, Get-Content, Get-History, Measure-Object, Security cmdlets, Select-Object, Select-String, Split-Path, Start-Process, Tee-Object, Test-Connection, Add-Member och WMI-cmdlets.

Windows PowerShell-leverantörerna förbättrades också avsevärt, inklusive stöd för certifikatleverantörer för hantering av Secure Socket Layer (SSL)-certifikat för webbhotell, stöd för legitimation, persistenta nätverksenheter och alternativa dataströmmar i filsystemenheter.

Fjärrmodulimport och upptäckt

Windows PowerShell 3.0 utökar modulupptäckt, import och implicit fjärrkontrollfunktioner på fjärrdatorer. Modul-cmdlets hämtar moduler på fjärrdatorer och importerar modulerna till den fjärr- eller lokala datorn med Windows PowerShell-fjärrstyrning. Nytt stöd för CIM-sessioner gör det möjligt att använda CIM och WMI för att hantera icke-Windows-datorer genom att importera kommandon till den lokala datorn som körs implicit på fjärrdatorn.

För mer information, se hjälpämnena för och Get-ModuleImport-Module cmdlets.

Förbättrad tabb-komplettering

Tabbfullföljning i Windows PowerShell-konsolen fullbordar nu namnen på cmdlets, parametrar, parametervärden, uppräkningar, .NET Frameworks-typer, COM-objekt, dolda kataloger och mer. Tab-kompletteringsfunktionen är helt omskriven baserat på en ny parser och abstrakt syntaxträd för att stödja fler scenarier, inklusive minnesparande träd och tab-komplettering i mittlinjen.

Modulens auto-laddning

Cmdleten Get-Command får nu alla cmdlets och funktioner från alla moduler som är installerade på datorn, även om modulen inte importeras till den aktuella sessionen.

När du får den cmdlet du behöver kan du använda den direkt utan att importera några moduler. Windows PowerShell-moduler importeras nu automatiskt när du använder någon cmdlet i modulen. Du behöver inte längre söka efter modulen och importera den för att använda dess cmdlets.

Automatisk import av moduler triggas med cmdlet i ett kommando, körande Get-Command för en cmdlet utan joker, eller körning Get-Help för en cmdlet utan joker.

Du kan aktivera, inaktivera och konfigurera automatisk import av moduler med hjälp av $PSModuleAutoLoadingPreference preferensvariabel.

För mer information, se about_Modules, about_Preference_Variables och hjälpämnena för Get-Command och Import-Module cmdlets.

Förbättringar av modulupplevelsen

Windows PowerShell 3.0 tillför avancerad funktionsstöd till moduler, inklusive följande nya funktioner.

  1. Modulloggning för enskilda moduler (LogPipelineExecutionDetails) och den nya grupppolicyinställningen "Turn on Module Logging"
  2. Utökade modulobjekt som exponerar värdena från modulmanifestet
  3. Ny egenskap ExportedCommands för moduler, inklusive nästlade moduler, som kombinerar kommandon av alla typer
  4. Förbättrad upptäckt av tillgängliga (oimporterade) moduler, inklusive tillåtelse av parametrarna Path och ListAvailable i samma kommando
  5. Ny DefaultCommandPrefix-nyckel i modulmanifest som undviker namnkonflikter utan att ändra modulkoden.
  6. Förbättrade modulkrav, inklusive fullt kvalificerade obligatoriska moduler med version och GUID samt automatisk import av nödvändiga moduler
  7. Tystare, smidigare drift av New-ModuleManifest cmdlet.
  8. Ny modulparameter för #Requires
  9. Förbättrad Import-Module cmdlet med både MinimumVersion och RequiredVersion-parametrarna .

Förenklad kommandoupptäckt

Du behöver inte längre importera alla moduler för att upptäcka vilka kommandon som finns tillgängliga för din session. I Windows PowerShell 3.0 hämtar cmdleten Get-Command alla kommandon från alla installerade moduler. Och om du använder ett kommando importeras modulen som exporterar kommandot automatiskt till din session.

Den nya Show-Command cmdlet är särskilt utformad för nybörjare. Du kan söka efter kommandon i ett fönster. Du kan se alla kommandon eller filtrera efter modul, importera en modul genom att klicka på en knapp, använda textrutor och rullgardinslistor för att skapa ett giltigt kommando, och sedan kopiera eller köra kommandot utan att någonsin lämna fönstret.

Förbättrad loggning, diagnostik och stöd för gruppolicyn

Windows PowerShell 3.0 förbättrar loggnings- och spårningsstödet för kommandon och moduler med stöd för Event Tracing i Windows (ETW)-loggar, en redigerbar egenskap LogPipelineExecutionDetails för moduler och grupppolicyinställningen "Turn on Module Logging". Du kan nu få parametervärden från loggdetaljer genom att visa log-egenskaperna.

Formatering och förbättringar av utdata

Nya förbättringar av formatering och utdata förbättrar effektiviteten hos alla Windows PowerShell-användare. Förbättringarna inkluderar utdataomdirigering för alla strömmar, en förbättrad Update-Type-cmdlet som lägger till typer dynamiskt utan Format.ps1xml-filer, ordomslag i utdata, standardformateringsegenskaper för anpassade objekt, PSCustomObject-typen , förbättrad formatering för WMI-objekt och heterogena objekt samt stöd för att upptäcka metodöverbelastningar.

Förbättrad konsolvärdupplevelse

Windows PowerShell-konsolvärdprogrammet har nya funktioner i Windows PowerShell 3.0, inklusive single threaded apartment som standard. Det nya alternativet "Kör med PowerShell" i Filutforskaren låter dig köra skript i en obegränsad session bara genom att högerklicka. Ny logik för konsolvärdstart, startar Windows PowerShell snabbare och nya typsnitt gör det möjligt att anpassa den välbekanta konsolfönsterupplevelsen.

Nya cmdlet- och hosting-API:er

Det nya Cmdlet-API:et och Hosting API inkluderar publika avancerade syntaxträds-API:er (AST) samt API:er för pipeline-växling, nästlade pipelines, fyllnad av runspacepools-flikar, Windows RT, attributet Obsolete cmdlet samt Verb- och Noun-egenskaper för FunctionInfo-objektet.

Prestandaförbättringar

Betydande prestandaförbättringar i Windows PowerShell kommer från den nya språkparsern, som är byggd på Dynamic Runtime Language (DLR) i .NET Framework 4., tillsammans med kompilering av runtime-skript, förbättringar av motorns tillförlitlighet och ändringar i algoritmen Get-ChildItem som förbättrar dess prestanda, särskilt vid sökning i nätverksdelningar.

RunAs och stöd för delad värd

Windows PowerShell 3.0 inkluderar stöd för RunAs och funktioner för delad värd.

Funktionen RunAs, designad för Windows PowerShell Workflow, låter användare av en sessionskonfiguration skapa sessioner som körs med tillstånd från ett delat användarkonto. Detta gör det möjligt för mindre privilegierade användare att köra särskilda kommandon och skript med administratörsbehörigheter, och minskar behovet av att lägga till mindre erfarna användare i Administratörsgruppen.

Funktionen SharedHost tillåter flera användare på flera datorer att ansluta till en arbetsflödessession samtidigt och övervaka arbetsflödets framsteg. Användare kan starta ett arbetsflöde på en dator och sedan ansluta till arbetsflödessessionen på en annan dator utan att koppla bort sessionen från den ursprungliga datorn. Användare måste ha samma behörigheter och använda samma sessionskonfiguration. För mer information, se "Köra ett Windows PowerShell-arbetsflöde" i Getting Starting with Windows PowerShell Workflow.

Förbättringar av specialkaraktärshantering

För att förbättra Windows PowerShell 3.0:s förmåga att tolka och korrekt hantera specialtecken är parametern LiteralPath , som hanterar specialtecken i vägar, giltig på nästan alla cmdlets som har en Path-parameter , inklusive den nya Update-Help och Save-Help cmdlets. Parsern inkluderar också speciell logik för att förbättra hanteringen av backtick-tecknet (`) och hakparenteser i filnamn och sökvägar.

Se även