Delen via


Wat is er nieuw in Windows PowerShell 5.0

Windows PowerShell 5.0 bevat aanzienlijke nieuwe functies die het gebruik verlengen, de bruikbaarheid verbeteren en je in staat stellen Windows-gebaseerde omgevingen gemakkelijker en uitgebreider te beheren.

Windows PowerShell 5.0 is achterwaarts compatibel. Cmdlets, providers, modules, snap-ins, scripts, functies en profielen die zijn ontworpen voor Windows PowerShell 4.0, Windows PowerShell 3.0 en Windows PowerShell 2.0, werken over het algemeen zonder wijzigingen in Windows PowerShell 5.0.

Windows PowerShell installeren

Windows PowerShell 5.0 is standaard geïnstalleerd op Windows Server 2016 Technical Preview en Windows 10.

Om Windows PowerShell 5.0 te installeren op Windows Server 2012 R2, Windows 8.1 Enterprise of Windows 8.1 Pro, download en installeer je Windows Management Framework 5.0. Lees zeker de downloadgegevens en voldoe aan alle systeemvereisten voordat je Windows Management Framework 5.0 installeert.

In dit onderwerp

Windows PowerShell 4.0 updates update rollup in november 2014 (KB 3000850)

Veel updates en verbeteringen aan Windows PowerShell Desired State Configuration (DSC) in Windows PowerShell 4.0 zijn beschikbaar in de update rollup van november 2014 voor Windows RT 8.1, Windows 8.1 en Windows Server 2012 R2 (KB3000850). Je kunt bepalen of KB3000850 op je systeem is geïnstalleerd door Windows PowerShell te draaien Get-Hotfix -Id KB3000850 .

  • Updates van bestaande cmdlets in de PSDesiredStateConfiguration-module

  • Nieuwe cmdlets in de PSDesiredStateConfiguration-module

  • Taalverbeteringen

    • DependsOn ondersteunt nu samengestelde resources.
    • DependsOn ondersteunt nu nummers in resource-instantienamen.
    • Node-expressies die op leeg evalueren, geven geen fouten meer.
    • Een fout die optreedt als een knoopexpressie leeg wordt, is gecorrigeerd.
    • Configuraties die configuraties aanroepen werken nu in de Windows PowerShell-console.
  • Verbeteringen aan pull-modus

    • Pull-modus ondersteunt nu alle ZIP-bestanden.
    • AllowModuleOverwrite werkt nu correct.
  • Verbeteringen in veerkracht

    • Nieuwe DebugMode laat je resourcemodules opnieuw laden.
    • Als er een configuratiefout optreedt, wordt het pending.mof-bestand niet verwijderd.
    • De Local Configuration Manager (LCM) is nu veerkrachtiger wanneer metaconfiguratie-instellingen beschadigd zijn geraakt.
  • Diagnostische verbeteringen

    • Er wordt een waarschuwing weergegeven wanneer de LCM de timer op andere instellingen zet dan je hebt opgegeven.
    • Foutlogbestanden bevatten nu de aanroepstack voor Windows PowerShell-resources.
  • Flexibiliteitsverbeteringen

    • De LocalConfigurationManager-resource heeft een nieuwe eigenschap, ActionAfterReboot.
      • ContinueConfiguration (standaardwaarde): Hervat automatisch een configuratie nadat een doelknooppunt is herstart.
      • StopConfiguration: Hervat een configuratie niet automatisch nadat een node is herstart.
    • Een consistentierun kan nu vaker voorkomen dan een PULL-operatie, of omgekeerd.
    • Ondersteuning voor versiebeheer: DSC kan nu een document herkennen dat is gegenereerd op een nieuwere client (inbegrepen bij WMF 5.0).
  • Verbeteringen in foutpreventie

    • De moduleversie wordt nu gehandhaafd voordat een configuratie wordt toegepast.
    • DebugPreference is nu correct ingesteld voor Get-, Set- of Test-TargetResource aanroepen.
  • Verbeteringen in het afhandelen van de credentials

    • Er wordt nu een certificaat gebruikt als zowel Certificaat als PSDscAllowPlainTextPassword zijn opgegeven.
    • Inloggegevens worden ontsleuteld, zelfs voor Get-TargetResource.
    • Metaconfiguratie-credentials worden versleuteld en ontsleuteld.
    • PSCredentials worden nu ontsleuteld wanneer ze zich in een embedded object bevinden.
  • Ingebouwde bronverbeteringen

    • De Package-bron
      • Installeert niet langer het verkeerde pakket (zowel lokaal als via webbronnen).
      • Ondersteunt nu HTTPS.
    • Er is nu ondersteuning voor HTTPS in de Package-resource.
    • Archive resource ondersteunt nu inloggegevens.

Nieuwe functies in Windows PowerShell 5.0

Nieuwe functies in Windows PowerShell

  • Vanaf Windows PowerShell 5.0 kun je ontwikkelen met klassen, formele syntaxis en semantiek die vergelijkbaar zijn met andere objectgeoriënteerde programmeertalen. Class, Enum en andere trefwoorden zijn toegevoegd aan de Windows PowerShell-taal om de nieuwe functie te ondersteunen. Voor meer informatie over werken met klassen, zie about_Classes.

  • Windows PowerShell 5.0 introduceert een nieuwe, gestructureerde informatiestroom die je kunt gebruiken om gestructureerde data te verzenden tussen een script en de aanroepers (of hostingomgeving). Je kunt nu Write-Host gebruiken om output naar de informatiestroom te sturen. Informatiestromen werken ook voor PowerShell.Streams, taken, geplande taken en workflows. De volgende functies ondersteunen de informatiestroom.

    • Een nieuwe Write-Information-cmdlet waarmee je kunt specificeren hoe Windows PowerShell omgaat met informatiestroomgegevens voor een commando. Write-Host is een wrapper voor Write-Information. Write-Information is ook een ondersteunde workflowactiviteit.
    • Twee nieuwe veelvoorkomende parameters, InformationVariable en InformationAction, laten je bepalen hoe informatiestromen van een commando worden weergegeven. Geldige waarden voor InformationAction zijn SilentlyContinue, Stop, Continue, Inquire, Ignore of Suspend, waarbij SilentlyContinue de standaard is. InformationVariable specificeert een string als naam van een variabele waarin je de Write-Host data van een commando wilt opslaan.
    • Een nieuwe voorkeurvariabele, InformationPreference, specificeert je standaardvoorkeur voor informatiestroomgegevens in een Windows PowerShell-sessie. De standaardwaarde is SilentlyContinue.
    • Twee nieuwe workflow-gemeenschappelijke parameters, PSInformation en InformationAction, zijn toegevoegd.
    • Wanneer je het Format-Table-commando gebruikt, worden de kolommen in de tabel nu automatisch geformatteerd door de eerste 300 ms aan data die door de stroom gaat te evalueren.
  • In samenwerking met Microsoft Research is een nieuwe cmdlet, ConvertFrom-String, toegevoegd. ConvertFrom-String laat je gestructureerde objecten extraheren en parsen uit de inhoud van tekststrings. Voor meer informatie, zie ConvertFrom-String.

  • Een nieuwe Convert-String-cmdlet formatteert automatisch tekst op basis van een voorbeeld dat je geeft in een -Example parameter.

  • Een nieuwe module, Microsoft.PowerShell.Archive, bevat cmdlets waarmee je bestanden en mappen kunt comprimeren tot archiefbestanden (ook wel ZIP-bestanden genoemd), bestanden uit bestaande ZIP-bestanden kunt halen en ZIP-bestanden kunt updaten met nieuwere versies van bestanden die daarin zijn gecomprimeerd.

  • Een nieuwe module, PackageManagement, stelt je in staat softwarepakketten op het internet te ontdekken en te installeren. De PackageManagement (voorheen bekend als OneGet) module is een manager of multiplexer van bestaande pakketbeheerders (ook wel pakketproviders genoemd) om het Windows-pakketbeheer te verenigen met één enkele Windows PowerShell-interface.

  • Een nieuwe module, PowerShellGet, stelt je in staat modules en DSC-resources te vinden, installeren, publiceren en updaten in de PowerShell Gallery, of in een interne modulerepository die je kunt instellen door de Register-PSRepository cmdlet te draaien.

  • Er is een nieuw taalzoekwoord, Hidden, toegevoegd om aan te geven dat een lid (een eigenschap of een methode) standaard niet wordt weergegeven in Get-Member resultaten (tenzij je de parameter -Force toevoegt). Eigenschappen of methoden die als verborgen zijn gemarkeerd, verschijnen ook niet in IntelliSense-resultaten, tenzij je je in een context bevindt waarin het lid zichtbaar zou moeten zijn; Bijvoorbeeld, de automatische variabele $This zou verborgen leden moeten tonen wanneer in de class-methode.

  • Nieuw-item, Verwijder-Item en Get-ChildItem zijn verbeterd om het creëren en beheren van symbolische links te ondersteunen. De -ItemType-parameter voor New-Item accepteert een nieuwe waarde, SymbolicLink. Nu kun je symbolische links maken in één regel door de New-Item cmdlet uit te voeren.

  • Get-ChildItem heeft ook een nieuwe -Depth-parameter, die je samen met de -Recurse-parameter gebruikt om de recursie te beperken. Bijvoorbeeld, Get-ChildItem -Recurse -Depth 2 levert resultaten op van de huidige map, alle kindmappen binnen de huidige map, en alle mappen binnen de kindmappen.

  • Copy-Item laat je nu bestanden of mappen kopiëren van de ene Windows PowerShell-sessie naar de andere, wat betekent dat je bestanden kunt kopiëren naar sessies die verbonden zijn met externe computers (inclusief computers die Nano Server draaien en dus geen andere interface hebben). Om bestanden te kopiëren, specificeer je PSSession IDs als de waarde van de nieuwe -FromSession en -ToSession parameters, en voeg je -Path en -Destination toe om respectievelijk het oorsprongspad en de bestemming aan te geven. Bijvoorbeeld, Copy-Item -Path c:\myFile.txt -ToSession $s -Destination d:\destinationFolder.

  • De transcriptie van Windows PowerShell is verbeterd zodat deze ook geldt voor alle hostingapplicaties (zoals Windows PowerShell ISE) naast de consolehost (powershell.exe). Transcriptieopties (inclusief het inschakelen van een systeembrede transcriptie) kunnen worden geconfigureerd door de instelling PowerShell Transcription Group Policy aan te zetten, te vinden in Administrative Templates/Windows Components/Windows PowerShell.

  • Een nieuwe gedetailleerde scripttraceringfunctie stelt je in staat om gedetailleerde tracking en analyse van het gebruik van Windows PowerShell-scripting op een systeem in te schakelen. Nadat je detailed script tracing hebt ingeschakeld, logt Windows PowerShell alle scriptblokken naar het Event Tracing for Windows (ETW) event log, Microsoft-Windows-PowerShell/Operational.

  • Vanaf Windows PowerShell 5.0 ondersteunen nieuwe Cryptographic Message Syntax-cmdlets encryptie en ontsleuteling van inhoud met behulp van het IETF-standaardformaat voor cryptografische bescherming van berichten, zoals gedocumenteerd door RFC5652. De Get-CmsMessage, Protect-CmsMessage en Unprotect-CmsMessage cmdlets zijn toegevoegd aan de Microsoft.PowerShell.Security-module .

  • Nieuwe cmdlets in de Microsoft.PowerShell.Utility-module , Get-Runspace, Debug-Runspace, Get-RunspaceDebug, Enable-RunspaceDebug en Disable-RunspaceDebug, laten je debugopties instellen op een runspace, en starten en stoppen met debuggen op een runspace. Voor het debuggen van willekeurige runspaces (dat wil zeggen, runspaces die niet de standaardrunspace zijn voor een Windows PowerShell-console of Windows PowerShell ISE-sessie) laat Windows PowerShell je breakpoints in een script instellen en toegevoegde breakpoints stoppen het script totdat je een debugger kunt koppelen om het runspace-script te debuggen. Ondersteuning voor geneste debugging voor willekeurige runspaces is toegevoegd aan de Windows PowerShell-scriptdebugger voor runspaces.

  • Er is een nieuwe Format-Hex-cmdlet toegevoegd aan de Microsoft.PowerShell.Util-module . Format-Hex laat je tekst of binaire gegevens in hexadecimale vorm bekijken.

  • Get-Clipboard en Set-Clipboard cmdlets zijn toegevoegd aan de Microsoft.PowerShell.Utility-module ; ze vergemakkelijken het overzetten van inhoud van en naar een Windows PowerShell-sessie. De Klembord-cmdlets ondersteunen afbeeldingen, audiobestanden, bestandslijsten en tekst.

  • Een nieuwe cmdlet, Clear-RecycleBin, is toegevoegd aan de Microsoft.PowerShell.Management-module ; deze cmdlet maakt de Recycle Bin leeg voor een vaste schijf, waaronder externe schijven. Standaard wordt je gevraagd een Clear-RecycleBin-commando te bevestigen, omdat de ConfirmImpact-eigenschap van de cmdlet is ingesteld op ConfirmImpact.High.

  • Een nieuwe cmdlet, New-TemporaryFile, laat je een tijdelijk bestand aanmaken als onderdeel van scripting. Standaard wordt het nieuwe tijdelijke bestand aangemaakt in C:\Users\<user name>\AppData\Local\Temp.

  • De Out-File, Add-Content en Set-Content cmdlets hebben nu een nieuwe -NoNewline-parameter, die een nieuwe regel na de output weglaat.

  • De New-Guid cmdlet maakt gebruik van de .NET Framework Guid-klasse om een GUID te genereren, handig wanneer je scripts of DSC-bronnen schrijft.

  • Omdat bestandsversie-informatie misleidend kan zijn, vooral nadat een bestand is gepatcht, zijn er nieuwe scripteigenschappen van FileVersionRaw en ProductVersionRaw beschikbaar voor FileInfo-objecten. Je kunt bijvoorbeeld het volgende commando uitvoeren om de waarden van deze eigenschappen voor powershell.exeweer te geven, waarbij $pid de proces-ID bevat voor een lopende sessie van Windows PowerShell: Get-Process -Id $pid -FileVersionInfo | Format-List *version* -Force

  • Nieuwe cmdlets Enter-PSHostProcess en Exit-PSHostProcess laten je Windows PowerShell-scripts debuggen in processen die los staan van het huidige proces dat draait in de Windows PowerShell-console. Voer Enter-PSHostProcess uit om een specifieke proces-ID in te voeren of aan te hechten, en voer vervolgens Get-Runspace uit om de actieve runspaces binnen het proces terug te geven. Voer Exit-PSHostProcess uit om los te koppelen van het proces als je klaar bent met het debuggen van het script binnen het proces.

  • Er is een nieuwe Wait-Debugger-cmdlet toegevoegd aan de Microsoft.PowerShell.Util-module . Je kunt Wait-Debugger uitvoeren om een script in de debugger te stoppen voordat je de volgende instructie in het script uitvoert.

  • De Windows PowerShell Workflow-debugger ondersteunt nu commando- of tabbladvoltooiing, en je kunt geneste workflowfuncties debuggen. Je kunt nu op Ctrl+Break drukken om de debugger in een lopend script in te voeren, zowel in lokale als externe sessies, en in een workflow-script.

  • Er is een Debug-Job cmdlet toegevoegd aan de Microsoft.PowerShell.Core-module om het debuggen van jobscripts voor Windows PowerShell Workflow, achtergrond en taken die in externe sessies draaien.

  • Er is een nieuwe status, AtBreakpoint, toegevoegd voor Windows PowerShell-taken. De AtBreakpoint-status geldt wanneer een taak een script draait dat bepaalde breakpoints bevat, en het script een breakpoint heeft bereikt. Wanneer een taak wordt gestopt bij een debug-breakpoint, moet je de job debuggen door de Debug-Job cmdlet uit te voeren.

  • Windows PowerShell 5.0 implementeert ondersteuning voor meerdere versies van één Windows PowerShell-module in dezelfde map in $PSModulePath. Er is een eigenschap RequiredVersion toegevoegd aan de ModuleSpecificatie-klasse om je te helpen de gewenste versie van een module te krijgen; deze eigenschap is wederzijds exclusief met de ModuleVersion-eigenschap. RequiredVersion wordt nu ondersteund als onderdeel van de waarde van de FullyQualifiedName-parameter van de Get-Module, Import-Module en Remove-Module cmdlets.

  • Je kunt nu moduleversievalidatie uitvoeren door de Test-ModuleManifest cmdlet uit te voeren.

  • De resultaten van de Get-Command-cmdlet tonen nu een Versiekolom; een nieuwe Version-eigenschap is toegevoegd aan de CommandInfo-klasse. Get-Command toont commando's van meerdere versies van dezelfde module. De eigenschap Version maakt ook deel uit van afgeleide klassen van CmdletInfo: CmdletInfo en ApplicationInfo.

  • Get-Command heeft een nieuwe parameter, -ShowCommandInfo, die ShowCommand-informatie teruggeeft als PSObjects. Dit is vooral nuttige functionaliteit wanneer Show-Command wordt uitgevoerd in Windows PowerShell ISE met Windows PowerShell terugschakeling. De parameter -ShowCommandInfo vervangt de bestaande Get-SerializedCommand-functie in de Microsoft.PowerShell.Utility-module, maar het Get-SerializedCommand-script is nog steeds beschikbaar om downlevel scripting te ondersteunen.

  • Een nieuwe Get-ItemPropertyValue-cmdlet laat je de waarde van een eigenschap krijgen zonder dot-notatie te gebruiken. Bijvoorbeeld, in oudere versies van Windows PowerShell kun je het volgende commando uitvoeren om de waarde van de Application Base-eigenschap van de PowerShellEngine-registersleutel te krijgen: (Get-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\PowerShell\3\PowerShellEngine -Name ApplicationBase). ApplicationBase. Vanaf Windows PowerShell 5.0 kun je Get-ItemPropertyValue -Path HKLM:\SOFTWARE\Microsoft\PowerShell\3\PowerShellEngine -Name ApplicationBase draaien.

  • De Windows PowerShell-console gebruikt nu syntaxiskleuring, net als in Windows PowerShell ISE.

  • Een nieuwe NetworkSwitch-module bevat cmdlets waarmee je switch, virtueel LAN (VLAN) en basis Layer 2 netwerkswitchpoortconfiguratie kunt toepassen op Windows Server 2012 R2-logo-gecertificeerde netwerkswitches.

  • De FullyQualifiedName-parameter is toegevoegd aan Import-Module en Remove-Module cmdlets, om het opslaan van meerdere versies van één module te ondersteunen.

  • Save-Help, Update-Help, Import-PSSession, Export-PSSession en Get-Command hebben een nieuwe parameter, FullQualifiedModule, van het type ModuleSpecification. Voeg deze parameter toe om een module te specificeren met zijn volledig gekwalificeerde naam.

  • De waarde van $PSVersionTable.PSVersion is bijgewerkt naar 5.0.

  • WMF 5.0 (PowerShell 5.0) bevat de Pester-module . Pester is een unit testing-framework voor PowerShell. Het biedt een paar eenvoudig te gebruiken trefwoorden waarmee je tests kunt maken voor je scripts.

Nieuwe functies in Windows PowerShell Gewenste Toestandconfiguratie

  • Verbeteringen aan de Windows PowerShell-taal laten je Windows PowerShell Desired State Configuration (DSC)-resources definiëren met behulp van klassen. Import-DscResource is nu een echt dynamisch trefwoord; Windows PowerShell parseert de rootmodule van de gespecificeerde module en zoekt naar klassen die het attribuut DscResource bevatten. Je kunt nu klassen gebruiken om DSC-resources te definiëren, waarbij noch een MOF-bestand noch een DSCResource-submap in de modulemap nodig zijn. Een Windows PowerShell-modulebestand kan meerdere DSC-resourceklassen bevatten.
  • Een nieuwe parameter, ThrottleLimit, is toegevoegd aan de volgende cmdlets in de PSDesiredStateConfiguration-module. Voeg de ThrottleLimit-parameter toe om het aantal doelcomputers of apparaten aan te geven waarop je het commando tegelijk wilt laten werken.
    • Get-DscConfiguration
    • Get-DscConfigurationStatus
    • Get-DscLocalConfigurationManager
    • Restore-DscConfiguration
    • Test-DscConfiguration
    • Compare-DscConfiguration
    • Publish-DscConfiguration
    • Set-DscLocalConfigurationManager
    • Start-DscConfiguration
    • Update-DscConfiguration
  • Met gecentraliseerde DSC-foutrapportage wordt rijke foutinformatie niet alleen in het gebeurtenislogboek geregistreerd, maar kan deze ook naar een centrale locatie worden gestuurd voor latere analyse. Je kunt deze centrale locatie gebruiken om DSC-configuratiefouten op te slaan die zijn opgetreden voor elke server in hun omgeving. Nadat de rapportserver is gedefinieerd in de meta-configuratie, worden alle fouten naar de rapportserver gestuurd en vervolgens opgeslagen in een database. Je kunt deze functionaliteit instellen ongeacht of een doelnode is geconfigureerd om configuraties van een pullserver te halen.
  • Verbeteringen aan Windows PowerShell ISE vergemakkelijken het authoren van DSC-bronnen. Je kunt nu het volgende doen.
    • Vermeld alle DSC-bronnen binnen een configuratie- of nodeblok door Ctrl+Spatie in te voeren op een lege regel binnen het blok.
    • Automatische voltooiing van resource-eigenschappen van het enumeratietype .
    • Automatische voltooiing op de DependsOn-eigenschap van DSC-bronnen, gebaseerd op andere resource-instanties in de configuratie.
    • Verbeterde tab-aanvulling van resource-eigenschappen.
  • Een gebruiker kan nu een resource uitvoeren onder een gespecificeerde set inloggegevens door het PSDscRunAsCredential-attribuut toe te voegen aan een Node-blok. Bijvoorbeeld, PSDscRunAsCredential = Get-Credential Contoso\DscUser. Deze functionaliteit is nuttig voor het maken van configuraties die Windows Installer en uitvoerbare installers draaien, toegang krijgen tot de per-user registerhive, of andere taken buiten de huidige gebruikerscontext uitvoeren.
  • 32-bits (x86-gebaseerde) ondersteuning is toegevoegd voor het Configuration-sleutelwoord.
  • Windows PowerShell bevat nu ondersteuning voor aangepaste hulp voor DSC-configuraties, gedefinieerd door [CmdletBinding()] toe te voegen aan de gegenereerde configuratiefunctie.
  • Een nieuw DscLocalConfigurationManager-attribuut wijst een configuratieblok aan als een meta-configuratie, die wordt gebruikt om de DSC Local Configuration Manager te configureren. Dit attribuut beperkt een configuratie tot alleen items die de DSC Local Configuration Manager configureren. Tijdens de verwerking genereert deze configuratie een *.meta.mof-bestand dat vervolgens naar de juiste doelnodes wordt gestuurd door de Set-DscLocalConfigurationManager cmdlet uit te voeren.
  • Gedeeltelijke configuraties zijn nu toegestaan in Windows PowerShell 5.0. Je kunt configuratiedocumenten in fragmenten aan een node leveren. Om een knoop meerdere fragmenten van een configuratiedocument te laten ontvangen, moet de Local Configuration Manager van de knoop eerst worden ingesteld om de verwachte fragmenten te specificeren
  • Cross-computer synchronisatie is nieuw in DSC in Windows PowerShell 5.0. Met behulp van de ingebouwde WaitFor*-bronnen (WaitForAll, WaitForAny en WaitForSome) kun je nu afhankelijkheden tussen computers specificeren tijdens configuratieruns, zonder externe orkestraties. Deze bronnen bieden knooppunt-tot-knoop synchronisatie via CIM-verbindingen via het WS-Man protocol. Een configuratie kan wachten tot de specifieke resourcestatus van een andere computer verandert.
  • Just Enough Administration (JEA), een nieuwe beveiligingsfunctie voor delegering, maakt gebruik van runspaces met DSC- en Windows PowerShell-beperkingen om ondernemingen te helpen beschermen tegen dataverlies of compromittering door medewerkers, of dat nu opzettelijk of onbedoeld is. Voor meer informatie over JEA, inclusief waar je de xJEA DSC-bron kunt downloaden, zie Just Enough Administration.
  • De volgende nieuwe cmdlets zijn toegevoegd aan de PSDesiredStateConfiguration-module.
    • Een nieuwe Get-DscConfigurationStatus cmdlet krijgt hoog-niveau informatie over configuratiestatus van een doelknoop. Je kunt de status van de laatste, of van alle configuraties, verkrijgen.
    • Een nieuwe Compare-DscConfiguration-cmdlet vergelijkt een gespecificeerde configuratie met de werkelijke toestand van een of meer doelknooppunten.
    • Een nieuwe Publish-DscConfiguration-cmdlet kopieert een configuratie-MOF-bestand naar een doelnode, maar past de configuratie niet toe. De configuratie wordt toegepast tijdens de volgende consistentiepass, of wanneer je de Update-DscConfiguration cmdlet uitvoert.
    • Een nieuwe Test-DscConfiguration-cmdlet laat je verifiëren dat een resulterende configuratie overeenkomt met de gewenste configuratie, waarbij ofwel True wordt teruggegeven als de configuratie overeenkomt met de gewenste configuratie, of False als de daadwerkelijke configuratie niet overeenkomt met de gewenste configuratie.
    • Een nieuwe Update-DscConfiguration cmdlet dwingt een configuratie te verwerken. Als de Local Configuration Manager in pull-modus staat, haalt de cmdlet de configuratie van de pull-server voordat deze wordt toegepast.

Nieuwe functies in Windows PowerShell ISE

  • Je kunt nu remote Windows PowerShell-scripts en -bestanden bewerken in een lokale kopie van Windows PowerShell ISE, door Enter-PSSession te draaien om een externe sessie te starten op de computer die de bestanden opslaat die je wilt bewerken, en vervolgens het PSEdit-pad <en de bestandsnaam op de externe computer> te draaien. Deze functie maakt het bewerken van Windows PowerShell-bestanden die zijn opgeslagen in de Server Core-installatieoptie van Windows Server eenvoudiger, waar Windows PowerShell ISE niet kan draaien.
  • De Start-Transcript cmdlet wordt nu ondersteund in Windows PowerShell ISE.
  • Je kunt nu remote scripts debuggen in Windows PowerShell ISE.
  • Een nieuw menucommando, Break All (Ctrl+B), breekt in de debugger voor zowel lokale als op afstand draaiende scripts.

Nieuwe functies in Windows PowerShell Web Services (Management OData IIS Extensie)

  • Vanaf Windows PowerShell 5.0 kun je een set Windows PowerShell-cmdlets genereren op basis van de functionaliteit die door een bepaald OData-endpoint wordt blootgesteld, door de Export-ODataEndpointProxy-cmdlet uit te voeren, te vinden in de nieuwe Microsoft.PowerShell.OdataUtils-module .

Opvallende bugfixes in Windows PowerShell 5.0

  • Windows PowerShell 5.0 bevat een nieuwe COM-implementatie, die aanzienlijke prestatieverbeteringen biedt wanneer je met COM-objecten werkt.
  • Significante prestatieverbeteringen zijn aangebracht bij de eerste tabvoltooiing in een Windows PowerShell-sessie, waardoor de tabbladvoltooiingstijd met bijna 500 ms is verkort.

Nieuwe functies in Windows PowerShell 4.0

Windows PowerShell 4.0 is backward-compatibel. Cmdlets, providers, modules, snap-ins, scripts, functies en profielen die zijn ontworpen voor Windows PowerShell 3.0 en Windows PowerShell 2.0 werken in Windows PowerShell 4.0 zonder wijzigingen.

Windows PowerShell 4.0 is standaard geïnstalleerd op Windows 8.1 en Windows Server 2012 R2. Om Windows PowerShell 4.0 te installeren op Windows 7 met SP1, of Windows Server 2008 R2, download en installeer je Windows Management Framework 4.0. Lees zeker de downloadgegevens en voldoe aan alle systeemvereisten voordat je Windows Management Framework 4.0 installeert.

Windows PowerShell 4.0 bevat de volgende nieuwe functies.

Nieuwe functies in Windows PowerShell

  • Windows PowerShell Desired State Configuration (DSC) is een nieuw beheersysteem in Windows PowerShell 4.0 dat het mogelijk maakt om configuratiegegevens uit te rollen en te beheren voor softwareservices en de omgeving waarin deze diensten draaien. Voor meer informatie over DSC, zie Get Started with Windows PowerShell Desired State Configuration.
  • Save-Help laat je nu hulp opslaan voor modules die op externe computers zijn geïnstalleerd. Je kunt Save-Help gebruiken om module Help te downloaden van een internetverbonden client (waarop niet alle modules waarvoor je hulp wilt noodzakelijk geïnstalleerd zijn), en vervolgens de opgeslagen Help kopiëren naar een externe gedeelde map of een externe computer zonder internettoegang.
  • De Windows PowerShell-debugger is verbeterd om het mogelijk te maken Windows PowerShell-workflows en scripts die op externe computers draaien. Windows PowerShell-workflows kunnen nu op scriptniveau worden gedebuggd vanaf de Windows PowerShell-opdrachtregel of Windows PowerShell ISE. Windows PowerShell-scripts, inclusief scriptworkflows, kunnen nu worden gedebuggd via externe sessies. Remote debugging-sessies worden bewaard over Windows PowerShell remote sessies die worden losgekoppeld en later weer verbonden.
  • Een RunNow-parameter voor Register-ScheduledJob en Set-ScheduledJob maakt het overbodig om een directe startdatum en -tijd in te stellen voor jobs met de Trigger-parameter .
  • Met Invoke-RestMethod en Invoke-WebRequest kun je nu alle headers instellen met de Headers-parameter. Hoewel deze parameter altijd heeft bestaan, was het een van de verschillende parameters voor de web-cmdlets die tot uitzonderingen of fouten leidden.
  • Get-Module heeft een nieuwe parameter, FullQualifiedName, van het type ModuleSpecification[]. De FullyQualifiedName-parameter van Get-Module laat je nu een module specificeren met de naam van de module, versie en eventueel de GUID daarvan.
  • De standaard uitvoeringsbeleidsinstelling op Windows Server 2012 R2 is RemoteSigned. Op Windows 8.1 is er geen verandering in de standaardinstelling.
  • Vanaf Windows PowerShell 4.0 wordt methode-aanroep met dynamische methodenamen ondersteund. Je kunt een variabele gebruiken om een methodenaam op te slaan en vervolgens de methode dynamisch aanroepen door de variabele aan te roepen.
  • Asynchrone workflowtaken worden niet langer verwijderd wanneer de time-outperiode die door de PSElapsedTimeoutSec-workflow gemeenschappelijke parameter is gespecificeerd, is verstreken.
  • Een nieuwe parameter, RepeatIndefinitely, is toegevoegd aan de commando's New-JobTrigger en Set-JobTrigger . Dit elimineert de noodzaak om een TimeSpan.MaxValue-waarde te specificeren voor de RepetitionDuration-parameter om een geplande taak herhaaldelijk voor een onbepaalde periode uit te voeren.
  • Er is een Passthru-parameter toegevoegd aan de Enable-JobTrigger en Disable-JobTrigger cmdlets. De Passthru-parameter toont alle objecten die door jouw commando worden gemaakt of gewijzigd.
  • De parameternamen voor het specificeren van een werkgroep in de Add-Computer- en Remove-Computer-cmdlets zijn nu consistent. Beide cmdlets gebruiken nu de parameter WorkgroupName.
  • Een nieuwe gemeenschappelijke parameter, PipelineVariable, is toegevoegd. PipelineVariable laat je de resultaten van een gepiped commando (of een deel daarvan) opslaan als een variabele die door de rest van de pipeline kan worden gestuurd.
  • Collectiefiltering met behulp van een methodensyntaxis wordt nu ondersteund. Dit betekent dat je nu een verzameling objecten kunt filteren met vereenvoudigde syntaxis, vergelijkbaar met die voor Where() of Where-Object, opgemaakt als een methode-aanroep. Het volgende is een voorbeeld: (Get-Process).where({$_. Naam -match 'powershell'})
  • De Get-Process-cmdlet heeft een nieuwe switchparameter, IncludeUserName.
  • Er is een nieuwe cmdlet, Get-FileHash, die een bestandshash teruggeeft in een van de verschillende formaten voor een gespecificeerd bestand.
  • In Windows PowerShell 4.0, als een module de DefaultCommandPrefix-sleutel in zijn manifest gebruikt, of als de gebruiker een module met de Prefixparameter importeert, toont de ExportedCommands-eigenschap van de module de commando's in de module met het prefix. Wanneer je de commando's uitvoert met de module-gekwalificeerde syntaxis ModuleName\CommandName, moeten de commandonamen het voorvoegsel bevatten.
  • De waarde van $PSVersionTable.PSVersion is bijgewerkt naar 4.0.
  • Waarbij() het gedrag van de operator is veranderd. Collection.Where('property -match name') het accepteren van een stringexpressie in het formaat "Property -CompareOperator Value" wordt niet langer ondersteund. De Where()- operator accepteert echter stringexpressies in het formaat van een scriptblok; Dit wordt nog steeds ondersteund.

Nieuwe functies in Windows PowerShell Integrated Scripting Environment (ISE)

  • Windows PowerShell ISE ondersteunt zowel Windows PowerShell Workflow-debugging als remote script-debugging.
  • IntelliSense-ondersteuning is toegevoegd voor Windows PowerShell Desired State Configuration-providers en -configuraties.

Nieuwe functies in Windows PowerShell Workflow

  • Er is ondersteuning toegevoegd voor een nieuwe PipelineVariable gemeenschappelijke parameter in de context van iteratieve pijplijnen, zoals die gebruikt worden door System Center Orchestrator; dat wil zeggen, pijplijnen die commando's simpelweg van links naar rechts uitvoeren, in tegenstelling tot tussendoor draaien via streaming.
  • Parameterbinding is aanzienlijk verbeterd om buiten tab-voltooiingsscenario's te werken, zoals met commando's die niet bestaan in de huidige runspace.
  • Ondersteuning voor aangepaste containeractiviteiten is toegevoegd aan Windows PowerShell Workflow. Als een activiteitsparameter van het type Activity, Activity[] is (of een generieke verzameling activiteiten) en de gebruiker een scriptblok als argument heeft gegeven, dan converteert Windows PowerShell Workflow het scriptblok naar XAML, zoals bij normale Windows PowerShell-script-naar-workflow compilatie.
  • Na een crash maakt Windows PowerShell Workflow automatisch weer verbinding met beheerde nodes.
  • Je kunt nu Foreach -Parallel activity statements throttlen met de ThrottleLimit-eigenschap .
  • De gemeenschappelijke parameter ErrorAction heeft een nieuwe geldige waarde, Suspend, die exclusief voor workflows geldt.
  • Een workflow-endpoint sluit nu automatisch als er geen actieve sessies, geen lopende taken en geen lopende taken zijn. Deze functie bespaart middelen op de computer die als workflowserver fungeert, wanneer aan de automatische sluitingsvoorwaarden is voldaan.

Nieuwe functies in Windows PowerShell Web Services

  • Wanneer er een fout optreedt in Windows PowerShell Web Services (PSWS, ook wel Management OData IIS Extension genoemd), terwijl een cmdlet draait, worden er meer gedetailleerde foutmeldingen teruggestuurd naar de aanroeper. Daarnaast volgen foutcodes de richtlijnen voor Windows Azure REST API-foutcodes.
  • Een endpoint kan nu de API-versie definiëren en het gebruik van een specifieke API-versie afdwingen. Telkens wanneer er versieverschillen optreden tussen client en server, worden fouten weergegeven aan zowel de client als de server.
  • Het beheer van het dispatchschema is vereenvoudigd door automatisch waarden te genereren voor ontbrekende velden in het schema. Generatie vindt plaats als een nuttig startpunt, zelfs als het dispatchschema niet bestaat.
  • Typebehandeling in PSWS is verbeterd om types te ondersteunen die een andere constructor gebruiken dan de standaardconstructor, door zich vergelijkbaar te gedragen met de PSTypeConverter in Windows PowerShell. Hierdoor kun je complexe types gebruiken met PSWS.
  • PSWS maakt het nu mogelijk om een bijbehorende instantie uit te breiden tijdens het uitvoeren van een query. Voor grotere binaire inhoud (zoals afbeeldingen, audio of video) is de overdrachtskosten aanzienlijk en is het beter om binaire gegevens zonder codering over te dragen. PSWS gebruikt benoemde resourcestromen voor overdracht zonder codering. De benoemde resourcestroom is een eigenschap van een entiteit van het type Edm.Stream . Elke benoemde resourcestroom heeft een aparte URI voor GET- of UPDATE-operaties.
  • OData-acties bieden nu een mechanisme om niet-CRUD (Create, Read, Update en Delete) methoden op een bron aan te roepen. Je kunt een actie aanroepen door een HTTP POST-verzoek te sturen naar de URI die voor de actie is gedefinieerd. De parameters voor de actie zijn gedefinieerd in de inhoud van het POST-verzoek.
  • Om consistent te zijn met de richtlijnen van Windows Azure, moeten alle URL's vereenvoudigd zijn. Een wijziging die in Key As Segment is opgenomen, maakt het mogelijk om enkele sleutels als segmenten te representeren. Let op dat referenties die meerdere sleutelwaarden gebruiken komma-gescheiden waarden in haakjesnotatie vereisen, zoals voorheen.
  • Voor deze release van PSWS was de enige manier om Create, Update of Delete-operaties uit te voeren het aanroepen van Post, Put of Remove op een top-level resource. Nieuw in deze release van PSWS is dat Contained Resource operations gebruikers in staat stelden dezelfde resultaten te behalen terwijl ze dezelfde resource minder direct bereikten, en het leek alsof deze resources geconsolideerd waren.

Nieuwe functies in Windows PowerShell Web Access

  • Je kunt de verbinding maken met bestaande sessies en deze opnieuw verbinden in de webgebaseerde Windows PowerShell Web Access-console. Een opslaan-knop in de webconsole laat je een sessie loskoppelen zonder deze te verwijderen en op een andere keer opnieuw verbinding maken met de sessie.
  • Standaardparameters kunnen worden weergegeven op de aanmeldpagina. Om standaardparameters weer te geven, configureer je waarden voor alle instellingen die worden weergegeven in het gedeelte Optionele Verbindingsinstellingen van de aanmeldpagina in een bestand genaamd web.config. Je kunt het web.config-bestand gebruiken om alle optionele verbindingsinstellingen te configureren, behalve een tweede of alternatieve set inloggegevens.
  • In Windows Server 2012 R2 kun je op afstand autorisatieregels beheren voor Windows PowerShell Web Access. De add-PswaAuthorizationRule en Test-PswaAuthorizationRule cmdlets bevatten nu een Credential-parameter waarmee beheerders autorisatieregels kunnen beheren vanaf een externe computer of in een Windows PowerShell Web Access-sessie.
  • Je kunt nu meerdere Windows PowerShell Web Access-sessies in één browsersessie hebben door voor elke sessie een nieuw browsertabblad te gebruiken. Je hoeft geen nieuwe browsersessie meer te openen om verbinding te maken met een nieuwe sessie in de webgebaseerde Windows PowerShell-console.

Opvallende bugfixes in Windows PowerShell 4.0

  • Get-Counter kan nu tellers teruggeven die een apostrof bevatten in Franse edities van Windows.
  • Je kunt nu de GetType-methode bekijken op gedeserialiseerde objecten.
  • #Requires statements laten gebruikers nu toegang tot beheerders vereisen, indien nodig.
  • De Import-Csv cmdlet negeert nu lege regels.
  • Een probleem waarbij Windows PowerShell ISE te veel geheugen gebruikt wanneer je een Invoke-WebRequest-commando uitvoert, is opgelost.
  • Get-Module toont nu moduleversies in een kolom Versie .
  • Remove-Item -Recurse verwijdert nu items uit submappen zoals verwacht.
  • Er is een UserName-eigenschap toegevoegd aan Get-Process uitvoerobjecten.
  • De Invoke-RestMethod cmdlet geeft nu alle beschikbare resultaten terug.
  • Add-Member wordt nu van kracht op hashtabellen, zelfs als de hashtabellen nog niet zijn benaderd.
  • Select-Object -Expand faalt niet meer of genereert geen uitzondering als de waarde van de eigenschap nul of leeg is.
  • Get-Process kan nu in een pijplijn worden gebruikt met andere commando's die de eigenschap ComputerName uit objecten halen.
  • ConvertTo-Json en ConvertFrom-Json kunnen nu termen accepteren binnen dubbele aanhalingstekens, en de foutmeldingen zijn nu lokaliseerbaar.
  • Get-Job geeft nu alle voltooide geplande opdrachten terug, zelfs in nieuwe sessies.
  • Problemen met het monteren en verwijderen van VHD's via de FileSystem-provider in Windows PowerShell 4.0 zijn opgelost. Windows PowerShell kan nu nieuwe schijven detecteren wanneer ze in dezelfde sessie worden gemount.
  • Je hoeft niet langer expliciet ScheduledJob- of Workflowmodules te laden om met hun jobtypes te werken.
  • Er zijn prestatieverbeteringen aangebracht in het proces van het importeren van workflows die geneste workflows definiëren; Dit proces is nu sneller.

Nieuwe functies in Windows PowerShell 3.0

Windows PowerShell 3.0 bevat de volgende nieuwe functies.

Windows PowerShell Workflow

Windows PowerShell Workflow brengt de kracht van Windows Workflow Foundation naar Windows PowerShell. Je kunt workflows schrijven in XAML of in de Windows PowerShell-taal en ze uitvoeren zoals je een cmdlet zou uitvoeren. De Get-Command cmdlet krijgt workflowcommando's en de Get-Help cmdlet krijgt hulp voor workflows.

Werkstromen zijn reeksen van multicomputerbeheeractiviteiten die langlopend, herhaalbaar, frequent, paralleliseerbaar, onderbreekbaar, onderbreekbaar zijn, onderbreekbaar en opnieuw opstartbaar. Werkstromen kunnen worden hervat door een opzettelijke of per ongeluk onderbreking, zoals een netwerkstoring, een Windows-herstart of een stroomstoring.

Workflows zijn ook draagbaar; ze kunnen worden geëxporteerd als of geïmporteerd worden uit XAML-bestanden. Je kunt aangepaste sessieconfiguraties schrijven die het mogelijk maken dat workflows of activiteiten in een workflow worden uitgevoerd door gedelegeerde of ondergeschikte gebruikers.

De volgende voordelen van Windows PowerShell Workflow zijn

  • Automatisering van gesequencede, langlopende taken.
  • Afstandsmonitoring van langlopende taken. Status en voortgang van activiteiten zijn op elk moment zichtbaar.
  • Multicomputerbeheer. Voer taken gelijktijdig uit als workflows op honderden managed nodes. Windows PowerShell Workflow bevat een ingebouwde bibliotheek met veelvoorkomende beheerparameters, zoals PSComputerName, die multicomputerbeheerscenario's mogelijk maken.
  • Uitvoering van complexe processen in één taak. Je kunt gerelateerde scripts combineren die een volledig end-to-end scenario implementeren in één workflow.
  • Persistentie.: een workflow wordt opgeslagen (of gecontroleerd) op specifieke punten die door de auteur zijn gedefinieerd, zodat je de workflow kunt hervatten vanaf de laatst gestopte taak (of checkpoint), in plaats van de workflow opnieuw te starten.
  • Robuustheid. Geautomatiseerd foutherstel. Workflows overleven geplande en ongeplande herstarten. Je kunt de uitvoering van de workflow opschorten en daarna de workflow hervatten vanaf het laatste persistentiepunt. Workflow-auteurs kunnen specifieke activiteiten aanwijzen die opnieuw moeten worden uitgevoerd in geval van een storing op een of meer beheerde nodes.
  • Mogelijkheid om te verbreken, opnieuw verbinding te maken en te draaien in losgekoppelde sessies. Gebruikers kunnen verbinding maken en loskoppelen van de workflowserver, maar de workflow draait continu. Je kunt uitloggen van de clientcomputer of de clientcomputer opnieuw opstarten en de workflowuitvoering vanaf een andere computer monitoren zonder de workflow te onderbreken.
  • Plannen. Workflowtaken kunnen worden gepland zoals elke Windows PowerShell-cmdlet of script.
  • Workflow en verbindingsbeperking. Workflow-uitvoering en verbindingen met nodes kunnen worden afgeremd, waardoor schaalbaarheid en hoge beschikbaarheid mogelijk zijn.

Windows PowerShell webtoegang

Windows PowerShell Web Access is een Windows Server 2012-functie waarmee gebruikers Windows PowerShell-commando's en scripts kunnen uitvoeren in een webgebaseerde console. Apparaten die de webgebaseerde console gebruiken, hebben geen Windows PowerShell, remote managementsoftware of browserplug-in installaties nodig. Alles wat nodig is, is een correct geconfigureerde Windows PowerShell Web Access-gateway en een client device browser die JavaScript ondersteunt en cookies accepteert.

Voor meer informatie, zie Deploy Windows PowerShell Web Access.

Nieuwe Windows PowerShell ISE-functies

Voor Windows PowerShell 3.0 heeft de Windows PowerShell Integrated Scripting Environment (ISE) veel nieuwe functies, waaronder IntelliSense, Show-Command window, een uniform Console Pane, snippets, scrace-matching, expand-collapse secties, autosave, lijst met recente items, rich copy, block copy en volledige ondersteuning voor het schrijven van Windows PowerShell-scriptworkflows. Voor meer informatie, zie about_Windows_PowerShell_ISE.

Ondersteuning voor Microsoft .NET Framework 4

Windows PowerShell is gebouwd op basis van Common Language Runtime 4.0. Cmdlet-, script- en workflow-ontwikkelaars kunnen de nieuwe Microsoft .NET Framework 4-klassen gebruiken in Windows PowerShell, met functies zoals Application Compatibility and Deployment, Managed Extensibility Framework, Parallel Computing, Networking, Windows Communication Foundation en Windows Workflow Foundation.

Ondersteuning voor Windows Preinstallation Environment

Windows PowerShell 3.0 is een optioneel onderdeel van Windows Preinstallation Environment (Windows PE) 4.0 voor Windows 8. Windows PE is een minimaal besturingssysteem dat een computer zonder besturingssysteem start en deze voorbereidt op Windows-installatie. Windows PE kan worden gebruikt om harde schijven te partitioneren en te formatteren, schijfimages naar een computer te kopiëren en Windows Setup te starten vanaf een netwerkshare. Windows PowerShell 3.0 kan worden gebruikt op Windows PE om deployment-, diagnostiek- en herstelscenario's te beheren.

Losgekoppelde sessies

Vanaf Windows PowerShell 3.0 worden persistent, door gebruikers beheerde sessies ("PSSessions") die je aanmaakt met de New-PSSession-cmdlet, opgeslagen op de externe computer. Ze zijn niet langer afhankelijk van de sessie waarin ze zijn aangemaakt.

Je kunt nu een sessie loskoppelen zonder de commando's die in de sessie draaien te verstoren. Je kunt de sessie afsluiten en je computer uitschakelen. Later kun je opnieuw verbinding maken met de sessie vanaf een andere sessie op dezelfde of op een andere computer.

De ComputerName-parameter van de Get-PSSession cmdlet haalt nu alle sessies van de gebruiker die verbinding maken met de computer, zelfs als ze in een andere sessie op een andere computer zijn gestart. Je kunt verbinding maken met de sessies, de resultaten van commando's krijgen, nieuwe commando's starten en dan de sessie loskoppelen.

Nieuwe cmdlets zijn toegevoegd ter ondersteuning van de Disconnected Sessions-functie, waaronder Disconnect-PSSession, Connect-PSSession, en Receive-PSSession, en er zijn nieuwe parameters toegevoegd aan cmdlets die PSSessions beheren, zoals de InDisconnectedSession-parameter van de Invoke-Command cmdlet.

De Disconnected Sessions-functie wordt alleen ondersteund wanneer de computers aan zowel de oorspronkelijke ("client") als de beëindigende ("server") kant van de verbinding Windows PowerShell 3.0 draaien.

Robuuste sessieconnectiviteit

Windows PowerShell 3.0 detecteert onverwachte verbindingsverliezen tussen client en server en probeert de connectiviteit te herstellen en de uitvoering automatisch te hervatten. Als de client-serververbinding niet binnen de toegestane tijd kan worden hersteld, wordt de gebruiker op de hoogte gebracht en wordt de sessie verbroken. Tijdens de poging om opnieuw verbinding te maken, geeft Windows PowerShell continue feedback aan de gebruiker.

Als de losgekoppelde sessie is gestart met de InvokeCommand, maakt Windows PowerShell een taak aan voor de losgekoppelde sessie om het gemakkelijker te maken om opnieuw verbinding te maken en de uitvoering te hervatten.

Deze functies bieden een betrouwbaardere en herstelbare afstandservaring en stellen gebruikers in staat langdurige taken uit te voeren die robuuste sessies vereisen, zoals workflows.

Updateerbaar Helpsysteem

Je kunt nu bijgewerkte hulpbestanden downloaden voor de cmdlets in je modules. De Update-Help cmdlet identificeert de nieuwste hulpbestanden, downloadt ze van het internet, pakt ze uit, valideert ze en installeert ze in de juiste taalspecifieke map voor de module.

Om de bijgewerkte hulpbestanden te gebruiken, typ Get-Helpgewoon . Je hoeft Windows of Windows PowerShell niet opnieuw op te starten. Om hulp voor modules in de $pshome-map bij te werken, start Windows PowerShell met de optie "Uitvoeren als administrator".

Om gebruikers zonder internettoegang en gebruikers achter firewalls te ondersteunen, downloadt de nieuwe Save-Help cmdlet hulpbestanden naar een bestandssysteemmap, zoals een bestandsdeling. Gebruikers kunnen vervolgens de Update-Help cmdlet gebruiken om bijgewerkte hulpbestanden van de bestandsdeling op te halen.

Je kunt de Update-Help cmdlet gebruiken om hulpbestanden bij te werken voor alle of specifieke modules in alle ondersteunde UI-culturen. Je kunt zelfs een Update-Help commando in je Windows PowerShell-profiel zetten. Standaard downloadt Windows PowerShell de hulpbestanden voor een module niet vaker dan één keer per dag.

Windows 8- en Windows Server 2012-modules bevatten geen hulpbestanden. Om de nieuwste hulpbestanden te downloaden, typ Update-Help. Voor meer informatie, typ Get-Help (zonder parameters) of zie about_Updatable_Help.

Wanneer de hulpbestanden voor een cmdlet niet op de computer zijn geïnstalleerd, toont de Get-Help cmdlet nu automatisch gegenereerde hulp. De automatisch gegenereerde hulp bevat de commandosyntaxis en instructies voor het gebruik van de Update-Help cmdlet om hulpbestanden te downloaden.

Elke module-auteur kan Updateable Help ondersteunen voor zijn module. Je kunt helpbestanden in de module opnemen en Updatable Help gebruiken om ze bij te werken, of de helpbestanden weglaten en Updatable Help gebruiken om ze te installeren. Voor meer informatie over het ondersteunen van Updateable Help, zie Ondersteuning van Updateable Help.

Verbeterde online hulp

Windows PowerShell online hulp is een waardevolle bron voor alle gebruikers, maar is vooral belangrijk voor gebruikers die geen bijgewerkte hulpbestanden installeren of niet kunnen installeren.

Om online hulp te krijgen voor een Windows PowerShell-cmdlet, typ:

Get-Help <cmdlet-name> -Online

Windows PowerShell opent de online versie van het helponderwerp in je standaard internetbrowser.

De Get-Help-Online-functie in Windows PowerShell 3.0 is nu zelfs krachtiger omdat deze werkt zelfs als hulpbestanden voor de cmdlet niet op de computer zijn geïnstalleerd. De Get-Help - Online-functie haalt het URI voor online hulponderwerp uit de HelpUri-eigenschap van cmdlets en geavanceerde functies.

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

Vanaf Windows PowerShell 3.0 kunnen auteurs van C#-cmdlets de HelpUri-eigenschap invullen door een HelpUri-attribuut te creëren op de cmdlet-klasse. Auteurs van geavanceerde functies kunnen een HelpUri-eigenschap definiëren op het CmdletBinding-attribuut . De waarde van de HelpUri-eigenschap moet beginnen met "http" of "https".

Je kunt ook een HelpUri-waarde opnemen in de eerste gerelateerde link van een XML-gebaseerd cmdlet-hulpbestand of in de . Link-richtlijn van commentaargebaseerde hulp in een functie.

Voor meer informatie over het ondersteunen van online hulp, zie Online hulp ondersteunen.

CIM-integratie

Windows PowerShell 3.0 ondersteunt het Common Information Model (CIM), dat gemeenschappelijke definities van beheersinformatie voor systemen, netwerken, applicaties en diensten biedt, waardoor beheersinformatie tussen heterogene systemen kan worden uitgewisseld. Ondersteuning voor CIM in Windows PowerShell 3.0, inclusief de mogelijkheid om Windows PowerShell-cmdlets te maken op basis van nieuwe of bestaande CIM-klassen, commando's gebaseerd op cmdlet-definitie XML-bestanden, ondersteuning voor CIM .NET Framework. API, CIM-beheer-cmdlets en WMI 2.0-providers.

Sessieconfiguratiebestanden

Vanaf Windows PowerShell 3.0 kun je een aangepaste sessieconfiguratie ontwerpen met behulp van een bestand. Het nieuwe sessieconfiguratiebestand laat je bepalen welke omgeving de sessieconfiguratie gebruikt wordt, inclusief welke modules, scripts en formaatbestanden in sessies worden geladen, welke cmdlets en taalelementen gebruikers kunnen gebruiken, welke modules en scripts ze kunnen uitvoeren, en welke variabelen ze kunnen zien.

Je kunt een sessie ontwerpen waarin gebruikers alleen de cmdlets uit één specifieke module kunnen uitvoeren, of een sessie waarin gebruikers volledige taal hebben, toegang tot alle modules en toegang tot scripts die geavanceerde taken uitvoeren.

In eerdere versies van Windows PowerShell was besturing op dit niveau alleen beschikbaar voor degenen die een C#-programma of een complex opstartscript konden schrijven. Nu kan elk lid van de Beheerdersgroep op de computer een sessieconfiguratie aanpassen met behulp van een configuratiebestand.

Gebruik de cmdlet New-PSSessionConfigurationFile om een sessieconfiguratiebestand te maken. Om het sessieconfiguratiebestand toe te passen op een sessieconfiguratie, gebruik je de Register-PSSessionConfiguration of 'Set-PSSessionConfiguration cmdlets.

Voor meer informatie, zie about_Session_Configuration_Files en New-PSSessionConfigurationFile.

Geplande taken en taakplannerintegratie

Je kunt nu Windows PowerShell-achtergrondtaken plannen en beheren in Windows PowerShell en in Task Scheduler.

Windows PowerShell geplande taken zijn een nuttige hybride van Windows PowerShell achtergrondtaken en taken van de Taakplanner.

Net als Windows PowerShell-achtergrondtaken draaien geplande taken asynchroon op de achtergrond. Instanties van geplande taken die zijn voltooid, kunnen worden beheerd met de job-cmdlets, zoals Start-Job en Get-Job.

Net als taken in de Taakplanner kun je geplande taken uitvoeren op een eenmalig of terugkerend schema, of als reactie op een actie of gebeurtenis. Je kunt geplande taken bekijken en beheren in Taakplanner, ze in- en uitschakelen indien nodig, ze uitvoeren of als sjablonen gebruiken, en voorwaarden instellen waaronder de taken beginnen.

Daarnaast worden geplande taken geleverd met een aangepaste set cmdlets om ze te beheren. De cmdlets laten je geplande taken aanmaken, bewerken, beheren, uitschakelen en opnieuw inschakelen, geplande jobtriggers aanmaken en geplande jobopties instellen.

Voor meer informatie over geplande opdrachten, zie about_Scheduled_Jobs.

Windows PowerShell Taalverbeteringen

Windows PowerShell 3.0 bevat veel functies die zijn ontworpen om de taal eenvoudiger, gebruiksvriendelijker te maken en veelvoorkomende fouten te voorkomen. De verbeteringen omvatten eigenschapsopsomming, tel- en lengte-eigenschappen op scalaire objecten, nieuwe omleidingsoperatoren, de $Using scope-modifier, PSItem automatische variabele, flexibele scriptopmaak, attributen van variabelen, vereenvoudigde attribuutargumenten, numerieke commandonamen, de Stop-Parsing-operator, verbeterde array-splatting, nieuwe bitoperatoren, geordende woordenboeken, PSCustomObject-casting en verbeterde commentaargebaseerde hulp.

Nieuwe Core Cmdlets

Nieuwe cmdlets werden toegevoegd aan de Windows PowerShell-installatie, waaronder cmdlets voor het beheren van geplande taken, losgekoppelde sessies, CIM-integratie en het Updateable 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
    • Computer-naam wijzigen
    • 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

Verbeteringen aan bestaande kern-cmdlets en providers

Windows PowerShell 3.0 bevat nieuwe functies voor bestaande cmdlets, waaronder de vereenvoudigde syntaxis, en nieuwe parameters voor de volgende cmdlets: Computer-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 en WMI cmdlets.

De Windows PowerShell-providers werden ook aanzienlijk verbeterd, waaronder ondersteuning voor certificaataanbieders voor het beheren van Secure Socket Layer (SSL)-certificaten voor webhosting, ondersteuning voor inloggegevens, persistente netwerkschijven en alternatieve datastromen in bestandssysteemschijven.

Import en ontdekking van externe modules

Windows PowerShell 3.0 breidt moduleontdekking, import en impliciete afstandsbedieningsmogelijkheden uit op externe computers. De module-cmdlets halen modules op externe computers en importeren de modules naar de externe of lokale computer met Windows PowerShell-afstandsbediening. Nieuwe CIM-sessieondersteuning stelt je in staat om CIM en WMI te gebruiken om niet-Windows-computers te beheren door commando's te importeren naar de lokale computer die onbedoeld op de externe computer draaien.

Voor meer informatie, zie de hulponderwerpen voor de Get-Module en Import-Module cmdlets.

Verbeterde tab-voltooiing

Tab-voltooiing in de Windows PowerShell-console vult nu de namen van cmdlets, parameters, parameterwaarden, enumeraties, .NET Framework-typen, COM-objecten, verborgen mappen en meer aan. De tabvoltooiingsfunctie is volledig herschreven op basis van een nieuwe parser en abstracte syntaxisboom om meer scenario's te ondersteunen, waaronder in-memory parsing trees en midline tab-voltooiing.

Module Automatisch Laden

De Get-Command cmdlet haalt nu alle cmdlets en functies van alle modules die op de computer zijn geïnstalleerd, zelfs als de module niet in de huidige sessie wordt geïmporteerd.

Als je de cmdlet hebt die je nodig hebt, kun je die direct gebruiken zonder modules te importeren. Windows PowerShell-modules worden nu automatisch geïmporteerd wanneer je een cmdlet in de module gebruikt. Je hoeft niet langer naar de module te zoeken en te importeren om de cmdlets te gebruiken.

Automatische import van modules wordt geactiveerd met de cmdlet in een commando, waarbij wordt uitgevoerd Get-Command voor een cmdlet zonder wildcards, of Get-Help uitgevoerd voor een cmdlet zonder wildcards.

Je kunt automatische importatie van modules inschakelen, uitschakelen en configureren met behulp van de $PSModuleAutoLoadingPreference voorkeurvariabele.

Voor meer informatie, zie about_Modules, about_Preference_Variables en de hulponderwerpen voor de Get-Command en Import-Module cmdlets.

Verbeteringen in module-ervaring

Windows PowerShell 3.0 brengt geavanceerde functionaliteitsondersteuning naar modules, waaronder de volgende nieuwe functies.

  1. Modulelogging voor individuele modules (LogPipelineExecutionDetails) en de nieuwe groepsbeleidinstelling "Module Logging inschakelen"
  2. Uitgebreide moduleobjecten die de waarden uit het modulemanifest blootstellen
  3. Nieuwe ExportedCommands-eigenschap van modules, inclusief geneste modules, die commando's van alle typen combineert
  4. Verbeterde ontdekking van beschikbare (niet-geïmporteerde) modules, inclusief het toestaan van de parameters Path en ListAvailable in hetzelfde commando
  5. Nieuwe DefaultCommandPrefix-sleutel in modulemanifesten die naamconflicten vermijdt zonder de modulecode te wijzigen.
  6. Verbeterde modulevereisten, inclusief volledig gekwalificeerde vereiste modules met versie en GUID, en automatische import van vereiste modules
  7. Stillere, gestroomlijnde bediening van de New-ModuleManifest cmdlet.
  8. Nieuwe moduleparameter voor #Requires
  9. Verbeterde Import-Module cmdlet met zowel MinimumVersion- als RequiredVersion-parameters .

Vereenvoudigde Commandoontdekking

Je hoeft niet langer alle modules te importeren om de commando's te ontdekken die beschikbaar zijn voor je sessie. In Windows PowerShell 3.0 haalt de Get-Command cmdlet alle commando's van alle geïnstalleerde modules. En als je een commando gebruikt, wordt de module die het commando exporteert automatisch geïmporteerd in je sessie.

De nieuwe Show-Command cmdlet is speciaal ontworpen voor beginners. Je kunt in een venster naar commando's zoeken. Je kunt alle commando's bekijken of filteren op module, een module importeren door op een knop te klikken, tekstvakken en dropdownlijsten gebruiken om een geldig commando te maken, en vervolgens het commando kopiëren of uitvoeren zonder ooit het venster te verlaten.

Verbeterde logging, diagnostiek en ondersteuning van groepsbeleid

Windows PowerShell 3.0 verbetert de ondersteuning voor logging en tracing voor commando's en modules met ondersteuning voor Event Tracing in Windows (ETW) logs, een bewerkbare LogPipelineExecutionDetails-eigenschap van modules, en de groepsbeleid-instelling "Turn on Module Logging". Je kunt nu parameterwaarden uit logdetails halen door de logeigenschappen weer te geven.

Verbeteringen aan opmaak en uitvoer

Nieuwe verbeteringen in de opmaak en uitvoer verbeteren de efficiëntie van alle Windows PowerShell-gebruikers. De verbeteringen omvatten output-omleiding voor alle stromen, een verbeterde Update-Type-cmdlet die typen dynamisch toevoegt zonder Format.ps1xml-bestanden, woordwrap in de uitvoer, standaardformatteringseigenschappen van aangepaste objecten, het PSCustomObject-type , verbeterde opmaak voor WMI-objecten en heterogene objecten, en ondersteuning voor het ontdekken van methode-overloads.

Verbeterde Console Host Ervaring

Het Windows PowerShell-consolehostprogramma heeft nieuwe functies in Windows PowerShell 3.0, waaronder standaard singlethreaded apartment. De nieuwe optie "Run with PowerShell" in Verkenner laat je scripts uitvoeren in een onbeperkte sessie door simpelweg met de rechtermuisknop te klikken. Nieuwe consolehost-launchlogica start Windows PowerShell sneller en nieuwe lettertypen maken het mogelijk om de vertrouwde consolevenster-ervaring te personaliseren.

Nieuwe cmdlet en hosting-API's

De nieuwe Cmdlet API en Hosting API bevatten public advanced syntax tree (AST) API's, en API's voor pipeline paging, geneste pipelines, tab-completion van runspace pools, Windows RT, het Obsolete cmdlet-attribuut en Verb- en Noun-eigenschappen van het FunctionInfo-object.

Prestatieverbeteringen

Significante prestatieverbeteringen in Windows PowerShell komen van de nieuwe taalparser, die is gebouwd op Dynamic Runtime Language (DLR) in .NET Framework 4., samen met runtime-scriptcompilatie, verbeteringen in de betrouwbaarheid van de engine en wijzigingen aan het algoritme Get-ChildItem die de prestaties verbeteren, vooral bij het doorzoeken van netwerkshares.

RunAs en Shared Host Support

Windows PowerShell 3.0 ondersteunt RunAs en Shared Host-functies.

De RunAs-functie , ontworpen voor Windows PowerShell Workflow, stelt gebruikers van een sessieconfiguratie in staat sessies aan te maken die draaien met de toestemming van een gedeeld gebruikersaccount. Dit stelt minder bevoorrechte gebruikers in staat om specifieke commando's en scripts met beheerdersrechten uit te voeren, en vermindert de noodzaak om minder ervaren gebruikers aan de Beheerdersgroep toe te voegen.

De SharedHost-functie stelt meerdere gebruikers op meerdere computers in staat om gelijktijdig verbinding te maken met een workflowsessie en de voortgang van een workflow te monitoren. Gebruikers kunnen een workflow op de ene computer starten en vervolgens verbinding maken met de workflowsessie op een andere computer zonder de sessie van de oorspronkelijke computer te verbreken. Gebruikers moeten dezelfde rechten hebben en dezelfde sessieconfiguratie gebruiken. Voor meer informatie, zie "Run a Windows PowerShell Workflow" in Getting Started with Windows PowerShell Workflow.

Verbeteringen in de bediening van speciale personages

Om de mogelijkheid van Windows PowerShell 3.0 om speciale tekens te interpreteren en correct te behandelen te verbeteren, is de LiteralPath-parameter , die speciale tekens in paden verwerkt, geldig op bijna alle cmdlets die een Path-parameter hebben, inclusief de nieuwe Update-Help en Save-Help cmdlets. De parser bevat ook speciale logica om de omgang met het backtick-teken (`) en haakjes in bestandsnamen en paden te verbeteren.

Zie ook