Nyheter i Windows PowerShell 5.0

Windows PowerShell 5.0 innehåller betydande nya funktioner som utökar användningen, förbättrar dess användbarhet och gör det möjligt att styra och hantera Windows-baserade miljöer enklare och mer omfattande.

Windows PowerShell 5.0 är bakåtkompatibel. Cmdletar, providers, moduler, snapin-moduler, skript, funktioner och profiler som har utformats för Windows PowerShell 4.0, Windows PowerShell 3.0 och Windows PowerShell 2.0 fungerar vanligtvis 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.

Om du vill installera Windows PowerShell 5.0 på Windows Server 2012 R2 Windows 8.1 Enterprise eller Windows 8.1 Pro laddar du ned och installerar Windows Management Framework 5.0. Se till att läsa nedladdningsinformationen och uppfylla alla systemkrav innan du installerar Windows Management Framework 5.0.

I det här avsnittet

Windows PowerShell 4.0-uppdateringar i samlad uppdatering i november 2014 (KB-3000850)

Många uppdateringar och förbättringar av Windows PowerShell Desired State Configuration (DSC) i Windows PowerShell 4.0 är tillgängliga i uppdateringen 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å systemet genom att köra Get-Hotfix -Id KB3000850 i Windows PowerShell.

  • Uppdateringar till befintliga cmdletar i modulen PSDesiredStateConfiguration

  • Nya cmdletar i MODULen PSDesiredStateConfiguration

  • Språkförbättringar

    • DependsOn stöder nu sammansatta resurser.
    • DependsOn stöder nu tal i resursinstansnamn.
    • Noduttryck som utvärderas till tomma genererar inte längre fel.
    • Ett fel som uppstår om ett noduttryck utvärderas till tomt har åtgärdats.
    • Konfigurationer som anropar konfigurationer fungerar nu i Windows PowerShell-konsolen.
  • Förbättringar av pull-läge

    • Pull-läget stöder nu alla ZIP-filer.
    • AllowModuleOverwrite fungerar nu korrekt.
  • Återhämtningsförbättringar

    • Med ny DebugMode kan du läsa in resursmoduler igen.
    • Om ett konfigurationsfel inträffar tas inte filen pending.mof bort.
    • Den lokala Configuration Manager (LCM) är nu mer motståndskraftig när metakonfigurationsinställningarna har skadats.
  • Diagnostikförbättringar

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

    • Resursen LocalConfigurationManager har en ny egenskap, ActionAfterReboot.
      • ContinueConfiguration (standardvärde): Återupptar automatiskt en konfiguration när en målnod startas om.
      • StopConfiguration: Återuppta inte konfigurationen automatiskt när en nod har startats om.
    • En konsekvenskörning kan nu inträffa oftare än en PULL-åtgärd eller tvärtom.
    • Stöd för versionshantering: DSC kan nu identifiera ett dokument som har genererats på en nyare klient (ingår i WMF 5.0).
  • Förbättringar av felskydd

    • Modulversionen tillämpas nu innan en konfiguration tillämpas.
    • DebugPreference har nu angetts korrekt för Get-, Set-, eller Test-TargetResource-anrop.
  • Förbättringar av autentiseringsuppgifter

    • Nu används ett certifikat, om både Certifikat och PSDscAllowPlainTextPassword anges.
    • Autentiseringsuppgifter dekrypteras, även för Get-TargetResource.
    • Autentiseringsuppgifterna för metakonfiguration 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 (antingen från lokala källor eller webbkällor).
      • Stöder nu HTTPS.
    • Det finns nu stöd för HTTPS i paketresursen.
    • Arkivresursen stöder nu autentiseringsuppgifter.

Nya funktioner i Windows PowerShell 5.0

Nya funktioner i Windows PowerShell

  • Från och med Windows PowerShell 5.0 kan du utveckla med hjälp av klasser, formell syntax och semantik som liknar andra objektorienterade programmeringsspråk. Klass, Uppräkning och andra nyckelord har lagts till i Windows PowerShell språk för att stödja den nya funktionen. Mer information om hur du arbetar med klasser finns i about_Classes.

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

    • En ny Write-Information cmdlet som gör att du kan ange hur Windows PowerShell hanterar informationsströmdata för ett kommando. Write-Host är en omslutning för write-information. Write-Information är också en arbetsflödesaktivitet som stöds.
    • Med två nya vanliga parametrar, InformationVariable och InformationAction, kan du avgöra hur informationsströmmar från ett kommando visas. Giltiga värden för InformationAction är SilentlyContinue, Stop, Continue, Inquire, Ignore eller Suspend, med SilentlyContinue som standard. InformationVariable anger en sträng som namnet på en variabel som du vill att Write-Host data från ett kommando ska sparas till.
    • En ny inställningsvariabel, InformationPreference, anger standardinställningen för informationsströmdata i en Windows PowerShell session. Standardvärdet är SilentlyContinue.
    • Två nya vanliga parametrar för arbetsflödet, PSInformation och InformationAction, har lagts till.
    • När du använder kommandot Format-Table formateras tabellkolumner nu automatiskt genom att utvärdera de första 300 ms data som passerar genom dataströmmen.
  • I samarbete med Microsoft Research har en ny cmdlet, ConvertFrom-String, lagts till. ConvertFrom-String kan du extrahera och parsa strukturerade objekt från innehållet i textsträngar. Mer information finns i ConvertFrom-String.

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

  • En ny modul, Microsoft.PowerShell.Archive, innehåller cmdletar som gör att du kan komprimera filer och mappar till arkivfiler (även kallade ZIP-filer), extrahera filer från befintliga ZIP-filer och uppdatera ZIP-filer med nyare versioner av filer som komprimerats i dem.

  • Med en ny modul, PackageManagement, kan du identifiera och installera programvarupaket på Internet. PackageManagement-modulen (kallades tidigare OneGet) är en hanterare eller multiplexer av befintliga pakethanterare (kallas även paketleverantörer) för att förena Windows-pakethantering med ett enda Windows PowerShell gränssnitt.

  • Med en ny modul, PowerShellGet, kan du hitta, installera, publicera och uppdatera moduler och DSC-resurser på PowerShell-galleriet eller på en intern modullagringsplats som du kan konfigurera genom att köra cmdleten Register-PSRepository.

  • Ett nytt språknyckelord, Dolt, har lagts till för att ange att en medlem (en egenskap eller en metod) inte visas som standard i Get-Member resultat (såvida du inte lägger till parametern -Force). Egenskaper eller metoder som har markerats dolda visas inte heller i IntelliSense-resultat, såvida du inte befinner dig i en kontext där medlemmen ska vara synlig. Den automatiska variabeln $This bör till exempel visa dolda medlemmar i klassmetoden.

  • New-Item, Remove-Item och Get-ChildItem har förbättrats för att stödja skapande och hantering av symboliska länkar. Parametern -ItemType 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 cmdleten New-Item.

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

  • Copy-Item nu kan du 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ärmed inte har något annat gränssnitt). Om du vill kopiera filer anger du PSSession-ID:n som värdet för de nya parametrarna -FromSession och -ToSession, och lägger till -Path och -Destination för att ange ursprungssökväg respektive mål. Till exempel Copy-Item -Path c:\myFile.txt -ToSession $s -Destination d:\destinationFolder.

  • Windows PowerShell transkription har förbättrats för alla värdprogram (till exempel Windows PowerShell ISE) utöver konsolvärden (powershell.exe). Transkriptionsalternativ (inklusive aktivering av en systemomfattande avskrift) kan konfigureras genom att aktivera inställningen Aktivera PowerShell-transkription grupprincip som finns i Administrativa mallar/Windows-komponenter/Windows PowerShell.

  • Med en ny detaljerad skriptspårningsfunktion kan du aktivera detaljerad spårning och analys av Windows PowerShell skriptanvändning i ett system. När du har aktiverat detaljerad skriptspårning loggar Windows PowerShell alla skriptblock i händelseloggen Händelsespårning för Windows (ETW), Microsoft-Windows-PowerShell/Operational.

  • Från och med Windows PowerShell 5.0 stöder nya cmdletar för kryptografisk meddelandesyntax kryptering och dekryptering av innehåll med IETF-standardformatet för kryptografiskt skydd av meddelanden som dokumenteras av RFC5652. Cmdletarna Get-CmsMessage, Protect-CmsMessage och Unprotect-CmsMessage har lagts till i modulen Microsoft.PowerShell.Security .

  • Med nya cmdletar i modulen Microsoft.PowerShell.Utility , Get-Runspace, Debug-Runspace, Get-RunspaceDebug, Enable-RunspaceDebug och Disable-RunspaceDebug kan du ställa in felsökningsalternativ på ett körningsutrymme och starta och stoppa felsökning på en körningsplats. För felsökning av godtyckliga körningsutrymmen (dvs. runspaces som inte är standardkörningsutrymmet för en Windows PowerShell-konsol eller Windows PowerShell ISE-session) Windows PowerShell låter dig ange brytpunkter i ett skript och har lagt till brytpunkter som hindrar skriptet från att köras tills du kan koppla ett felsökningsprogram för att felsöka körningsskriptet. Stöd för kapslad felsökning för godtyckliga runspaces har lagts till i felsökningsprogrammet för Windows PowerShell skript för runspaces.

  • En ny Format-Hex-cmdlet har lagts till i modulen Microsoft.PowerShell.Utility . Format-Hex kan du visa text eller binära data i hexadecimalt format.

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

  • En ny cmdlet, Clear-RecycleBin, har lagts till i modulen Microsoft.PowerShell.Management ; den här cmdleten tömmer papperskorgen för en fast enhet, som innehåller externa enheter. Som standard uppmanas du att bekräfta ett Clear-RecycleBin kommando eftersom egenskapen ConfirmImpact för cmdleten är inställd på ConfirmImpact.High.

  • Med en ny cmdlet, New-TemporaryFile, kan du skapa en tillfällig fil som en del av skriptet. Som standard skapas den nya temporära filen i C:\Users\<user name>\AppData\Local\Temp.

  • Cmdletarna Out-File, Add-Content och Set-Content har nu en ny -NoNewline-parameter, som utelämnar en ny rad efter utdata.

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

  • Eftersom information om filversion kan vara missvisande, särskilt när en fil har korrigerats, är nya FileVersionRaw- och ProductVersionRaw-skriptegenskaper tillgängliga för FileInfo-objekt. Du kan till exempel 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:t för en session med Windows PowerShell som körs:Get-Process -Id $pid -FileVersionInfo | Format-List *version* -Force

  • Med nya cmdletar Enter-PSHostProcess och Exit-PSHostProcess kan du felsöka Windows PowerShell skript i processer som är separata från den aktuella processen som körs i Windows PowerShell-konsolen. Kör Enter-PSHostProcess att ange eller ansluta till ett specifikt process-ID och kör sedan Get-Runspace för att returnera de aktiva runspacesna i processen. Kör Exit-PSHostProcess för att koppla från processen när du är klar med felsökningen av skriptet i processen.

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

  • Felsökningsprogrammet för Windows PowerShell arbetsflöde har nu stöd för slutförande av kommandon eller flikar, och du kan felsöka kapslade arbetsflödesfunktioner. Du kan nu trycka på Ctrl+Break för att ange felsökaren i ett skript som körs, i både lokala sessioner och fjärrsessioner och 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 arbetsflöde, 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 innehåller uppsättnings brytpunkter och skriptet har nått en brytpunkt. När ett jobb stoppas vid en felsöknings brytpunkt måste du felsöka jobbet genom att köra cmdleten Debug-Job.

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

  • Nu kan du utföra modulversionsvalidering genom att köra cmdleten Test-ModuleManifest.

  • Resultatet av cmdleten Get-Command visar nu kolumnen Version. en ny versionegenskap har lagts till i klassen CommandInfo. Get-Command visar kommandon från flera versioner av samma modul. Egenskapen Version ä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ändbart när Show-Command körs i Windows PowerShell ISE med hjälp av Windows PowerShell fjärrkommunikation. Parametern -ShowCommandInfo ersätter den befintliga Get-SerializedCommand-funktionen i modulen Microsoft.PowerShell.Utility, men skriptet Get-SerializedCommand är fortfarande tillgängligt för att stödja äldre skript.

  • Med en ny Get-ItemPropertyValue cmdlet kan du hämta värdet för en egenskap utan att använda punktnotation. I äldre versioner av Windows PowerShell kan du till exempel köra följande kommando för att hämta värdet för application base-egenskapen för 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 cmdletar som gör att du kan använda växel, virtuellt LAN (VLAN) och grundläggande layer 2-nätverksväxelportkonfiguration för att Windows Server 2012 R2-logotypcertifierade nätverksväxlar.

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

  • Save-Help, Update-Help, Import-PSSession, Export-PSSession och Get-Command har en ny parameter, FullyQualifiedModule, av typen ModuleSpecification. Lägg till den här parametern för att ange en modul med dess fullständigt kvalificerade namn.

  • Värdet för $PSVersionTable.PSVersion har uppdaterats till 5.0.

  • WMF 5.0 (PowerShell 5.0) innehåller Pester-modulen . Pester är ett ramverk för enhetstestning för PowerShell. Den innehåller några enkla nyckelord som gör att du kan skapa tester för dina skript.

Nya funktioner i Windows PowerShell Desired State Configuration

  • Windows PowerShell språkförbättringar kan du definiera Windows PowerShell Desired State Configuration resurser (DSC) med hjälp av klasser. Import-DscResource är nu ett verkligt dynamiskt nyckelord. Windows PowerShell parsar den angivna modulens rotmodul och söker efter klasser som innehåller attributet DscResource. Nu kan du 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 i följande cmdletar i modulen PSDesiredStateConfiguration. Lägg till parametern ThrottleLimit för att ange antalet måldatorer eller enheter där du vill att kommandot ska fungera 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 omfattande felinformation inte bara i händelseloggen, utan kan skickas till en central plats för senare analys. Du kan använda den här centrala platsen för att lagra DSC-konfigurationsfel som har inträffat för alla servrar i deras miljö. När rapportservern har definierats i metakonfigurationen skickas alla fel till rapportservern och lagras sedan i en databas. Du kan konfigurera den här funktionen oavsett om en målnod har konfigurerats för att hämta konfigurationer från en hämtningsserver eller inte.
  • Förbättringar av Windows PowerShell ISE underlättar redigering av DSC-resurser. Nu kan du göra följande.
    • Visa en lista över alla DSC-resurser i en konfiguration eller ett nodblock genom att ange Ctrl+Blanksteg på en tom rad i blocket.
    • Automatiskt slutförande av resursegenskaper för uppräkningstypen .
    • Automatiskt slutförande av egenskapen DependsOn för DSC-resurser, baserat på andra resursinstanser i konfigurationen.
    • Förbättrad tabbifyllning av resursegenskapsvärden.
  • En användare kan nu köra en resurs under en angiven uppsättning autentiseringsuppgifter genom att lägga till attributet PSDscRunAsCredential i ett Node-block. Till exempel PSDscRunAsCredential = Get-Credential Contoso\DscUser. Den här funktionen är användbar för att skapa konfigurationer som kör Windows Installer och körbara installationsprogram, komma åt registreringsdatafilen per användare eller utföra andra uppgifter utanför den aktuella användarkontexten.
  • Stöd för 32-bitars (x86-baserad) har lagts till för nyckelordet Konfiguration .
  • Windows PowerShell innehåller nu stöd för anpassad hjälp för DSC-konfigurationer, som definieras genom att lägga till [CmdletBinding()] i den genererade konfigurationsfunktionen.
  • Ett nytt DscLocalConfigurationManager-attribut anger ett konfigurationsblock som en metakonfiguration, som används för att konfigurera DSC Local Configuration Manager. Det här attributet begränsar en konfiguration till att endast innehålla objekt som konfigurerar DSC Local Configuration Manager. Under bearbetningen genererar den här konfigurationen en *.meta.mof-fil som sedan skickas till lämpliga målnoder genom att köra cmdleten Set-DscLocalConfigurationManager.
  • Partiella konfigurationer tillåts nu i Windows PowerShell 5.0. Du kan leverera konfigurationsdokument till en nod i fragment. För att en nod ska kunna ta emot flera fragment av ett konfigurationsdokument måste nodens lokala Configuration Manager först anges för att ange förväntade fragment
  • Synkronisering mellan datorer är nytt i DSC i Windows PowerShell 5.0. Med hjälp av 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 via WS-Man-protokollet. En konfiguration kan vänta tills en annan dators specifika resurstillstånd ändras.
  • JEA (Just Enough Administration), en ny säkerhetsfunktion för delegering, utnyttjar DSC och Windows PowerShell begränsade runspaces för att skydda företag från dataförlust eller komprogettering av anställda, oavsett om de är avsiktliga eller oavsiktliga. Mer information om JEA, inklusive var du kan ladda ned xJEA DSC-resursen, finns i Just Enough Administration.
  • Följande nya cmdletar har lagts till i modulen PSDesiredStateConfiguration.
    • En ny Get-DscConfigurationStatus-cmdlet hämtar information på hög nivå om konfigurationsstatus från en målnod. Du kan hämta status för den senaste eller alla konfigurationer.
    • En ny Compare-DscConfiguration-cmdlet jämför en angiven konfiguration med det faktiska tillståndet för en eller flera målnoder.
    • En ny Publish-DscConfiguration-cmdlet kopierar en MOF-konfigurationsfil till en målnod, men tillämpar inte konfigurationen. Konfigurationen tillämpas vid nästa konsekvenspass eller när du kör cmdleten Update-DscConfiguration.
    • Med en ny Test-DscConfiguration-cmdlet kan du kontrollera att en resulterande konfiguration matchar den önskade konfigurationen och returnera antingen Sant om konfigurationen matchar den önskade konfigurationen eller Falskt om den faktiska konfigurationen inte matchar önskad konfiguration.
    • En ny Update-DscConfiguration-cmdlet tvingar en konfiguration att bearbetas. Om den lokala Configuration Manager är i pull-läge hämtar cmdleten konfigurationen från hämtningsservern innan den tillämpas.

Nya funktioner i Windows PowerShell ISE

  • Du kan nu redigera fjärranslutna Windows PowerShell skript och filer i en lokal kopia av Windows PowerShell ISE genom att köra Enter-PSSession för att starta en fjärrsession på den dator där filerna du vill redigera lagras och sedan köra PSEdit-sökvägen <och filnamnet på fjärrdatorn>. Den här funktionen gör det enklare att redigera Windows PowerShell filer som lagras på 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.
  • Nu kan du felsöka fjärrskript i Windows PowerShell ISE.
  • Ett nytt menykommando, Break All (Ctrl+B), bryter sig in i felsökningsprogrammet för både lokala skript och fjärrkörningsskript.

Nya funktioner i Windows PowerShell Web Services (Management OData IIS-tillägg)

  • Från och med Windows PowerShell 5.0 kan du generera en uppsättning Windows PowerShell-cmdletar baserat på funktionerna som exponeras av en viss OData-slutpunkt genom att köra cmdleten Export-ODataEndpointProxy som finns i den nya Microsoft.PowerShell.OdataUtils-modulen.

Viktiga felkorrigeringar i Windows PowerShell 5.0

  • Windows PowerShell 5.0 innehåller en ny COM-implementering som ger betydande prestandaförbättringar när du arbetar med COM-objekt.
  • Betydande prestandaförbättringar har gjorts för slutförandet av den första fliken i en Windows PowerShell session, vilket förkortar tabbsluttiden med nästan 500 ms.

Nya funktioner i Windows PowerShell 4.0

Windows PowerShell 4.0 är bakåtkompatibel. Cmdletar, providrar, moduler, snapin-moduler, skript, funktioner och profiler som har utformats 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. Om du vill installera Windows PowerShell 4.0 på Windows 7 med SP1 eller Windows Server 2008 R2 laddar du ned och installerar Windows Management Framework 4.0. Läs nedladdningsinformationen och uppfyll 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 programvarutjänster och miljön där dessa tjänster körs. Mer information om DSC finns i Kom igång med Windows PowerShell Desired State Configuration.
  • Med Spara hjälp kan du nu spara hjälp för moduler som är installerade på fjärrdatorer. Du kan använda Save-Help för att ladda ned modulhjälpen från en Internetansluten klient (där inte alla moduler som du vill ha hjälp för nödvändigtvis är installerade) och sedan kopiera den sparade hjälpen till en fjärransluten delad mapp eller en fjärrdator som inte har Internetåtkomst.
  • Det Windows PowerShell felsökningsprogrammet har förbättrats för att tillåta 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 kommandoraden Windows PowerShell 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 från och sedan återansluts senare.
  • En RunNow-parameter för Register-ScheduledJob och Set-ScheduledJob eliminerar behovet av att ange ett omedelbart startdatum och starttid för jobb med hjälp av utlösarparametern .
  • Med Invoke-RestMethod och Invoke-WebRequest kan du nu ange alla rubriker med parametern Headers. Även om den här parametern alltid har funnits var den en av flera parametrar för webb-cmdletarna som resulterade i undantag eller fel.
  • Get-Module har en ny parameter, FullyQualifiedName, av typen ModuleSpecification[]. Med parametern FullyQualifiedName i Get-Module kan du nu ange en modul med hjälp av modulens namn, version och eventuellt dess GUID.
  • Standardinställningen för körningsprincipen 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 tas inte längre bort när den tidsgräns som anges av den vanliga parametern PSElapsedTimeoutSec-arbetsflöde har förflutit.
  • 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 på obestämd tid.
  • En Passthru-parameter har lagts till i cmdletarna Enable-JobTrigger och Disable-JobTrigger . Parametern Passthru visar alla objekt som skapas eller ändras av kommandot.
  • Parameternamnen för att ange en arbetsgrupp i cmdletarna Add-Computer och Remove-Computer är nu konsekventa. Båda cmdletarna använder nu parametern WorkgroupName.
  • En ny gemensam parameter, PipelineVariable, har lagts till. Med PipelineVariable kan du spara resultatet av ett piped-kommando (eller en del av ett piped-kommando) som en variabel som kan skickas genom resten av pipelinen.
  • Samlingsfiltrering med hjälp av en metodsyntax stöds nu. Det innebär att du nu kan filtrera en samling objekt med hjälp av förenklad syntax, liknande den för Where() eller Where-Object, formaterad som ett metodanrop. Följande är ett exempel: (Get-Process).where({$_. Namn - matcha "powershell"})
  • Cmdleten Get-Process har en ny switchparameter, IncludeUserName.
  • En ny cmdlet, Get-FileHash, som returnerar en filhash i ett av flera format för en angiven fil, har lagts till.
  • Om en modul i Windows PowerShell 4.0 använder nyckeln DefaultCommandPrefix i manifestet, eller om användaren importerar en modul med prefixparametern, 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 innehålla prefixet .
  • Värdet för $PSVersionTable.PSVersion har uppdaterats till 4.0.
  • Where() operatorbeteendet har ändrats. Collection.Where('property -match name') att acceptera ett stränguttryck i formatet "Property -CompareOperator Value" stöds inte längre. Operatorn Where() accepterar dock stränguttryck i formatet för en scriptblock. detta stöds fortfarande.

Nya funktioner i Windows PowerShell ISE (Integrated Scripting Environment)

  • Windows PowerShell ISE stöder både felsökning av Windows PowerShell arbetsflöden och felsökning av fjärrskript.
  • IntelliSense-stöd har lagts till för Windows PowerShell Desired State Configuration providers och konfigurationer.

Nya funktioner i Windows PowerShell workflow

  • Stöd har lagts till för en ny gemensam PipelineVariable-parameter i kontexten för iterativa pipelines, till exempel de som används av System Center Orchestrator. Det innebär att pipelines som kör kommandon helt enkelt från vänster till höger, i stället för att köras med direktuppspelning.
  • Parameterbindningen har förbättrats avsevärt så att den fungerar utanför scenarier med tabbifyllning, till exempel med kommandon som inte finns i det aktuella körningsutrymmet.
  • Stöd för anpassade containeraktiviteter har lagts till i Windows PowerShell Workflow. Om en aktivitetsparameter är av typen Aktivitet, Aktivitet[] (eller är en allmän samling aktiviteter) och användaren har angett ett skriptblock som argument, konverterar Windows PowerShell Workflow skriptblocket till XAML, som med normal Windows PowerShell kompilering från skript till arbetsflöde.
  • Efter en krasch återansluter Windows PowerShell Workflow automatiskt till hanterade noder.
  • Nu kan du begränsa Foreach - Parallel-aktivitetsinstruktioner med egenskapen ThrottleLimit .
  • Den vanliga ErrorAction-parametern har ett nytt giltigt värde, Suspend, som är exklusivt för arbetsflöden.
  • En arbetsflödesslutpunkt stängs nu automatiskt om det inte finns några aktiva sessioner, inga pågående jobb och inga väntande jobb. Den här funktionen sparar resurser på den dator som fungerar som arbetsflödesserver när villkoren för automatisk stängning har uppfyllts.

Nya funktioner i Windows PowerShell Web Services

  • När ett fel inträffar i Windows PowerShell Web Services (PSWS, även kallat Management OData IIS-tillägg), returneras mer detaljerade felmeddelanden till anroparen när en cmdlet körs. Dessutom följer felkoderna riktlinjer för Windows Azure REST API-felkod.
  • En slutpunkt kan nu definiera API-versionen samt framtvinga användningen av en specifik API-version. När versionsmatchningar uppstår mellan klient och server visas fel för både klienten och servern.
  • Hanteringen av dispatch-schemat har förenklats genom att automatiskt generera värden för eventuella fält som saknas i schemat. Genereringen sker som en användbar startpunkt, även om dispatch-schemat inte finns.
  • Typhantering i PSWS har förbättrats för att stödja typer som använder en annan konstruktor än standardkonstruktorn, genom att bete sig på samma sätt som PSTypeConverter i Windows PowerShell. På så sätt kan du använda komplexa typer med PSWS.
  • PSWS tillåter nu att en associerad instans expanderas när en fråga körs. För större binärt innehåll (till exempel bilder, ljud eller video) är överföringskostnaden betydande och det är bättre att överföra binära data utan kodning. PSWS använder namngivna resursströmmar för överföring utan kodning. Den namngivna resursströmmen är en egenskap för en entitet av typen Edm.Stream. Varje namngiven resursström har en separat URI för GET- eller UPDATE-åtgärder.
  • OData-åtgärder tillhandahåller nu en mekanism för att anropa icke-CRUD-metoder (Skapa, läsa, uppdatera och ta bort) på en resurs. Du kan anropa en åtgärd genom att skicka en HTTP POST-begäran till den URI som har definierats för åtgärden. Parametrarna för åtgärden definieras i brödtexten i POST-begäran.
  • För att vara konsekvent med Riktlinjerna för Windows Azure bör alla URL:er förenklas. En ändring som ingår i Nyckel som-segment gör att enskilda nycklar kan representeras som segment. Observera att referenser som använder flera nyckelvärden kräver kommaavgränsade värden i parentetisk notation, som tidigare.
  • Innan den här versionen av PSWS var det enda sättet att utföra Skapa-, uppdaterings- eller borttagningsåtgärder att anropa Post, Put eller Delete på en resurs på den översta nivån. Nya i den här versionen av PSWS, inneslutna resursåtgärder låter användare uppnå samma resultat samtidigt som de når samma resurs mindre direkt, närmar sig som om dessa resurser var inneslutna.

Nya funktioner i Windows PowerShell Web Access

  • Du kan koppla från och återansluta till befintliga sessioner i den webbaserade Windows PowerShell webbåtkomstkonsolen. Med knappen Spara i den webbaserade konsolen kan du koppla från en session utan att ta bort den och återansluta till sessionen en annan gång.
  • Standardparametrar kan visas på inloggningssidan. Om du vill visa standardparametrar konfigurerar du värden för alla inställningar som visas i området Valfria anslutningsinställningar på inloggningssidan i en fil med namnetweb.config. Du kan använda web.config-filen för att konfigurera alla valfria anslutningsinställningar förutom en andra eller alternativ uppsättning autentiseringsuppgifter.
  • I Windows Server 2012 R2 kan du fjärrhantera auktoriseringsregler för Windows PowerShell Webbåtkomst. Cmdletarna Add-PswaAuthorizationRule och Test-PswaAuthorizationRule innehåller nu en autentiseringsparameter som gör det möjligt för administratörer att hantera auktoriseringsregler från en fjärrdator eller i en Windows PowerShell webbåtkomstsession.
  • Du kan nu ha flera Windows PowerShell webbåtkomstsessioner i en enda webbläsarsession med hjälp av 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.

Viktiga felkorrigeringar i Windows PowerShell 4.0

  • Get-Counter kan nu returnera räknare som innehåller ett apostrofertecken i franska utgåvor av Windows.
  • Nu kan du visa metoden GetType på deserialiserade objekt.
  • #Requires-instruktioner låter nu användare kräva administratörsåtkomstbehörighet om det behövs.
  • Cmdleten Import-Csv ignorerar nu tomma rader.
  • Ett problem där Windows PowerShell ISE använder för mycket minne när du kör kommandot Invoke-WebRequest har åtgärdats.
  • Get-Module visar nu modulversioner i kolumnen Version .
  • Remove-Item -Recurse tar nu bort objekt från undermappar som förväntat.
  • En UserName-egenskap har lagts till i Utdataobjekt för Get-Process .
  • Cmdleten Invoke-RestMethod returnerar nu alla tillgängliga resultat.
  • Add-Member börjar nu gälla för hashtables, även om hashtable-filerna ännu inte har använts.
  • Select-Object – Expandera misslyckas inte längre eller genererar ett undantag om värdet för 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 kan nu lokaliseras.
  • Get-Job returnerar nu alla slutförda schemalagda jobb, även i nya sessioner.
  • Problem med montering och avmontering av virtuella hårddiskar med hjälp av FileSystem-providern i Windows PowerShell 4.0 har åtgärdats. Windows PowerShell kan nu identifiera nya enheter när de monteras i samma session.
  • Du behöver inte längre uttryckligen läsa in schemalagda jobb - eller arbetsflödesmoduler för att arbeta med deras jobbtyper.
  • Prestandaförbättringar har gjorts i processen för att importera arbetsflöden som definierar kapslade arbetsflöden. den här processen 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 ger kraften i Windows Workflow Foundation till Windows PowerShell. Du kan skriva arbetsflöden i XAML eller på Windows PowerShell språk och köra dem precis som du skulle köra en cmdlet. Cmdleten Get-Command hämtar arbetsflödeskommandon och cmdleten Get-Help får hjälp med arbetsflöden.

Arbetsflöden är sekvenser av hanteringsaktiviteter för flera datorer som är långvariga, repeterbara, frekventa, parallelliserbara, avbrottsbara, pausbara och omstartsbara. Arbetsflöden kan återupptas från ett avsiktligt eller oavsiktligt avbrott, till exempel ett nätverksavbrott, en Windows-omstart eller ett 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 att arbetsflöden eller aktiviteter i ett arbetsflöde körs 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 förlopp för aktiviteter visas när som helst.
  • Hantering av flera datorer. Kör uppgifter samtidigt som arbetsflöden på hundratals hanterade noder. Windows PowerShell Workflow innehåller ett inbyggt bibliotek med vanliga hanteringsparametrar, till exempel PSComputerName, som möjliggör scenarier för hantering av flera datorer.
  • Enkel uppgiftskörning av komplexa processer. Du kan kombinera relaterade skript som implementerar ett helt scenario från slutpunkt till slutpunkt i ett enda arbetsflöde.
  • Beständighet.: Ett arbetsflöde sparas (eller markeras) vid specifika punkter som definieras av dess författare så att du kan återuppta arbetsflödet från den senast bevarade uppgiften (eller kontrollpunkten) i stället för att starta om arbetsflödet från början.
  • Robusthet. Automatisk återställning av fel. Arbetsflöden överlever planerade och oplanerade omstarter. Du kan pausa arbetsflödeskörningen och sedan återuppta arbetsflödet från den senaste beständighetspunkten. Arbetsflödesförfattare kan ange specifika aktiviteter som ska köras om vid fel på en eller flera hanterade noder.
  • Möjlighet att koppla från, återansluta och köra i frånkopplade sessioner. Användare kan ansluta och koppla 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 scenarier med hög tillgänglighet.

Windows PowerShell Web Access

Windows PowerShell Web Access är en Windows Server 2012 funktion 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ärrhanteringsprogram eller plugin-installationer för webbläsare. Allt som krävs är en korrekt konfigurerad Windows PowerShell Web Access-gateway och en klientenhetswebbläsare som stöder JavaScript och accepterar cookies.

Mer information finns i Distribuera Windows PowerShell Web Access.

Nya Windows PowerShell ISE-funktioner

För Windows PowerShell 3.0 har Windows PowerShell ISE (Integrated Scripting Environment) många nya funktioner, inklusive IntelliSense, Show-Command fönster, ett enhetligt konsolfönster, kodfragment, klammerparentesmatchning, expand-collapse-avsnitt, automatisk sparande, senaste objektlista, omfattande kopiering, blockkopiering och fullständigt stöd för att skriva Windows PowerShell skript Arbetsflöden. Mer information finns i about_Windows_PowerShell_ISE.

Support för Microsoft .NET Framework 4

Windows PowerShell skapas mot Common Language Runtime 4.0. Cmdlet-, skript- och arbetsflödesförfattare kan använda de nya Microsoft .NET Framework 4-klasserna i Windows PowerShell, med funktioner som programkompatibilitet och distribution, Managed Extensibility Framework, parallell databehandling, nätverk, 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 som inte har något operativsystem och förbereder den för Windows-installation. Windows PE kan användas för att partitioneras och formatera hårddiskar, kopiera diskavbildningar till en dator och initiera Installationsprogrammet för Windows från en nätverksresurs. Windows PowerShell 3.0 kan användas i Windows PE för att hantera distributions-, diagnostik- och återställningsscenarier.

Frånkopplade sessioner

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

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

Parametern ComputerName för cmdleten Get-PSSession hämtar 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, hämta resultatet av kommandon, starta nya kommandon och sedan koppla från sessionen.

Nya cmdletar har lagts till för att stödja funktionen Frånkopplade sessioner, inklusive Disconnect-PSSession, Connect-PSSessionoch Receive-PSSession, och nya parametrar har lagts till i cmdletar som hanterar PSSessioner, till exempel parametern InDisconnectedSession för cmdleten Invoke-Command .

Funktionen Frånkopplade sessioner stöds endast när datorerna i både den ursprungliga ("klienten") och avslutande ("servern") slutar anslutningen körs Windows PowerShell 3.0.

Robust sessionsanslutning

Windows PowerShell 3.0 identifierar oväntade anslutningsförluster mellan klienten och servern och försöker återupprätta anslutningen och återuppta körningen automatiskt. Om klient-server-anslutningen inte kan återupprättas inom den tilldelade tiden meddelas användaren och sessionen kopplas från. Under försöket att återansluta ger Windows PowerShell kontinuerlig feedback 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 körningen.

Dessa funktioner ger en mer tillförlitlig och återställningsbar fjärrkommunikationsupplevelse och gör det möjligt för användare att utföra långvariga uppgifter som kräver robusta sessioner, till exempel arbetsflöden.

Uppdateringsbart hjälpsystem

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

Om du vill använda de uppdaterade hjälpfilerna skriver du Get-Helpbara . Du behöver inte starta om Windows eller Windows PowerShell. Om du vill uppdatera hjälpen för moduler i katalogen $pshome börjar du 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 ned hjälpfiler till en filsystemkatalog, till exempel en filresurs. Användarna kan sedan använda cmdleten Update-Help för att få uppdaterade hjälpfiler från filresursen.

Du kan använda cmdleten Update-Help för att uppdatera hjälpfiler för alla eller vissa moduler i alla gränssnittskulturer som stöds. Du kan till och med placera ett Update-Help kommando i din Windows PowerShell profil. Som standard hämtar Windows PowerShell hjälpfilerna för en modul högst en gång om dagen.

Windows 8- och Windows Server 2012-moduler innehåller inte hjälpfiler. Om du vill ladda ned de senaste hjälpfilerna skriver du Update-Help. Mer information finns i 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 innehåller kommandosyntaxen och instruktionerna för att använda cmdleten Update-Help för att ladda ned hjälpfiler.

Alla modulförfattare har stöd för uppdateringsbar hjälp för sina moduler. Du kan inkludera hjälpfiler i modulen och använda Uppdateringsbar hjälp för att uppdatera dem eller utelämna hjälpfilerna och använda Uppdateringsbar hjälp för att installera dem. Mer information om hur du stöder uppdateringsbar hjälp finns i Stöd för uppdateringsbar hjälp.

Förbättrad onlinehjälp

Windows PowerShell onlinehjälp är en värdefull resurs för alla användare, men det är särskilt viktigt för användare som inte installerar eller inte kan installera uppdaterade hjälpfiler.

Om du vill ha onlinehjälp för alla Windows PowerShell cmdletar skriver du:

Get-Help <cmdlet-name> -Online

Windows PowerShell öppnar onlineversionen av hjälpavsnittet i standardwebbläsaren.

Funktionen Get-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. Funktionen Get-Help -Online hämtar URI:n för onlinehjälp från helpuri-egenskapen för cmdletar 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#-cmdletar fylla i egenskapen HelpUri genom att skapa ett HelpUri-attribut för cmdlet-klassen. Författare av avancerade funktioner kan definiera en HelpUri-egenskap för attributet CmdletBinding . Värdet för 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 till en XML-baserad cmdlet-hjälpfil eller . Länkdirektiv för kommentarsbaserad hjälp i en funktion.

Mer information om hur du stöder onlinehjälp finns i Support onlinehjälp.

CIM-integrering

Windows PowerShell 3.0 innehåller stöd för Common Information Model (CIM), som tillhandahåller gemensamma definitioner av hanteringsinformation för system, nätverk, program och tjänster, vilket gör att de kan utbyta hanteringsinformation mellan heterogena system. Stöd för CIM i Windows PowerShell 3.0, inklusive möjligheten att skapa Windows PowerShell cmdletar baserat på nya eller befintliga CIM-klasser, kommandon baserade på XML-filer för cmdlet-definition, stöd för CIM-.NET Framework. API, CIM-hanterings-cmdletar och WMI 2.0-providers.

Sessionskonfigurationsfiler

Från och med Windows PowerShell 3.0 kan du utforma en anpassad sessionskonfiguration med hjälp av en fil. Med den nya sessionskonfigurationsfilen kan du bestämma vilken miljö av sessioner som använder sessionskonfigurationen, inklusive vilka moduler, skript och formatfiler som läses in i sessioner, vilka cmdletar och språkelement som användare kan använda, vilka moduler och skript de kan köra och vilka variabler de kan se.

Du kan utforma en session där användare bara kan köra cmdletar från en viss modul eller en session där användare har fullständigt språk, åtkomst till alla moduler och åtkomst till skript som utför avancerade uppgifter.

I tidigare versioner av Windows PowerShell var kontrollen på den här nivån endast tillgänglig för dem som kunde skriva ett C#-program eller ett komplext startskript. Nu kan alla medlemmar i gruppen Administratörer på datorn anpassa en sessionskonfiguration med hjälp av en konfigurationsfil.

Om du vill skapa en sessionskonfigurationsfil använder du cmdleten New-PSSessionConfigurationFile . Om du vill tillämpa sessionskonfigurationsfilen på en sessionskonfiguration använder du cmdletarna Register-PSSessionConfiguration eller "Set-PSSessionConfiguration".

Mer information finns i about_Session_Configuration_Files och New-PSSessionConfigurationFile.

Integrering av schemalagda jobb och schemaläggaren

Du kan nu schemalägga Windows PowerShell bakgrundsjobb och hantera dem i Windows PowerShell och i Schemaläggaren.

Windows PowerShell schemalagda jobb är en användbar hybrid av Windows PowerShell bakgrundsjobb och schemaläggaraktiviteter.

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-cmdletar, till exempel Start-Job och Get-Job.

Precis som schemaläggaraktiviteter kan du köra schemalagda jobb enligt ett engångs- eller återkommande schema, eller som svar på en åtgärd eller händelse. Du kan visa och hantera schemalagda jobb i Schemaläggaren, aktivera och inaktivera dem efter behov, köra dem eller använda dem som mallar och ange villkor under vilka jobben startar.

Dessutom levereras schemalagda jobb med en anpassad uppsättning cmdletar för att hantera dem. Med cmdletarna kan du skapa, redigera, hantera, inaktivera och återaktivera schemalagda jobb, skapa schemalagda jobbutlösare och ange alternativ för schemalagt jobb.

Mer information om schemalagda jobb finns i about_Scheduled_Jobs.

språkförbättringar för Windows PowerShell

Windows PowerShell 3.0 innehåller många funktioner som är utformade för att göra språket enklare att använda och för att undvika vanliga fel. Förbättringarna omfattar egenskapsuppräkning, antal och längdegenskaper för skalärobjekt, nya omdirigeringsoperatorer, $Using omfångsmodifierare, automatisk PSItem-variabel, flexibel skriptformatering, attribut för variabler, förenklade attributargument, numeriska kommandonamn, operatorn Stop-Parsing, förbättrad matrissplatting, nya bitoperatorer, ordnade ordlistor, PSCustomObject-omvandling och förbättrad kommentarsbaserad hjälp.

Nya core-cmdletar

Nya cmdletar har lagts till i Windows PowerShell installation, inklusive cmdletar för att hantera schemalagda jobb, frånkopplade sessioner, CIM-integrering och uppdateringsbart hjälpsystem.

  • 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 core-cmdletar och providrar

Windows PowerShell 3.0 innehåller nya funktioner för befintliga cmdletar, inklusive den förenklade syntaxen, och nya parametrar för följande cmdletar: Dator-cmdletar, CSV-cmdletar, 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.

De Windows PowerShell leverantörerna förbättrades också avsevärt, inklusive certifikatleverantörsstöd för hantering av SSL-certifikat (Secure Socket Layer) för webbvärdtjänster, stöd för autentiseringsuppgifter, beständiga nätverksenheter och alternativa dataströmmar på filsystemenheter.

Import och identifiering av fjärrmoduler

Windows PowerShell 3.0 utökar modulidentifiering, import och implicit fjärrkommunikation på fjärrdatorer. Modul-cmdletarna hämtar moduler på fjärrdatorer och importerar modulerna till fjärrdatorn eller den lokala datorn med hjälp av Windows PowerShell fjärrkommunikation. Med nytt stöd för CIM-sessioner kan du 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.

Mer information finns i hjälpavsnitten Get-Module för cmdletarna och Import-Module .

Utökad flikkomplettering

Tabbifyllning i Windows PowerShell-konsolen slutför nu namnen på cmdletar, parametrar, parametervärden, uppräkningar, .NET Frameworks-typer, COM-objekt, dolda kataloger med mera. Funktionen för tabbifyllning skrivs om helt baserat på ett nytt parser- och abstrakt syntaxträd för att stödja fler scenarier, inklusive minnesintern parsning av träd och midline-tabbifyllning.

Automatisk inläsning av modul

Cmdleten Get-Command hämtar nu alla cmdletar och funktioner från alla moduler som är installerade på datorn, även om modulen inte har importerats till den aktuella sessionen.

När du får den cmdlet som 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 en cmdlet i modulen. Du behöver inte längre söka efter modulen och importera den för att använda dess cmdletar.

Automatisk import av moduler utlöses med hjälp av cmdleten i ett kommando, körs Get-Command för en cmdlet utan jokertecken eller körs Get-Help för en cmdlet utan jokertecken.

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

Mer information finns i about_Modules, about_Preference_Variables och hjälpavsnitten Get-Command för cmdletarna och Import-Module .

Förbättringar av modulupplevelsen

Windows PowerShell 3.0 ger avancerat funktionsstöd till moduler, inklusive följande nya funktioner.

  1. Modulloggning för enskilda moduler (LogPipelineExecutionDetails) och den nya inställningen "Aktivera modulloggning" grupprincip
  2. Utökade modulobjekt som exponerar värdena från modulmanifestet
  3. Ny ExportedCommands-egenskap för moduler, inklusive kapslade moduler, som kombinerar kommandon av alla typer
  4. Förbättrad identifiering av tillgängliga (oimporterade) moduler, inklusive att tillåta 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 fullständigt kvalificerade nödvändiga moduler med version och GUID och automatisk import av nödvändiga moduler
  7. Tystare, strömlinjeformad drift av cmdleten New-ModuleManifest .
  8. Ny modulparameter för #Requires
  9. Förbättrad Import-Module cmdlet med parametrarna MinimumVersion och RequiredVersion .

Förenklad kommandoidentifiering

Du behöver inte längre importera alla moduler för att identifiera de kommandon som är tillgängliga för sessionen. 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 sessionen.

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

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

Windows PowerShell 3.0 förbättrar loggnings- och spårningsstödet för kommandon och moduler med stöd för händelsespårning i Windows-loggar (ETW), en redigerbar LogPipelineExecutionDetails-egenskap för moduler och inställningen "Aktivera modulloggning" grupprincip. Nu kan du hämta parametervärden från logginformationen genom att visa loggegenskaperna.

Förbättringar av formatering och utdata

Nya formaterings- och utdataförbättringar förbättrar effektiviteten för alla Windows PowerShell användare. Förbättringarna omfattar omdirigering av utdata för alla strömmar, en förbättrad Update-Type-cmdlet som lägger till typer dynamiskt utan Format.ps1xml-filer, radbyte i utdata, standardformateringsegenskaper för anpassade objekt, TYPEN PSCustomObject , förbättrad formatering för WMI-objekt och heterogena objekt samt stöd för identifiering av metodöverbelastningar.

Förbättrad konsolvärdupplevelse

Windows PowerShell-konsolvärdprogrammet har nya funktioner i Windows PowerShell 3.0, inklusive en trådad lägenhet som standard. Med det nya alternativet "Kör med PowerShell" i Utforskaren kan du köra skript i en obegränsad session genom att högerklicka. Den nya konsolvärdstartlogiken startar Windows PowerShell snabbare och med nya teckensnitt kan du anpassa den välbekanta konsolfönsterupplevelsen.

Nya cmdletar och värd-API:er

Det nya Cmdlet-API:et och värd-API:et innehåller API:er för offentligt avancerat syntaxträd (AST) och API:er för pipeline-växling, kapslade pipelines, slutförande av runspace-pooler, Windows RT, attributet Föråldrad cmdlet och verb- och substantivegenskaper för FunctionInfo-objektet.

Prestandaförbättringar

Betydande prestandaförbättringar i Windows PowerShell kommer från den nya språkparsern, som bygger på dynamiskt körningsspråk (DLR) i .NET Framework 4., tillsammans med kompilering av körningsskript, förbättringar av motorns tillförlitlighet och ändringar i algoritmen Get-ChildItem för som förbättrar dess prestanda, särskilt vid sökning av nätverksresurser.

Support för runas och delad värd

Windows PowerShell 3.0 innehåller stöd för RunAs och delade värdfunktioner.

RunAs-funktionen, utformad för Windows PowerShell Workflow, låter användare av en sessionskonfiguration skapa sessioner som körs med behörighet för ett delat användarkonto. Detta gör det möjligt för mindre privilegierade användare att köra vissa kommandon och skript med administratörsbehörighet och minskar behovet av att lägga till mindre seniora användare i gruppen Administratörer.

Funktionen SharedHost gör att flera användare på flera datorer kan ansluta till en arbetsflödessession samtidigt och övervaka förloppet för ett arbetsflöde. Användare kan starta ett arbetsflöde på en dator och sedan ansluta till arbetsflödessessionen på en annan dator utan att koppla från sessionen från den ursprungliga datorn. Användarna måste ha samma behörigheter och använda samma sessionskonfiguration. Mer information finns i "Köra ett Windows PowerShell arbetsflöde" i Komma igång med Windows PowerShell Arbetsflöde.

Förbättringar av specialteckenhantering

För att förbättra möjligheten för Windows PowerShell 3.0 att tolka och hantera specialtecken korrekt är parametern LiteralPath, som hanterar specialtecken i sökvägar, giltig på nästan alla cmdletar som har en Path-parameter, inklusive de nya Update-Help och Save-Help cmdletarna. Parsern innehåller också särskild logik för att förbättra hanteringen av backtick-tecknet (`) och hakparenteser i filnamn och sökvägar.

Se även