Versionshinweise zu Windows Management Framework (WMF) 5.x
WMF 5.0 Änderungen
- PowerShell 5.0 fügt einen neuen strukturierten Information Stream hinzu.
- Verbesserungen an DSC einschließlich vier neuer DSC-Ressourcen:
- WindowsFeatureSet
- WindowsOptionalFeatureSet
- ServiceSet
- ProcessSet
- Just Enough Administration hinzugefügt, um die rollenbasierte Verwaltung über PowerShell-Remoting zu aktivieren
- PowerShell 5.0 erweitert die Sprache um benutzerdefinierte Klassen und Enumerationen.
- Verbesserte Debugfeatures in PowerShell ISE und hinzufügen Remotedebugging
- PowerShellGet- und PackageManagement-Module hinzugefügt
- Erweiterte PowerShell-Skriptprotokollierung und Transkriptionen
- Hinzufügen von Cmdlets für kryptografische Nachrichtensyntax
- WMF 5.0 enthält das NetworkSwitchManager-Modul für Windows
- Das Modul "Microsoft.PowerShell.ODataUtils" wurde hinzugefügt.
- Unterstützung für die Softwareinventurprotokollierung (SOFTWARE Inventory Logging, SIL) hinzugefügt
- Neue Cmdlets abtrennen oder aktualisieren als Reaktion auf Benutzeranforderungen und Probleme
WMF 5.1 Änderungen
WMF 5.1 enthält die Komponenten PowerShell, WMI, WinRM und Software Inventory Logging (SIL), die mit Windows Server 2016 veröffentlicht wurden. WMF 5.1 kann unter Windows 7, Windows 8.1, Windows Server 2008 R2, 2012 und 2012 R2 installiert werden und bietet verschiedene Verbesserungen gegenüber WMF 5.0, darunter:
- Neue Cmdlets
- PowerShellGet-Verbesserungen umfassen das Erzwingen signierter Module und das Installieren von JEA-Modulen
- PackageManagement hat Unterstützung für Container, CBS Setup, EXE-basiertes Setup, CAB-Pakete hinzugefügt
- Debuggingverbesserungen für DSC- und PowerShell-Klassen
- Sicherheitsverbesserungen, einschließlich der Erzwingung von katalogsignierten Modulen, die vom Pullserver stammen, und bei Verwendung von PowerShellGet-Cmdlets
- Antworten auf eine Reihe von Benutzeranforderungen und Problemen
Wichtig
Vergewissern Sie sich vor der Installation von WMF 5.1 unter Windows Server 2008 oder Windows 7, dass WMF 3.0 nicht installiert ist. Weitere Informationen finden Sie unter WMF 5.1 Prerequisites for Windows Server 2008 R2 SP1 and Windows 7 SP1.
PowerShell-Editionen
Ab Version 5.1 ist PowerShell in verschiedenen Editionen verfügbar, die unterschiedliche Featuresätze und Plattformkompatibilität angeben.
- Desktop Edition: Basiert auf .NET Framework und bietet Kompatibilität mit Skripts und Modulen für Versionen von PowerShell, die auf vollständigen Fußabdruckeditionen von Windows wie Server Core und Windows Desktop ausgeführt werden.
- Core Edition: Basiert auf .NET Core und bietet Kompatibilität mit Skripts und Modulen für Versionen von PowerShell, die auf reduzierten Speicherbedarfseditionen von Windows wie Nano Server und Windows IoT ausgeführt werden.
Weitere Informationen zur Verwendung von PowerShell-Editionen
- Ermitteln der ausgeführten Edition von PowerShell mithilfe von $PSVersionTable
- Filtern Get-Module Ergebnisse nach CompatiblePSEditions mithilfe des PSEdition-Parameters
- Verhindern der Skriptausführung, es sei denn, es wird auf einer kompatiblen Edition von PowerShell- ausgeführt
- Deklarieren der Kompatibilität eines Moduls mit bestimmten PowerShell-Versionen
Modulanalysecache
Ab WMF 5.1 bietet PowerShell die Kontrolle über die Datei, die zum Zwischenspeichern von Daten über ein Modul verwendet wird, z. B. die exportierten Befehle.
Dieser Cache wird standardmäßig in der Datei ${env:LOCALAPPDATA}\Microsoft\Windows\PowerShell\ModuleAnalysisCache
gespeichert. Der Cache wird normalerweise beim Start gelesen, während er nach einem Befehl sucht und irgendwann nach dem Importieren eines Moduls in einen Hintergrundthread geschrieben wird.
Um den Standardspeicherort des Caches zu ändern, legen Sie die $env:PSModuleAnalysisCachePath
Umgebungsvariable vor dem Starten von PowerShell fest. Änderungen an dieser Umgebungsvariable wirken sich nur auf untergeordnete Prozesse aus. Der Wert sollte einen vollständigen Pfad (einschließlich Dateinamen) benennen, den PowerShell zum Erstellen und Schreiben von Dateien besitzt. Um den Dateicache zu deaktivieren, legen Sie diesen Wert auf einen ungültigen Speicherort fest, z. B.:
$env:PSModuleAnalysisCachePath = 'nul'
Dadurch wird der Pfad zu einem ungültigen Gerät festgelegt. Wenn PowerShell nicht in den Pfad schreiben kann, wird kein Fehler zurückgegeben, aber Sie können die Fehlerberichterstattung mithilfe eines Ablaufverfolgungselements anzeigen:
Trace-Command -PSHost -Name Modules -Expression { Import-Module Microsoft.PowerShell.Management -Force }
Beim Schreiben des Caches sucht PowerShell nach Modulen, die nicht mehr vorhanden sind, um einen unnötig großen Cache zu vermeiden. Manchmal sind diese Prüfungen nicht wünschenswert, in diesem Fall können Sie sie deaktivieren, indem Sie Folgendes festlegen:
$env:PSDisableModuleAnalysisCacheCleanup = 1
Das Festlegen dieser Umgebungsvariable wird sofort im aktuellen Prozess wirksam.
Angeben der Modulversion
In WMF 5.1 verhält sich using module
auf die gleiche Weise wie andere modulbezogene Konstruktionen in PowerShell.
Zuvor hatten Sie keine Möglichkeit, eine bestimmte Modulversion anzugeben; wenn mehrere Versionen vorhanden waren, hat dies zu einem Fehler geführt.
In WMF 5.1:
Sie können ModuleSpecification-Konstruktor (Hashtable)verwenden.
Diese Hashtabelle hat das gleiche Format wie
Get-Module -FullyQualifiedName
.Beispiel:
using module @{ModuleName = 'PSReadLine'; RequiredVersion = '1.1'}
Wenn mehrere Versionen des Moduls vorhanden sind, verwendet PowerShell die gleiche Auflösungslogik wie
Import-Module
und gibt kein Fehler zurück – dasselbe Verhalten wieImport-Module
undImport-DscResource
.
Verbesserungen an Pester
In WMF 5.1 wurde die Version von Pester, die mit PowerShell ausgeliefert wird, von 3.3.5 auf 3.4.0 aktualisiert. Dieses Update ermöglicht ein besseres Verhalten für Pester auf Nano Server.
Sie können die Änderungen in Pest überprüfen, indem Sie das CHANGELOG- im GitHub-Repository überprüfen.