Delen via


about_Windows_Powershell_5.1

Korte beschrijving

Hierin worden nieuwe functies beschreven die zijn opgenomen in Windows PowerShell 5.1.

Lange beschrijving

Windows PowerShell 5.1 bevat belangrijke nieuwe functies die het gebruik uitbreiden, de bruikbaarheid verbeteren en u in staat stellen om windows-omgevingen eenvoudiger en uitgebreider te beheren.

Windows PowerShell 5.1 is compatibel met eerdere versies. Cmdlets, providers, modules, modules, modules, scripts, functies en profielen die zijn ontworpen voor Windows PowerShell 4.0, Windows PowerShell 3.0 en Windows PowerShell 2.0 werken doorgaans zonder wijzigingen in Windows PowerShell 5.1.

  • Nieuwe cmdlets: lokale gebruikers en groepen; Get-ComputerInfo
  • PowerShellGet-verbeteringen, waaronder het afdwingen van ondertekende modules en het installeren van JEA-modules
  • Ondersteuning in PackageManagement toegevoegd voor Containers, CBS Setup, EXE-installatie en CAB-pakketten
  • Verbeteringen in foutopsporing voor DSC- en PowerShell-klassen
  • Beveiligingsverbeteringen, waaronder de handhaving van door catalogus ondertekende modules die afkomstig zijn van de pull-server, gebruikt in combinatie met PowerShellGet-cmdlets
  • Antwoorden op een aantal gebruikersaanvragen en -problemen

Windows PowerShell 5.1 is standaard geïnstalleerd op Windows Server versie 2016 en hoger en Windows-clientversie 10 en hoger.

Zie WMF 5.1 installeren en configureren als u Windows PowerShell 5.1 wilt installeren in oudere versies van Windows. Lees de downloaddetails en voldoet aan alle systeemvereisten voordat u Windows Management Framework 5.1 installeert.

U kunt ook lezen over wijzigingen in Windows PowerShell 5.1 in Wat is er nieuw in Windows PowerShell.

PowerShell-edities

Vanaf versie 5.1 is PowerShell beschikbaar in verschillende edities die staan voor verschillende functies en platformcompatibiliteit.

  • Desktop-editie: deze editie is gebaseerd op .NET Framework en biedt compatibiliteit met scripts en modules die zijn gericht op versies van PowerShell die worden uitgevoerd op edities van Windows met een volledige footprint zoals Server Core en Windows Desktop.
  • Core-editie: deze editie is gebaseerd op .NET Framework en biedt compatibiliteit met scripts en modules die zijn gericht op versies van PowerShell die worden uitgevoerd op edities van Windows met een verminderde footprint zoals Nano Server en Windows IoT.

Meer informatie over het gebruik van PowerShell-edities

Catalogus-cmdlets

Er zijn twee nieuwe cmdlets toegevoegd in de module Microsoft.PowerShell.Security . Met deze cmdlets worden Windows-catalogusbestanden gegenereerd en gevalideerd.

New-FileCatalog

New-FileCatalog maakt een Windows-catalogusbestand voor een set mappen en bestanden. Dit catalogusbestand bevat hashes voor alle bestanden in opgegeven paden. Gebruikers kunnen de set mappen samen met het bijbehorende catalogusbestand dat deze mappen vertegenwoordigt distribueren. Deze informatie is handig om te controleren of er wijzigingen zijn aangebracht in de mappen sinds het maken van de catalogus.

New-FileCatalog [-CatalogFilePath] <string> [[-Path] <string[]>]
 [-CatalogVersion <int>] [-WhatIf] [-Confirm] [<CommonParameters>]

Catalogusversie 1 en 2 worden ondersteund. Versie 1 maakt gebruik van het SHA1-hashingalgoritme om bestandshashes te maken; versie 2 maakt gebruik van SHA256. U moet catalogusversie 2 gebruiken.

Als u de integriteit van het catalogusbestand (Pester.cat in het bovenstaande voorbeeld) wilt controleren, ondertekent u dit met de set-AuthenticodeSignature-cmdlet .

Test-FileCatalog

Test-FileCatalog valideert de catalogus die een set mappen vertegenwoordigt.

Test-FileCatalog [-Detailed] [-FilesToSkip <String[]>]
 [-CatalogFilePath] <String> [[-Path] <String[]>]
 [-WhatIf] [-Confirm] [<CommonParameters>]

Met deze cmdlet worden alle bestands-hashes en de bijbehorende relatieve paden in een catalogus vergeleken met bestanden op schijf. Als er sprake is van een onjuiste overeenkomst tussen bestands-hashes en paden, wordt de status geretourneerd als ValidationFailed. Gebruikers kunnen al deze informatie ophalen met behulp van de gedetailleerde parameter. Er wordt ook de ondertekeningsstatus van de catalogus weergegeven in de eigenschap Signature , wat gelijk is aan het aanroepen van de Get-AuthenticodeSignature-cmdlet in het catalogusbestand. Gebruikers kunnen ook elk bestand tijdens de validatie overslaan met behulp van de parameter FilesToSkip .

Cache voor moduleanalyse

Vanaf WMF 5.1 biedt PowerShell controle over het bestand dat wordt gebruikt voor het opslaan van gegevens over een module, zoals de opdrachten die worden geëxporteerd.

Deze cache wordt standaard opgeslagen in het bestand ${env:LOCALAPPDATA}\Microsoft\Windows\PowerShell\ModuleAnalysisCache. De cache wordt meestal gelezen bij het opstarten tijdens het zoeken naar een opdracht en wordt enige tijd op een achtergrondthread geschreven nadat een module is geïmporteerd.

Als u de standaardlocatie van de cache wilt wijzigen, stelt u de $env:PSModuleAnalysisCachePath omgevingsvariabele in voordat u PowerShell start. Wijzigingen in deze omgevingsvariabele zijn alleen van invloed op onderliggende processen. De waarde moet een volledig pad (inclusief bestandsnaam) noemen dat PowerShell gemachtigd is om bestanden te maken en te schrijven. Als u de bestandscache wilt uitschakelen, stelt u deze waarde in op een ongeldige locatie, bijvoorbeeld:

$env:PSModuleAnalysisCachePath = 'nul'

Hiermee stelt u het pad in op een ongeldig apparaat. Als PowerShell niet naar het pad kan schrijven, wordt er geen fout geretourneerd, maar kunt u foutenrapportage zien met behulp van een tracer:

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

Bij het schrijven van de cache controleert PowerShell op modules die niet meer bestaan om onnodig grote cache te voorkomen. U kunt de controles uitschakelen met behulp van de volgende instelling:

$env:PSDisableModuleAnalysisCacheCleanup = 1

Het instellen van deze omgevingsvariabele wordt onmiddellijk van kracht in het huidige proces.

Moduleversie opgeven

In WMF 5.1 using module gedraagt zich hetzelfde als andere modulegerelateerde constructies in PowerShell. Voorheen was het niet mogelijk om een bepaalde moduleversie op te geven. Als er meerdere versies aanwezig waren, is er een fout opgetreden.

In WMF 5.1:

  • U kunt ModuleSpecification Constructor (Hashtable) gebruiken. Deze hashtabel heeft dezelfde indeling als Get-Module -FullyQualifiedName.

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

  • Als er meerdere versies van de module zijn, gebruikt PowerShell dezelfde oplossingslogica als Import-Module en wordt er geen fout geretourneerd.

Verbeteringen in Pester

In WMF 5.1 is de versie van Pester die wordt geleverd met PowerShell bijgewerkt van 3.3.5 naar 3.4.0. U kunt de wijzigingen in versie 3.3.5 naar 3.4.0 bekijken door het CHANGELOG in de GitHub-opslagplaats te controleren.

ZOEKWOORDEN

Wat is er nieuw in Windows PowerShell 5.1