viktig information om Windows Management Framework (WMF) 5.x

WMF 5.0-ändringar

  • PowerShell 5.0 lägger till en ny strukturerad informationsström
  • Förbättringar av DSC, inklusive fyra nya DSC-resurser:
    • WindowsFeatureSet
    • WindowsOptionalFeatureSet
    • ServiceSet
    • ProcessSet
  • Just Enough Administration har lagts till för att aktivera rollbaserad administration via PowerShell-fjärrkommunikation
  • PowerShell 5.0 utökar språket till att omfatta användardefinierade klasser och uppräkningar
  • Förbättrade felsökningsfunktioner i PowerShell ISE och fjärrfelsökning har lagts till
  • PowerShellGet- och PackageManagement-modulerna har lagts till
  • Förbättrad Loggning och avskrifter för PowerShell-skript
  • Lägg till cmdletar för kryptografisk meddelandesyntax
  • WMF 5.0 innehåller NetworkSwitchManager-modulen för Windows
  • Modulen Microsoft.PowerShell.ODataUtils har lagts till
  • Stöd har lagts till för SOFTWARE Inventory Logging (SIL)
  • Ta bort nya cmdletar eller uppdatera cmdletar som svar på användarbegäranden och problem

WMF 5.1-ändringar

WMF 5.1 innehåller komponenterna PowerShell, WMI, WinRM och SOFTWARE Inventory Logging (SIL) som släpptes med Windows Server 2016. WMF 5.1 kan installeras på Windows 7, Windows 8.1, Windows Server 2008 R2, 2012 och 2012 R2 och ger flera förbättringar jämfört med WMF 5.0, inklusive:

  • Nya cmdletar
  • PowerShellGet-förbättringarna omfattar att framtvinga signerade moduler och installera JEA-moduler
  • PackageManagement har lagt till stöd för containrar, CBS-installation, EXE-baserad installation, CAB-paket
  • Felsökningsförbättringar för DSC- och PowerShell-klasser
  • Säkerhetsförbättringar, inklusive framtvingning av katalogsignerade moduler som kommer från Pull-servern och när du använder PowerShellGet-cmdletar
  • Svar på ett antal förfrågningar och problem från användare

Viktigt

Innan du installerar WMF 5.1 på Windows Server 2008 eller Windows 7 kontrollerar du att WMF 3.0 inte är installerat. Mer information finns i WMF 5.1 Krav för Windows Server 2008 R2 SP1 och Windows 7 SP1.

PowerShell-utgåvor

Från och med version 5.1 är PowerShell tillgängligt i olika utgåvor som anger olika funktionsuppsättningar och plattformskompatibilitet.

  • Desktop Edition: bygger på .NET Framework och ger kompatibilitet med skript och moduler för versioner av PowerShell som körs på fullständiga utgåvor av Windows, till exempel Server Core och Windows Desktop.
  • Core Edition: bygger på .NET Core och ger kompatibilitet med skript och moduler för versioner av PowerShell som körs på begränsade utgåvor av Windows som Nano Server och Windows IoT.

Läs mer om att använda PowerShell-utgåvor

Cache för modulanalys

Från och med WMF 5.1 ger PowerShell kontroll över filen som används för att cachelagrar data om en modul, till exempel de kommandon som den exporterar.

Som standard lagras den här cachen i filen ${env:LOCALAPPDATA}\Microsoft\Windows\PowerShell\ModuleAnalysisCache. Cachen läse vanligtvis vid start när du söker efter ett kommando och skrivs i en bakgrundstråd någon gång efter att en modul har importerats.

Om du vill ändra standardplatsen för cachen anger du $env:PSModuleAnalysisCachePath miljövariabeln innan du startar PowerShell. Ändringar i den här miljövariabeln påverkar endast underordnade processer. Värdet ska namnge en fullständig sökväg (inklusive filnamn) som PowerShell har behörighet att skapa och skriva filer. Om du vill inaktivera filcachen anger du det här värdet till en ogiltig plats, till exempel:

$env:PSModuleAnalysisCachePath = 'nul'

Detta anger sökvägen till en ogiltig enhet. Om PowerShell inte kan skriva till sökvägen returneras inget fel, men du kan se felrapportering med hjälp av en spårning:

Trace-Command -PSHost -Name Modules -Expression { Import-Module Microsoft.PowerShell.Management -Force }

När du skriver ut cacheminnet söker PowerShell efter moduler som inte längre finns för att undvika en onödigt stor cache. Ibland är dessa kontroller inte önskvärda. I så fall kan du inaktivera dem genom att ange:

$env:PSDisableModuleAnalysisCacheCleanup = 1

Inställningen av den här miljövariabeln börjar gälla omedelbart i den aktuella processen.

Ange modulversion

I WMF 5.1 using module fungerar på samma sätt som andra modulrelaterade konstruktioner i PowerShell. Tidigare hade du inget sätt att ange en viss modulversion. Om det fanns flera versioner resulterade detta i ett fel.

I WMF 5.1:

  • Du kan använda ModuleSpecification Constructor (Hashtable).

    Den här hash-tabellen har samma format som Get-Module -FullyQualifiedName.

    Exempel:using module @{ModuleName = 'PSReadLine'; RequiredVersion = '1.1'}

  • Om det finns flera versioner av modulen använder PowerShell samma lösningslogik som Import-Module och returnerar inte ett fel – samma beteende som Import-Module och Import-DscResource.

Förbättringar av Pester

I WMF 5.1 har versionen av Pester som levereras med PowerShell uppdaterats från 3.3.5 till 3.4.0. Den här uppdateringen ger bättre beteende för Pester på Nano Server.

Du kan granska ändringarna i Pest genom att granska CHANGELOG på GitHub-lagringsplatsen.