Nieuw in Windows PowerShell 5.0

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

Windows PowerShell 5.0 is compatibel met eerdere versies. Cmdlets, providers, modules, modules, 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 wordt standaard geïnstalleerd op Windows Server 2016 Technical Preview en Windows 10.

Als u Windows PowerShell 5.0 wilt installeren op Windows Server 2012 R2, Windows 8.1 Enterprise of Windows 8.1 Pro, downloadt en installeert u Windows Management Framework 5.0. Lees de downloadgegevens en voldoe aan alle systeemvereisten voordat u Windows Management Framework 5.0 installeert.

In dit onderwerp

Windows PowerShell 4.0-updates in het updatepakket van november 2014 (kb 3000850)

Veel updates en verbeteringen in Windows PowerShell Desired State Configuration (DSC) in Windows PowerShell 4.0 zijn beschikbaar in het updatepakket van november 2014 voor Windows RT 8.1, Windows 8.1 en Windows Server 2012 R2 (KB3000850). U kunt bepalen of KB3000850 op uw systeem is geïnstalleerd door uit te voeren Get-Hotfix -Id KB3000850 in Windows PowerShell.

  • Updates bestaande cmdlets in de module PSDesiredStateConfiguration

  • Nieuwe cmdlets in de module PSDesiredStateConfiguration

  • Taalverbeteringen

    • DependsOn ondersteunt nu samengestelde resources.
    • DependsOn ondersteunt nu getallen in namen van resource-exemplaren.
    • Knooppuntexpressies die als leeg worden geëvalueerd, genereren geen fouten meer.
    • Er is een fout opgelost die optreedt als een knooppuntexpressie leeg is.
    • Configuraties die configuraties aanroepen, werken nu in de Windows PowerShell-console.
  • Verbeteringen in de pull-modus

    • De pull-modus ondersteunt nu alle ZIP-bestanden.
    • AllowModuleOverwrite werkt nu correct.
  • Tolerantieverbeteringen

    • Met de nieuwe DebugMode kunt u resourcemodules opnieuw laden.
    • Als er een configuratiefout optreedt, wordt het bestand pending.mof niet verwijderd.
    • De Local Configuration Manager (LCM) is nu toleranter wanneer metaconfiguratie-instellingen beschadigd zijn geraakt.
  • Diagnostische verbeteringen

    • Er wordt een waarschuwing weergegeven wanneer de LCM de timer instelt op andere instellingen dan u hebt opgegeven.
    • Foutenlogboekbestanden bevatten nu de aanroepstack voor Windows PowerShell resources.
  • Flexibiliteitsverbeteringen

    • De resource LocalConfigurationManager heeft een nieuwe eigenschap, ActionAfterReboot.
      • ContinueConfiguration (standaardwaarde): hiermee wordt automatisch een configuratie hervat nadat een doelknooppunt opnieuw is opgestart.
      • StopConfiguration: een configuratie niet automatisch hervatten nadat een knooppunt opnieuw is opgestart.
    • Een consistentieuitvoering kan nu vaker voorkomen dan een PULL-bewerking, of omgekeerd.
    • Versiebeheerondersteuning: DSC kan nu een document herkennen dat is gegenereerd op een nieuwere client (opgenomen in WMF 5.0).
  • Verbeteringen in foutpreventie

    • Moduleversie wordt nu afgedwongen voordat een configuratie wordt toegepast.
    • DebugPreference is nu correct ingesteld voor Get-, Set-, of Test-TargetResource-aanroepen.
  • Verbeteringen voor het verwerken van referenties

    • Er wordt nu een certificaat gebruikt, als zowel Certificaat als PSDscAllowPlainTextPassword zijn opgegeven.
    • Referenties worden ontsleuteld, zelfs voor Get-TargetResource.
    • Metaconfiguratiereferenties worden versleuteld en ontsleuteld.
    • PSCredentials worden nu ontsleuteld wanneer ze zich in een ingesloten object bevinden.
  • Ingebouwde resourceverbeteringen

    • De pakketresource
      • Installeert niet langer het verkeerde pakket (van lokale of webbronnen).
      • Ondersteunt nu HTTPS.
    • Er is nu ondersteuning voor HTTPS in de pakketresource.
    • Archiefresource ondersteunt nu referenties.

Nieuwe functies in Windows PowerShell 5.0

Nieuwe functies in Windows PowerShell

  • Vanaf Windows PowerShell 5.0 kunt u ontwikkelen met behulp van 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 ter ondersteuning van de nieuwe functie. Zie about_Classes voor meer informatie over het werken met klassen.

  • Windows PowerShell 5.0 introduceert een nieuwe, gestructureerde informatiestroom die u kunt gebruiken om gestructureerde gegevens te verzenden tussen een script en de aanroepers (of hostingomgeving). U kunt nu Write-Host gebruiken om uitvoer naar de informatiestroom te verzenden. Informatiestromen werken ook voor PowerShell.Streams, taken, geplande taken en werkstromen. De volgende functies ondersteunen de informatiestroom.

    • Een nieuwe Write-Information cmdlet waarmee u kunt opgeven hoe Windows PowerShell gegevensstroomgegevens verwerkt voor een opdracht. Write-Host is een wrapper voor Write-Information. Write-Information is ook een ondersteunde werkstroomactiviteit.
    • Met twee nieuwe algemene parameters, InformationVariable en InformationAction, kunt u bepalen hoe informatiestromen van een opdracht worden weergegeven. Geldige waarden voor InformationAction zijn SilentlyContinue, Stop, Continue, Inquire, Ignore of Suspend, waarbij SilentlyContinue de standaardwaarde is. InformationVariable geeft een tekenreeks op als de naam van een variabele waarnaar u de Write-Host gegevens uit een opdracht wilt opslaan.
    • Een nieuwe voorkeursvariabele, InformationPreference, geeft uw standaardvoorkeur aan voor gegevensstroomgegevens in een Windows PowerShell-sessie. De standaardwaarde is SilentlyContinue.
    • Er zijn twee nieuwe algemene werkstroomparameters, PSInformation en InformationAction, toegevoegd.
    • Wanneer u de opdracht Format-Table gebruikt, worden tabelkolommen nu automatisch opgemaakt door de eerste 300 ms aan gegevens te evalueren die via de stroom worden doorgegeven.
  • In samenwerking met Microsoft Research is een nieuwe cmdlet, ConvertFrom-String, toegevoegd. met ConvertFrom-String kunt u gestructureerde objecten uit de inhoud van tekenreeksen extraheren en parseren. Zie ConvertFrom-String voor meer informatie.

  • Met een nieuwe Convert-String-cmdlet wordt tekst automatisch opgemaakt op basis van een voorbeeld dat u opgeeft in een parameter -Example.

  • Een nieuwe module, Microsoft.PowerShell.Archive, bevat cmdlets waarmee u bestanden en mappen kunt comprimeren tot archiefbestanden (ook wel zip-bestanden genoemd), bestanden kunt extraheren uit bestaande ZIP-bestanden en ZIP-bestanden kunt bijwerken met nieuwere versies van bestanden die erin zijn gecomprimeerd.

  • Met een nieuwe module, PackageManagement, kunt u softwarepakketten op internet detecteren en installeren. De Module PackageManagement (voorheen bekend als OneGet) is een manager of multiplexer van bestaande pakketbeheerders (ook wel pakketproviders genoemd) om Windows-pakketbeheer te verenigen met één Windows PowerShell interface.

  • Met een nieuwe module, PowerShellGet, kunt u modules en DSC-resources zoeken, installeren, publiceren en bijwerken op de PowerShell Gallery of in een interne moduleopslagplaats die u kunt instellen door de cmdlet Register-PSRepository uit te voeren.

  • Er is een nieuw taal trefwoord, Verborgen, toegevoegd om aan te geven dat een lid (een eigenschap of een methode) niet standaard wordt weergegeven in Get-Member resultaten (tenzij u de parameter -Force toevoegt). Eigenschappen of methoden die zijn gemarkeerd als verborgen, worden ook niet weergegeven in IntelliSense-resultaten, tenzij u zich in een context bevindt waarin het lid zichtbaar moet zijn; De automatische variabele $This moet bijvoorbeeld verborgen leden weergeven in de klassemethode.

  • New-Item, Remove-Item en Get-ChildItem zijn uitgebreid om het maken en beheren van symbolische koppelingen te ondersteunen. De parameter -ItemType voor New-Item accepteert een nieuwe waarde, SymbolicLink. U kunt nu symbolische koppelingen op één regel maken door de cmdlet New-Item uit te voeren.

  • Get-ChildItem heeft ook een nieuwe parameter -Depth, die u gebruikt met de parameter -Recurse om de recursie te beperken. Get-ChildItem -Recurse -Depth 2 retourneert bijvoorbeeld resultaten van de huidige map, alle onderliggende mappen in de huidige map en alle mappen binnen de onderliggende mappen.

  • met Copy-Item kunt u nu bestanden of mappen kopiëren van de ene Windows PowerShell sessie naar de andere, wat betekent dat u bestanden kunt kopiëren naar sessies die zijn verbonden met externe computers (inclusief computers waarop Nano Server wordt uitgevoerd en dus geen andere interface hebben). Als u bestanden wilt kopiëren, geeft u PSSession-id's op als de waarde van de nieuwe parameters -FromSession en -ToSession, en voegt u -Path en -Destination toe om respectievelijk het oorsprongpad en de bestemming op te geven. Bijvoorbeeld Copy-Item -Path c:\myFile.txt -ToSession $s -Destination d:\destinationFolder.

  • Windows PowerShell transcriptie is verbeterd om van toepassing te zijn op alle hostingtoepassingen (zoals Windows PowerShell ISE) naast de consolehost (powershell.exe). Transcriptieopties (inclusief het inschakelen van een systeembrede transcriptie) kunnen worden geconfigureerd door de instelling PowerShell-transcriptie inschakelen groepsbeleid in te schakelen, te vinden in Beheersjablonen/Windows-onderdelen/Windows PowerShell.

  • Met een nieuwe functie voor gedetailleerde scripttracering kunt u gedetailleerde tracering en analyse inschakelen van Windows PowerShell gebruik van scripts op een systeem. Nadat u gedetailleerde scripttracering hebt ingeschakeld, registreert Windows PowerShell alle scriptblokken in het gebeurtenislogboek Event Tracing for Windows (ETW), Microsoft-Windows-PowerShell/Operational.

  • Vanaf Windows PowerShell 5.0 bieden nieuwe cmdlets voor cryptografische berichtsyntaxis ondersteuning voor het versleutelen en ontsleutelen van inhoud met behulp van de standaardindeling IETF voor het cryptografisch beveiligen van berichten, zoals gedocumenteerd door RFC5652. De cmdlets Get-CmsMessage, Protect-CmsMessage en Unprotect-CmsMessage zijn toegevoegd aan de module Microsoft.PowerShell.Security .

  • Met nieuwe cmdlets in de module Microsoft.PowerShell.Utility , Get-Runspace, Debug-Runspace, Get-RunspaceDebug, Enable-RunspaceDebug en Disable-RunspaceDebug kunt u foutopsporingsopties instellen voor een runspace en foutopsporing in een runspace starten en stoppen. Voor foutopsporing van willekeurige runspaces (runspaces die niet de standaardrunspace zijn voor een Windows PowerShell-console of Windows PowerShell ISE-sessie) kunt u met Windows PowerShell onderbrekingspunten instellen in een script en hebt u toegevoegde onderbrekingspunten om te voorkomen dat het script wordt uitgevoerd totdat u een foutopsporingsprogramma kunt toevoegen om fouten in het runspace-script op te sporen. Ondersteuning voor geneste foutopsporing voor willekeurige runspaces is toegevoegd aan het Windows PowerShell scriptfoutopsporingsprogramma voor runspaces.

  • Er is een nieuwe Format-Hex-cmdlet toegevoegd aan de module Microsoft.PowerShell.Utility . met Format-Hex kunt u tekst of binaire gegevens weergeven in hexadecimale indeling.

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

  • Er is een nieuwe cmdlet, Clear-RecycleBin, toegevoegd aan de module Microsoft.PowerShell.Management . deze cmdlet leegt de Prullenbak voor een vast station, dat externe stations bevat. Standaard wordt u gevraagd om een Clear-RecycleBin opdracht te bevestigen, omdat de eigenschap ConfirmImpact van de cmdlet is ingesteld op ConfirmImpact.High.

  • Met een nieuwe cmdlet, New-TemporaryFile, kunt u een tijdelijk bestand maken als onderdeel van het uitvoeren van scripts. Het nieuwe tijdelijke bestand wordt standaard gemaakt in C:\Users\<user name>\AppData\Local\Temp.

  • De cmdlets Out-File, Add-Content en Set-Content hebben nu een nieuwe parameter -NoNewline, waarmee een nieuwe regel na de uitvoer wordt weggelaten.

  • De cmdlet New-Guid maakt gebruik van de klasse .NET Framework Guid om een GUID te genereren. Dit is handig wanneer u scripts of DSC-resources schrijft.

  • Omdat informatie over bestandsversies misleidend kan zijn, met name nadat een bestand is gepatcht, zijn nieuwe scripteigenschappen FileVersionRaw en ProductVersionRaw beschikbaar voor FileInfo-objecten. U kunt bijvoorbeeld de volgende opdracht uitvoeren om de waarden van deze eigenschappen weer te geven voor powershell.exe, waarbij $pid de proces-id bevat voor een actieve sessie van Windows PowerShell:Get-Process -Id $pid -FileVersionInfo | Format-List *version* -Force

  • Met nieuwe cmdlets Enter-PSHostProcess en Exit-PSHostProcess kunt u fouten opsporen in Windows PowerShell scripts in processen die los zijn van het huidige proces dat wordt uitgevoerd in de Windows PowerShell-console. Voer Enter-PSHostProcess uit om een specifieke proces-id in te voeren of te koppelen en voer vervolgens Get-Runspace uit om de actieve runspaces binnen het proces te retourneren. Voer Exit-PSHostProcess uit om het proces los te koppelen wanneer u klaar bent met het opsporen van fouten in het script in het proces.

  • Er is een nieuwe Wait-Debugger-cmdlet toegevoegd aan de module Microsoft.PowerShell.Utility . U kunt Wait-Debugger uitvoeren om een script in het foutopsporingsprogramma te stoppen voordat u de volgende instructie in het script uitvoert.

  • Het foutopsporingsprogramma Windows PowerShell Workflow ondersteunt nu voltooiing van opdrachten of tabbladen en u kunt fouten opsporen in geneste werkstroomfuncties. U kunt nu op Ctrl+Break drukken om het foutopsporingsprogramma in te voeren in een actief script, in zowel lokale als externe sessies en in een werkstroomscript.

  • Er is een Debug-Job-cmdlet toegevoegd aan de module Microsoft.PowerShell.Core om fouten op te sporen in het uitvoeren van taakscripts voor Windows PowerShell Werkstroom, achtergrond en taken die worden uitgevoerd in externe sessies.

  • Er is een nieuwe status, AtBreakpoint, toegevoegd voor Windows PowerShell taken. De status AtBreakpoint is van toepassing wanneer een taak een script uitvoert dat ingestelde onderbrekingspunten bevat en het script een onderbrekingspunt heeft bereikt. Wanneer een taak wordt gestopt bij een foutopsporingsonderbrekingspunt, moet u fouten in de taak opsporen door de cmdlet Debug-Job uit te voeren.

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

  • U kunt nu validatie van de moduleversie uitvoeren door de cmdlet Test-ModuleManifest uit te voeren.

  • Resultaten van de cmdlet Get-Command geven nu een kolom Versie weer; er is een nieuwe eigenschap Version toegevoegd aan de klasse CommandInfo. Get-Command bevat opdrachten uit 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 retourneert als PSObjects. Dit is vooral handig voor wanneer Show-Command wordt uitgevoerd in Windows PowerShell ISE met behulp van Windows PowerShell externe communicatie. De parameter -ShowCommandInfo vervangt de bestaande functie Get-SerializedCommand in de module Microsoft.PowerShell.Utility, maar het Get-SerializedCommand script is nog steeds beschikbaar voor de ondersteuning van downlevel scripting.

  • Met een nieuwe Get-ItemPropertyValue cmdlet kunt u de waarde van een eigenschap ophalen zonder puntnotatie te gebruiken. In oudere versies van Windows PowerShell kunt u bijvoorbeeld de volgende opdracht uitvoeren om de waarde van de eigenschap Application Base van de registersleutel PowerShellEngine op te halen: (Get-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\PowerShell\3\PowerShellEngine -Name ApplicationBase). ApplicationBase. Vanaf Windows PowerShell 5.0 kunt u Get-ItemPropertyValue -Path HKLM:\SOFTWARE\Microsoft\PowerShell\3\PowerShellEngine -Name ApplicationBase uitvoeren.

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

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

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

  • Save-Help, Update-Help, Import-PSSession, Export-PSSession en Get-Command hebben een nieuwe parameter, FullyQualifiedModule, van het type ModuleSpecification. Voeg deze parameter toe om een module op te geven op basis van de 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 framework voor het testen van eenheden voor PowerShell. Het bevat enkele eenvoudig te gebruiken trefwoorden waarmee u tests voor uw scripts kunt maken.

Nieuwe functies in Windows PowerShell Desired State Configuration

  • Windows PowerShell taalverbeteringen kunt u 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 hoofdmodule van de opgegeven module en zoekt naar klassen die het kenmerk DscResource bevatten. U kunt nu klassen gebruiken om DSC-resources te definiëren, waarbij geen MOF-bestand of een DSCResource-submap in de modulemap vereist is. Een Windows PowerShell modulebestand kan meerdere DSC-resourceklassen bevatten.
  • Er is een nieuwe parameter, ThrottleLimit, toegevoegd aan de volgende cmdlets in de module PSDesiredStateConfiguration. Voeg de parameter ThrottleLimit toe om het aantal doelcomputers of apparaten op te geven waarop u de opdracht tegelijkertijd 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 uitgebreide foutinformatie niet alleen vastgelegd in het gebeurtenislogboek, maar kan deze ook worden verzonden naar een centrale locatie voor latere analyse. U 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 metaconfiguratie, worden alle fouten naar de rapportserver verzonden en vervolgens opgeslagen in een database. U kunt deze functionaliteit instellen, ongeacht of een doelknooppunt is geconfigureerd voor het ophalen van configuraties van een pull-server.
  • Verbeteringen in Windows PowerShell ISE vereenvoudigt het ontwerpen van DSC-resources. U kunt nu het volgende doen.
    • Geef alle DSC-resources in een configuratie - of knooppuntblok weer door Ctrl+spatie in te voeren op een lege regel in het blok.
    • Automatisch aanvullen van resource-eigenschappen van het opsommingstype .
    • Automatische voltooiing van de eigenschap DependsOn van DSC-resources, op basis van andere resource-exemplaren in de configuratie.
    • Verbeterde tabvoltooiing van resourceeigenschapswaarden.
  • Een gebruiker kan nu een resource uitvoeren onder een opgegeven set referenties door het kenmerk PSDscRunAsCredential toe te voegen aan een knooppuntblok. Bijvoorbeeld PSDscRunAsCredential = Get-Credential Contoso\DscUser. Deze functionaliteit is handig voor het maken van configuraties die Windows Installer en uitvoerbare installatieprogramma's uitvoeren, toegang krijgen tot de registercomponent per gebruiker of andere taken uitvoeren buiten de huidige gebruikerscontext.
  • 32-bits (op x86 gebaseerde) ondersteuning is toegevoegd voor het trefwoord Configuratie .
  • Windows PowerShell bevat nu ondersteuning voor aangepaste help voor DSC-configuraties, gedefinieerd door [CmdletBinding()] toe te voegen aan de gegenereerde configuratiefunctie.
  • Een nieuw DscLocalConfigurationManager-kenmerk wijst een configuratieblok aan als een metaconfiguratie, die wordt gebruikt om de lokale DSC-Configuration Manager te configureren. Dit kenmerk beperkt een configuratie tot het bevatten van alleen items die de DSC Local Configuration Manager configureren. Tijdens de verwerking genereert deze configuratie een *.meta.mof-bestand dat vervolgens wordt verzonden naar de juiste doelknooppunten door de cmdlet Set-DscLocalConfigurationManager uit te voeren.
  • Gedeeltelijke configuraties zijn nu toegestaan in Windows PowerShell 5.0. U kunt configuratiedocumenten in fragmenten aan een knooppunt leveren. Als u wilt dat een knooppunt meerdere fragmenten van een configuratiedocument ontvangt, moet de lokale Configuration Manager van het knooppunt eerst worden ingesteld om de verwachte fragmenten op te geven
  • Synchronisatie tussen computers is nieuw in DSC in Windows PowerShell 5.0. met behulp van de ingebouwde WaitFor*-resources (WaitForAll, WaitForAny en WaitForSome) kunt u nu afhankelijkheden opgeven tussen computers tijdens configuratie-uitvoeringen, zonder externe indelingen. Deze resources bieden knooppunt-naar-knooppuntsynchronisatie met behulp van CIM-verbindingen via het WS-Man-protocol. Een configuratie kan wachten tot de specifieke resourcestatus van een andere computer is gewijzigd.
  • Just Enough Administration (JEA), een nieuwe beveiligingsfunctie voor delegaties, maakt gebruik van DSC en Windows PowerShell beperkte runspaces om ondernemingen te beschermen tegen gegevensverlies of inbreuk door werknemers, opzettelijk of onbedoeld. Zie Just Enough Administration (Just Enough Administration) voor meer informatie over JEA, waaronder waar u de xJEA DSC-resource kunt downloaden.
  • De volgende nieuwe cmdlets zijn toegevoegd aan de module PSDesiredStateConfiguration.
    • Een nieuwe Get-DscConfigurationStatus cmdlet haalt informatie op hoog niveau over de configuratiestatus van een doelknooppunt. U kunt de status van de laatste of van alle configuraties ophalen.
    • Een nieuwe Compare-DscConfiguration cmdlet vergelijkt een opgegeven configuratie met de werkelijke status van een of meer doelknooppunten.
    • Een nieuwe Publish-DscConfiguration cmdlet kopieert een MOF-configuratiebestand naar een doelknooppunt, maar past de configuratie niet toe. De configuratie wordt toegepast tijdens de volgende consistentiepass of wanneer u de cmdlet Update-DscConfiguration uitvoert.
    • Met een nieuwe Test-DscConfiguration cmdlet kunt u controleren of een resulterende configuratie overeenkomt met de gewenste configuratie, waarbij True wordt geretourneerd als de configuratie overeenkomt met de gewenste configuratie, of Onwaar als de werkelijke configuratie niet overeenkomt met de gewenste configuratie.
    • Een nieuwe Update-DscConfiguration cmdlet dwingt af dat een configuratie wordt verwerkt. Als de lokale Configuration Manager zich in de pull-modus bevindt, haalt de cmdlet de configuratie op van de pull-server voordat deze wordt toegepast.

Nieuwe functies in Windows PowerShell ISE

  • U kunt nu externe Windows PowerShell scripts en bestanden bewerken in een lokale kopie van Windows PowerShell ISE door Enter-PSSession uit te voeren om een externe sessie te starten op de computer waarop de bestanden worden opgeslagen die u wilt bewerken en vervolgens het pad en de bestandsnaam van PSEdit <op de externe computer> uit te voeren. Deze functie vereenvoudigt het bewerken van Windows PowerShell bestanden die zijn opgeslagen op de Server Core-installatieoptie van Windows Server, waar Windows PowerShell ISE niet kan worden uitgevoerd.
  • De cmdlet Start-Transcript wordt nu ondersteund in Windows PowerShell ISE.
  • U kunt nu fouten opsporen in externe scripts in Windows PowerShell ISE.
  • Een nieuwe menuopdracht, Alles verbreken (Ctrl+B), wordt in het foutopsporingsprogramma ingebroken voor zowel lokale als extern uitgevoerde scripts.

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

  • Vanaf Windows PowerShell 5.0 kunt u een set Windows PowerShell cmdlets genereren op basis van de functionaliteit die beschikbaar wordt gemaakt door een bepaald OData-eindpunt door de Export-ODataEndpointProxy-cmdlet uit te voeren, die te vinden is in de nieuwe module Microsoft.PowerShell.OdataUtils.

Belangrijke oplossingen voor fouten in Windows PowerShell 5.0

  • Windows PowerShell 5.0 bevat een nieuwe COM-implementatie, die aanzienlijke prestatieverbeteringen biedt wanneer u met COM-objecten werkt.
  • Er zijn aanzienlijke prestatieverbeteringen aangebracht in de voltooiing van het eerste tabblad in een Windows PowerShell sessie, waardoor de voltooiingstijd van het tabblad met bijna 500 ms wordt verkort.

Nieuwe functies in Windows PowerShell 4.0

Windows PowerShell 4.0 is compatibel met eerdere versies. Cmdlets, providers, modules, modules, 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 wordt standaard geïnstalleerd op Windows 8.1 en Windows Server 2012 R2. Als u Windows PowerShell 4.0 op Windows 7 met SP1 of Windows Server 2008 R2 wilt installeren, downloadt en installeert u Windows Management Framework 4.0. Lees de downloaddetails en voldoe aan alle systeemvereisten voordat u 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 waarmee configuratiegegevens voor softwareservices en de omgeving waarin deze services worden uitgevoerd, kunnen worden geïmplementeerd en beheerd. Zie Aan de slag met Windows PowerShell Desired State Configuration voor meer informatie over DSC.
  • Help opslaan kunt u nu help opslaan voor modules die zijn geïnstalleerd op externe computers. U kunt Save-Help gebruiken om module Help te downloaden van een client met internetverbinding (waarop niet alle modules waarvoor u hulp nodig hebt, noodzakelijkerwijs zijn geïnstalleerd) en vervolgens de opgeslagen Help kopiëren naar een externe gedeelde map of een externe computer die geen internettoegang heeft.
  • Het Windows PowerShell-foutopsporingsprogramma is verbeterd om foutopsporing van Windows PowerShell werkstromen en scripts die worden uitgevoerd op externe computers toe te staan. Windows PowerShell werkstromen kunnen nu op scriptniveau worden opgespoord vanaf de Windows PowerShell opdrachtregel of Windows PowerShell ISE. Windows PowerShell scripts, waaronder scriptwerkstromen, kunnen nu worden opgespoord via externe sessies. Externe foutopsporingssessies blijven behouden via Windows PowerShell externe sessies die worden losgekoppeld en later opnieuw worden verbonden.
  • Een RunNow-parameter voor Register-ScheduledJob en Set-ScheduledJob elimineert de noodzaak om een onmiddellijke begindatum en -tijd in te stellen voor taken met behulp van de parameter Trigger .
  • Met Invoke-RestMethod en Invoke-WebRequest kunt u nu alle headers instellen met behulp van de parameter Headers. Hoewel deze parameter altijd al heeft bestaan, was het een van de verschillende parameters voor de web-cmdlets die leidde tot uitzonderingen of fouten.
  • Get-Module heeft een nieuwe parameter, FullyQualifiedName, van het type ModuleSpecification[]. Met de parameter FullyQualifiedName van Get-Module kunt u nu een module opgeven met behulp van de naam, versie en optioneel de GUID van de module.
  • De standaardinstelling voor het uitvoeringsbeleid op Windows Server 2012 R2 is RemoteSigned. Op Windows 8.1 is er geen wijziging in de standaardinstelling.
  • Vanaf Windows PowerShell 4.0 wordt het aanroepen van methoden met dynamische methodenamen ondersteund. U kunt een variabele gebruiken om een methodenaam op te slaan en vervolgens de methode dynamisch aanroepen door de variabele aan te roepen.
  • Asynchrone werkstroomtaken worden niet meer verwijderd wanneer de time-outperiode die is opgegeven door de algemene parameter PSElapsedTimeoutSec-werkstroom is verstreken.
  • Er is een nieuwe parameter, RepeatIndefinitely, toegevoegd aan de cmdlets New-JobTrigger en Set-JobTrigger . Dit elimineert de noodzaak om een TimeSpan.MaxValue-waarde op te geven voor de parameter RepetitionDuration om een geplande taak herhaaldelijk voor een onbepaalde periode uit te voeren.
  • Er is een Passthru-parameter toegevoegd aan de cmdlets Enable-JobTrigger en Disable-JobTrigger . Met de parameter Passthru worden alle objecten weergegeven die door uw opdracht zijn gemaakt of gewijzigd.
  • De parameternamen voor het opgeven van een werkgroep in de cmdlets Add-Computer en Remove-Computer zijn nu consistent. Beide cmdlets gebruiken nu de parameter WorkgroupName.
  • Er is een nieuwe algemene parameter, PipelineVariable, toegevoegd. Met PipelineVariable kunt u de resultaten van een pijplijnopdracht (of een deel van een doorgesluisde opdracht) opslaan als een variabele die kan worden doorgegeven via de rest van de pijplijn.
  • Het filteren van verzamelingen met behulp van de syntaxis van een methode wordt nu ondersteund. Dit betekent dat u nu een verzameling objecten kunt filteren met behulp van een vereenvoudigde syntaxis, vergelijkbaar met die voor Where() of Where-Object, opgemaakt als een methode-aanroep. Hier volgt een voorbeeld: (Get-Process).where({$_. Naam -overeenkomst 'powershell'})
  • De cmdlet Get-Process heeft een nieuwe switchparameter , IncludeUserName.
  • Er is een nieuwe cmdlet, Get-FileHash, toegevoegd die een bestandshash in een van de verschillende indelingen voor een opgegeven bestand retourneert.
  • Als in Windows PowerShell 4.0 een module de sleutel DefaultCommandPrefix in het manifest gebruikt of als de gebruiker een module importeert met de parameter Voorvoegsel, worden met de eigenschap ExportedCommands van de module de opdrachten in de module met het voorvoegsel weergegeven. Wanneer u de opdrachten uitvoert met behulp van de door de module gekwalificeerde syntaxis ModuleName\CommandName, moeten de opdrachtnamen het voorvoegsel bevatten.
  • De waarde van $PSVersionTable.PSVersion is bijgewerkt naar 4.0.
  • Het gedrag van de where()-operator is gewijzigd. Collection.Where('property -match name') het accepteren van een tekenreeksexpressie in de indeling "Property -CompareOperator Value" wordt niet meer ondersteund. De operator Where() accepteert echter tekenreeksexpressies in de indeling van een scriptblock; dit wordt nog steeds ondersteund.

Nieuwe functies in Windows PowerShell Integrated Scripting Environment (ISE)

  • Windows PowerShell ISE ondersteunt zowel foutopsporing in Windows PowerShell werkstroom als foutopsporing van externe scripts.
  • 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 algemene pipelineVariable-parameter in de context van iteratieve pijplijnen, zoals die worden gebruikt door System Center Orchestrator; dat wil gezegd, pijplijnen die opdrachten uitvoeren, gewoon van links naar rechts, in tegenstelling tot interspersed die worden uitgevoerd via streaming.
  • Parameterbinding is aanzienlijk verbeterd om te werken buiten scenario's voor het voltooien van tabbladen, zoals met opdrachten die niet bestaan in de huidige runspace.
  • Ondersteuning voor aangepaste containeractiviteiten is toegevoegd aan Windows PowerShell Workflow. Als een activiteitsparameter van het type Activiteit, Activiteit[] (of een algemene verzameling activiteiten is) en de gebruiker een scriptblok als argument heeft opgegeven, converteert Windows PowerShell Werkstroom het scriptblok naar XAML, zoals bij normale Windows PowerShell compilatie van script naar werkstroom.
  • Na een crash maakt Windows PowerShell Workflow automatisch opnieuw verbinding met beheerde knooppunten.
  • U kunt nu Foreach - Parallel-activiteitsinstructies beperken met behulp van de eigenschap ThrottleLimit .
  • De algemene parameter ErrorAction heeft een nieuwe geldige waarde, Suspend, die uitsluitend is bedoeld voor werkstromen.
  • Een werkstroomeindpunt wordt nu automatisch gesloten als er geen actieve sessies, geen actieve taken en geen openstaande taken zijn. Deze functie bespaart resources op de computer die fungeert als de werkstroomserver, wanneer aan de voorwaarden voor automatisch sluiten 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 wordt uitgevoerd, worden er meer gedetailleerde foutberichten geretourneerd naar de aanroeper. Daarnaast volgen foutcodes de foutcodes van Windows Azure REST API.
  • Een eindpunt kan nu de API-versie definiëren en het gebruik van een specifieke API-versie afdwingen. Wanneer er niet-overeenkomende versies optreden tussen client en server, worden fouten weergegeven op zowel de client als de server.
  • Het beheer van het verzendschema is vereenvoudigd door automatisch waarden te genereren voor ontbrekende velden in het schema. Generatie vindt plaats, als een handig uitgangspunt, zelfs als het verzendschema niet bestaat.
  • De verwerking van typen in PSWS is verbeterd ter ondersteuning van typen die een andere constructor gebruiken dan de standaardconstructor, door zich op dezelfde manier te gedragen als de PSTypeConverter in Windows PowerShell. Hiermee kunt u complexe typen gebruiken met PSWS.
  • Met PSWS kunt u nu een gekoppeld exemplaar uitbreiden tijdens het uitvoeren van een query. Voor grotere binaire inhoud (zoals afbeeldingen, audio of video) zijn de overdrachtskosten aanzienlijk en is het beter om binaire gegevens over te dragen zonder codering. PSWS maakt gebruik van 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 afzonderlijke URI voor GET- of UPDATE-bewerkingen.
  • OData-acties bieden nu een mechanisme voor het aanroepen van niet-CRUD-methoden (Maken, Lezen, Bijwerken en Verwijderen) voor een resource. U kunt een actie aanroepen door een HTTP POST-aanvraag te verzenden naar de URI die voor de actie is gedefinieerd. De parameters voor de actie worden gedefinieerd in de hoofdtekst van de POST-aanvraag.
  • Om consistent te zijn met windows Azure-richtlijnen, moeten alle URL's worden vereenvoudigd. Met een wijziging in Sleutel als-segment kunnen enkele sleutels worden weergegeven als segmenten. Houd er rekening mee dat verwijzingen die meerdere sleutelwaarden gebruiken, door komma's gescheiden waarden in de notatie tussen haakjes vereisen, net als voorheen.
  • Vóór deze release van PSWS was de enige manier om bewerkingen voor maken, bijwerken of verwijderen uit te voeren door Posten, Plaatsen of Verwijderen aan te roepen op een resource op het hoogste niveau. Nieuw in deze release van PSWS: met ingesloten resourcebewerkingen kunnen gebruikers dezelfde resultaten behalen terwijl ze minder rechtstreeks dezelfde resource bereiken, waardoor het alsof deze resources zijn opgenomen.

Nieuwe functies in Windows PowerShell Web Access

  • U kunt de verbinding met bestaande sessies verbreken en opnieuw verbinding maken met bestaande sessies in de webgebaseerde Windows PowerShell Web Access-console. Met de knop Opslaan in de webconsole kunt u de verbinding met een sessie verbreken zonder deze te verwijderen en een andere keer opnieuw verbinding maken met de sessie.
  • Standaardparameters kunnen worden weergegeven op de aanmeldingspagina. Als u standaardparameters wilt weergeven, configureert u waarden voor alle instellingen die worden weergegeven in het gebied Optionele verbindingsinstellingen van de aanmeldingspagina in een bestand met de naam web.config. U kunt het web.config-bestand gebruiken om alle optionele verbindingsinstellingen te configureren, met uitzondering van een tweede of alternatieve set referenties.
  • In Windows Server 2012 R2 kunt u op afstand autorisatieregels voor Windows PowerShell Web Access beheren. De cmdlets Add-PswaAuthorizationRule en Test-PswaAuthorizationRule bevatten nu een referentieparameter waarmee beheerders autorisatieregels kunnen beheren vanaf een externe computer of in een Windows PowerShell Web Access-sessie.
  • U kunt nu meerdere Windows PowerShell Web Access-sessies in één browsersessie hebben met behulp van een nieuw browsertabblad voor elke sessie. U hoeft geen nieuwe browsersessie meer te openen om verbinding te maken met een nieuwe sessie in de webgebaseerde Windows PowerShell-console.

Belangrijke oplossingen voor fouten in Windows PowerShell 4.0

  • Get-Counter kan nu tellers retourneren die een apostrofteken bevatten in Franse edities van Windows.
  • U kunt nu de gettype-methode weergeven voor gedeserialiseerde objecten.
  • met #Requires-instructies kunnen gebruikers nu beheerderstoegangsrechten vereisen, indien nodig.
  • De cmdlet Import-CSV negeert nu lege regels.
  • Er is een probleem opgelost waarbij Windows PowerShell ISE te veel geheugen gebruikt wanneer u een Invoke-WebRequest-opdracht uitvoert.
  • In Get-Module worden nu moduleversies weergegeven in de kolom Versie .
  • Remove-Item -Recurse verwijdert nu items uit submappen zoals verwacht.
  • Er is een eigenschap UserName toegevoegd aan uitvoerobjecten van Get-Process .
  • De cmdlet Invoke-RestMethod retourneert nu alle beschikbare resultaten.
  • Add-Member wordt nu van kracht op hashtabellen, zelfs als de hashtabellen nog niet zijn geopend.
  • Select-Object - Expand mislukt niet meer of genereert een uitzondering als de waarde van de eigenschap null of leeg is.
  • Get-Process kan nu worden gebruikt in een pijplijn met andere opdrachten waarmee de eigenschap ComputerName van objecten wordt opgehaald.
  • ConvertTo-Json en ConvertFrom-Json kunnen nu termen tussen dubbele aanhalingstekens accepteren en de foutberichten kunnen nu worden gelokaliseerd.
  • Get-Job retourneert nu alle voltooide geplande taken, zelfs in nieuwe sessies.
  • Problemen met het koppelen en ontkoppelen van VHD's met behulp van de bestandssysteemprovider in Windows PowerShell 4.0 zijn opgelost. Windows PowerShell kan nu nieuwe stations detecteren wanneer ze in dezelfde sessie worden gekoppeld.
  • U hoeft de module ScheduledJob of Workflow niet meer expliciet te laden om met hun taaktypen te kunnen werken.
  • Er zijn prestatieverbeteringen aangebracht in het proces van het importeren van werkstromen die geneste werkstromen 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-werkstroom

Windows PowerShell Workflow biedt de kracht van Windows Workflow Foundation aan Windows PowerShell. U kunt werkstromen schrijven in XAML of in de Windows PowerShell taal en deze uitvoeren zoals u een cmdlet zou uitvoeren. De Get-Command cmdlet krijgt werkstroomopdrachten en de Get-Help cmdlet krijgt hulp voor werkstromen.

Werkstromen zijn reeksen van beheeractiviteiten voor meerdere computers die langlopend, herhaalbaar, frequent, parallelliseerbaar, onderbreekbaar, onderbreekbaar en opnieuw kunnen worden opgestart. Werkstromen kunnen worden hervat na een opzettelijke of onbedoelde onderbreking, zoals een netwerkstoring, een windows-herstart of een stroomstoring.

Werkstromen zijn ook draagbaar; ze kunnen worden geëxporteerd als of geïmporteerd uit XAML-bestanden. U kunt aangepaste sessieconfiguraties schrijven waarmee werkstromen of activiteiten in een werkstroom kunnen worden uitgevoerd door gedelegeerde of ondergeschikte gebruikers.

Hier volgen de voordelen van Windows PowerShell Workflow

  • Automatisering van gesequentieerde, langlopende taken.
  • Externe bewaking van langlopende taken. De status en voortgang van activiteiten zijn op elk gewenst moment zichtbaar.
  • Beheer van meerdere computers. Voer taken tegelijk uit als werkstromen op honderden beheerde knooppunten. Windows PowerShell Workflow bevat een ingebouwde bibliotheek met algemene beheerparameters, zoals PSComputerName, waarmee beheerscenario's voor meerdere computers mogelijk zijn.
  • Uitvoering van complexe processen met één taak. U kunt gerelateerde scripts combineren die een volledig end-to-end-scenario implementeren in één werkstroom.
  • Persistentie.: een werkstroom wordt opgeslagen (of gecontroleerd) op specifieke punten die door de auteur zijn gedefinieerd, zodat u de werkstroom kunt hervatten vanaf de laatste permanente taak (of controlepunt), in plaats van de werkstroom opnieuw vanaf het begin te starten.
  • Robuustheid. Automatisch foutherstel. Werkstromen overleven geplande en ongeplande herstarts. U kunt de uitvoering van de werkstroom onderbreken en de werkstroom vervolgens hervatten vanaf het laatste persistentiepunt. Auteurs van werkstromen kunnen specifieke activiteiten aanwijzen die opnieuw moeten worden uitgevoerd in het geval van een storing op een of meer beheerde knooppunten.
  • Mogelijkheid om de verbinding te verbreken, opnieuw verbinding te maken en uit te voeren in niet-verbonden sessies. Gebruikers kunnen verbinding maken met de werkstroomserver en de verbinding verbreken, maar de werkstroom wordt continu uitgevoerd. U kunt zich afmelden bij de clientcomputer of de clientcomputer opnieuw opstarten en de uitvoering van de werkstroom vanaf een andere computer controleren zonder de werkstroom te onderbreken.
  • Plannen. Werkstroomtaken kunnen worden gepland zoals elke Windows PowerShell cmdlet of script.
  • Werkstroom- en verbindingsbeperking. Werkstroomuitvoering en verbindingen met knooppunten kunnen worden beperkt, waardoor scenario's voor schaalbaarheid en hoge beschikbaarheid mogelijk zijn.

Windows PowerShell Web Access

Windows PowerShell Web Access is een Windows Server 2012 functie waarmee gebruikers Windows PowerShell opdrachten en scripts kunnen uitvoeren in een webconsole. Voor apparaten die gebruikmaken van de webconsole is geen Windows PowerShell, software voor extern beheer of browserinvoegtoepassingen vereist. Alles wat is vereist, is een correct geconfigureerde Windows PowerShell Web Access-gateway en een browser van het clientapparaat die JavaScript ondersteunt en cookies accepteert.

Zie Deploy Windows PowerShell Web Access (Windows PowerShell Web Access implementeren) voor meer informatie.

Nieuwe Windows PowerShell ISE-functies

Voor Windows PowerShell 3.0 heeft Windows PowerShell Integrated Scripting Environment (ISE) veel nieuwe functies, waaronder IntelliSense, Show-Command-venster, een geïntegreerd consolevenster, fragmenten, accolades, secties uitvouwen/samenvouwen, automatisch opslaan, lijst met recente items, rich copy, block copy en volledige ondersteuning voor het schrijven van Windows PowerShell script Werkstromen. Zie about_Windows_PowerShell_ISE voor meer informatie.

Ondersteuning voor Microsoft .NET Framework 4

Windows PowerShell is gebaseerd op Common Language Runtime 4.0. Auteurs van cmdlets, scripts en werkstromen kunnen gebruikmaken van de nieuwe Microsoft .NET Framework 4-klassen in Windows PowerShell, met functies zoals Toepassingscompatibiliteit en -implementatie, Managed Extensibility Framework, Parallel Computing, Netwerken, Windows Communication Foundation en Windows Workflow Stichting.

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 start die geen besturingssysteem heeft en deze voorbereidt op Windows-installatie. Windows PE kan worden gebruikt voor het partitioneren en formatteren van harde schijven, het kopiëren van schijfinstallatiekopieën naar een computer en het initiëren van Windows Setup vanaf een netwerkshare. Windows PowerShell 3.0 kan worden gebruikt in Windows PE voor het beheren van implementatie-, diagnostische en herstelscenario's.

Niet-verbonden sessies

Vanaf Windows PowerShell 3.0 worden permanente door de gebruiker beheerde sessies (PSSessions) die u maakt met de cmdlet New-PSSession opgeslagen op de externe computer. Ze zijn niet meer afhankelijk van de sessie waarin ze zijn gemaakt.

U kunt nu de verbinding met een sessie verbreken zonder de opdrachten die in de sessie worden uitgevoerd, te onderbreken. U kunt de sessie sluiten en uw computer afsluiten. Later kunt u opnieuw verbinding maken met de sessie vanuit een andere sessie op dezelfde of op een andere computer.

Met de parameter ComputerName van de Get-PSSession cmdlet worden nu alle sessies van de gebruiker opgevraagd die verbinding maken met de computer, zelfs als ze zijn gestart in een andere sessie op een andere computer. U kunt verbinding maken met de sessies, de resultaten van opdrachten ophalen, nieuwe opdrachten starten en vervolgens de verbinding met de sessie verbreken.

Er zijn nieuwe cmdlets toegevoegd ter ondersteuning van de functie Verbroken sessies, waaronder Disconnect-PSSession, Connect-PSSessionen Receive-PSSession, en , en nieuwe parameters zijn toegevoegd aan cmdlets die PSSessions beheren, zoals de parameter InDisconnectedSession van de Invoke-Command cmdlet.

De functie Niet-verbonden sessies wordt alleen ondersteund wanneer de computers op zowel de oorspronkelijke (client) als de einden ('server') van de verbinding worden uitgevoerd Windows PowerShell 3.0.

Robuuste sessieconnectiviteit

Windows PowerShell 3.0 detecteert onverwacht verlies van connectiviteit tussen de client en de server en probeert de connectiviteit te herstellen en de uitvoering automatisch te hervatten. Als de client-serververbinding niet opnieuw tot stand kan worden gebracht binnen de toegewezen tijd, wordt de gebruiker hiervan op de hoogte gesteld en wordt de sessie verbroken. Tijdens de poging om opnieuw verbinding te maken, geeft Windows PowerShell de gebruiker doorlopend feedback.

Als de niet-verbonden sessie is gestart met behulp van de InvokeCommand, maakt Windows PowerShell een taak voor de niet-verbonden sessie om het gemakkelijker te maken om opnieuw verbinding te maken en de uitvoering te hervatten.

Deze functies bieden een betrouwbaardere en herstelbare ervaring voor externe communicatie en stellen gebruikers in staat om langlopende taken uit te voeren waarvoor robuuste sessies nodig zijn, zoals werkstromen.

Help-systeem dat kan worden bijgewerkt

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

Als u de bijgewerkte Help-bestanden wilt gebruiken, typt Get-Helpu . U hoeft Windows niet opnieuw te starten of Windows PowerShell. Als u help voor modules in de map $pshome wilt bijwerken, start u Windows PowerShell met de optie Als administrator uitvoeren.

Ter ondersteuning van gebruikers die geen internettoegang hebben en gebruikers achter firewalls, downloadt de nieuwe Save-Help cmdlet Help-bestanden naar een bestandssysteemmap, zoals een bestandsshare. Gebruikers kunnen vervolgens de Update-Help cmdlet gebruiken om bijgewerkte Help-bestanden op te halen uit de bestandsshare.

U kunt de Update-Help cmdlet gebruiken om Help-bestanden bij te werken voor alle of bepaalde modules in alle ondersteunde UI-culturen. U kunt zelfs een Update-Help opdracht in uw Windows PowerShell-profiel plaatsen. Standaard downloadt Windows PowerShell de Help-bestanden voor een module niet vaker dan één keer per dag.

Windows 8- en Windows Server 2012-modules bevatten geen Help-bestanden. Als u de meest recente Help-bestanden wilt downloaden, typt u Update-Help. Typ (zonder parameters) of zie about_Updatable_Help voor meer informatie Get-Help .

Wanneer de Help-bestanden voor een cmdlet niet op de computer zijn geïnstalleerd, geeft de Get-Help cmdlet nu automatisch gegenereerde Help weer. De automatisch gegenereerde Help bevat de syntaxis van de opdracht en instructies voor het gebruik van de Update-Help cmdlet om Help-bestanden te downloaden.

Elke auteur van een module kan ondersteuning bieden voor bijwerkbare Help voor de module. U kunt Help-bestanden opnemen in de module en Bijwerkbare Help gebruiken om deze bij te werken of de Help-bestanden weg te laten en De updatebare Help-bestanden te gebruiken om ze te installeren. Zie Ondersteunende Help voor bijwerkbare Help voor meer informatie over het ondersteunen van bijwerkbare Help.

Verbeterde online-Help

Windows PowerShell online-Help is een waardevolle bron voor alle gebruikers, maar het is vooral belangrijk voor gebruikers die bijgewerkte Help-bestanden niet of niet kunnen installeren.

Als u online hulp wilt krijgen voor een Windows PowerShell cmdlet, typt u:

Get-Help <cmdlet-name> -Online

Windows PowerShell opent de onlineversie van het Help-onderwerp in uw standaard internetbrowser.

De functie Get-Help -Online in Windows PowerShell 3.0 is nu nog krachtiger omdat deze zelfs werkt wanneer Help-bestanden voor de cmdlet niet op de computer zijn geïnstalleerd. Met de functie Get-Help -Online wordt de URI voor het online Help-onderwerp opgehaald uit de eigenschap HelpUri 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 eigenschap HelpUri invullen door een HelpUri-kenmerk te maken voor de cmdlet-klasse. Auteurs van geavanceerde functies kunnen een HelpUri-eigenschap definiëren op het cmdletBinding-kenmerk . De waarde van de eigenschap HelpUri moet beginnen met 'http' of 'https'.

U kunt ook een HelpUri-waarde opnemen in de eerste gerelateerde koppeling van een HELP-bestand op basis van xml-cmdlet of de . Koppelingsrichtlijn van hulp op basis van opmerkingen in een functie.

Zie Ondersteunende Online Help voor meer informatie over het ondersteunen van online-Help.

CIM-integratie

Windows PowerShell 3.0 omvat ondersteuning voor het Common Information Model (CIM), dat algemene definities biedt van beheerinformatie voor systemen, netwerken, toepassingen en services, waardoor beheerinformatie 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, opdrachten op basis van XML-bestanden voor cmdletdefinities, ondersteuning voor CIM-.NET Framework. API, CIM-beheer-cmdlets en WMI 2.0-providers.

Sessieconfiguratiebestanden

Vanaf Windows PowerShell 3.0 kunt u een aangepaste sessieconfiguratie ontwerpen met behulp van een bestand. Met het nieuwe sessieconfiguratiebestand kunt u de omgeving bepalen van sessies die gebruikmaken van de sessieconfiguratie, inclusief welke modules, scripts en indelingsbestanden in sessies worden geladen, welke cmdlets en taalelementen gebruikers kunnen gebruiken, welke modules en scripts ze kunnen uitvoeren en welke variabelen ze kunnen zien.

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

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

Gebruik de New-PSSessionConfigurationFile cmdlet om een sessieconfiguratiebestand te maken. Als u het sessieconfiguratiebestand wilt toepassen op een sessieconfiguratie, gebruikt u de Register-PSSessionConfiguration cmdlets 'Set-PSSessionConfiguration'.

Zie about_Session_Configuration_Files en New-PSSessionConfigurationFilevoor meer informatie.

Geplande taken en Integratie van Task Scheduler

U kunt nu Windows PowerShell achtergrondtaken plannen en deze beheren in Windows PowerShell en in Task Scheduler.

Windows PowerShell geplande taken zijn een handige combinatie van Windows PowerShell achtergrondtaken en Taakplannertaken.

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

Net als bij Task Scheduler-taken kunt u geplande taken uitvoeren volgens een eenmalig of terugkerend schema, of als reactie op een actie of gebeurtenis. U kunt geplande taken weergeven en beheren in Task Scheduler, ze indien nodig in- en uitschakelen, ze uitvoeren of gebruiken als sjablonen en voorwaarden instellen waaronder de taken worden gestart.

Daarnaast worden geplande taken geleverd met een aangepaste set cmdlets voor het beheren ervan. Met de cmdlets kunt u geplande taken maken, bewerken, beheren, uitschakelen en opnieuw inschakelen, triggers voor geplande taken maken en geplande taakopties instellen.

Zie about_Scheduled_Jobs voor meer informatie over geplande taken.

taalverbeteringen voor Windows PowerShell

Windows PowerShell 3.0 bevat veel functies die zijn ontworpen om de taal eenvoudiger en gebruiksvriendelijker te maken en veelvoorkomende fouten te voorkomen. De verbeteringen omvatten eigenschapsinventarisatie, aantal en lengte-eigenschappen voor scalaire objecten, nieuwe omleidingsoperators, de $Using bereikaanpassing, automatische variabele PSItem, flexibele scriptopmaak, kenmerken van variabelen, vereenvoudigde kenmerkargumenten, numerieke opdrachtnamen, de Stop-Parsing-operator, verbeterde matrixsplatting, nieuwe bitoperators, geordende woordenlijsten, PSCustomObject-casting en verbeterde hulp op basis van opmerkingen.

Nieuwe kern-cmdlets

Er zijn nieuwe cmdlets toegevoegd aan de Windows PowerShell installatie, waaronder cmdlets voor het beheren van geplande taken, niet-verbonden sessies, CIM-integratie en het Updatable Help-systeem.

  • 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

Verbeteringen in 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 zijn ook aanzienlijk verbeterd, waaronder ondersteuning van certificaatproviders voor het beheren van SSL-certificaten (Secure Socket Layer) voor webhosting, ondersteuning voor referenties, permanente netwerkstations en alternatieve gegevensstromen in bestandssysteemstations.

Externe module importeren en detecteren

Windows PowerShell 3.0 breidt de mogelijkheden voor moduledetectie, importeren en impliciete externe communicatie op externe computers uit. De module-cmdlets halen modules op externe computers op en importeren de modules op de externe of lokale computer met behulp van Windows PowerShell externe communicatie. Met nieuwe CIM-sessieondersteuning kunt u CIM en WMI gebruiken om niet-Windows-computers te beheren door opdrachten te importeren op de lokale computer die impliciet op de externe computer worden uitgevoerd.

Zie de Help-onderwerpen voor de Get-Module cmdlets en Import-Module voor meer informatie.

Verbeterde tabvoltooiing

Tabvoltooiing in de Windows PowerShell-console voltooit nu de namen van cmdlets, parameters, parameterwaarden, opsommingen, .NET Frameworks-typen, COM-objecten, verborgen mappen en meer. De functie voor het voltooien van tabbladen wordt volledig herschreven op basis van een nieuwe parser en abstracte syntaxisstructuur ter ondersteuning van meer scenario's, waaronder parseerstructuren in het geheugen en voltooiing van het middellijntabblad.

Module automatisch laden

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

Wanneer u de cmdlet hebt die u nodig hebt, kunt u deze onmiddellijk gebruiken zonder modules te importeren. Windows PowerShell modules worden nu automatisch geïmporteerd wanneer u een cmdlet in de module gebruikt. U hoeft niet langer te zoeken naar de module en deze te importeren om de bijbehorende cmdlets te gebruiken.

Het automatisch importeren van modules wordt geactiveerd met behulp van de cmdlet in een opdracht, wordt uitgevoerd Get-Command voor een cmdlet zonder jokertekens of wordt uitgevoerd Get-Help voor een cmdlet zonder jokertekens.

U kunt automatisch importeren van modules inschakelen, uitschakelen en configureren met behulp van de $PSModuleAutoLoadingPreference voorkeursvariabele.

Zie about_Modules, about_Preference_Variables en de Help-onderwerpen voor de Get-Command cmdlets en Import-Module voor meer informatie.

Verbeteringen in de module-ervaring

Windows PowerShell 3.0 biedt geavanceerde functieondersteuning voor modules, waaronder de volgende nieuwe functies.

  1. Modulelogboekregistratie voor afzonderlijke modules (LogPipelineExecutionDetails) en de nieuwe instelling 'Modulelogboekregistratie inschakelen' groepsbeleid
  2. Uitgebreide moduleobjecten die de waarden uit het modulemanifest beschikbaar maken
  3. Nieuwe eigenschap ExportedCommands van modules, inclusief geneste modules, waarmee opdrachten van alle typen worden gecombineerd
  4. Verbeterde detectie van beschikbare (niet-geïmporteerde) modules, waaronder het toestaan van de parameters Path en ListAvailable in dezelfde opdracht
  5. Nieuwe DefaultCommandPrefix-sleutel in modulemanifesten waarmee naamconflicten worden voorkomen zonder de modulecode te wijzigen.
  6. Verbeterde modulevereisten, waaronder volledig gekwalificeerde vereiste modules met versie en GUID en automatisch importeren van vereiste modules
  7. Stillere, gestroomlijnde werking van de New-ModuleManifest cmdlet.
  8. Nieuwe moduleparameter voor #Requires
  9. Verbeterde Import-Module cmdlet met de parameters MinimumVersion en RequiredVersion .

Vereenvoudigde opdrachtdetectie

U hoeft niet langer alle modules te importeren om de opdrachten te detecteren die beschikbaar zijn voor uw sessie. In Windows PowerShell 3.0 haalt de Get-Command cmdlet alle opdrachten van alle geïnstalleerde modules op. En als u een opdracht gebruikt, wordt de module waarmee de opdracht wordt geëxporteerd, automatisch geïmporteerd in uw sessie.

De nieuwe Show-Command cmdlet is speciaal ontworpen voor beginners. U kunt zoeken naar opdrachten in een venster. U kunt alle opdrachten weergeven of filteren op module, een module importeren door op een knop te klikken, tekstvakken en vervolgkeuzelijsten gebruiken om een geldige opdracht samen te stellen en vervolgens de opdracht kopiëren of uitvoeren zonder het venster te verlaten.

Verbeterde ondersteuning voor logboekregistratie, diagnostische gegevens en groepsbeleid

Windows PowerShell 3.0 verbetert de ondersteuning voor logboekregistratie en tracering voor opdrachten en modules met ondersteuning voor ETW-logboeken (Event Tracing in Windows), een bewerkbare LogPipelineExecutionDetails-eigenschap van modules en de groepsbeleid instelling 'Modulelogboekregistratie inschakelen'. U kunt nu parameterwaarden ophalen uit logboekdetails door de logboekeigenschappen weer te geven.

Verbeteringen in opmaak en uitvoer

Nieuwe verbeteringen in de opmaak en uitvoer verbeteren de efficiëntie van alle Windows PowerShell gebruikers. De verbeteringen omvatten uitvoeromleiding voor alle streams, een verbeterde Update-Type cmdlet die dynamisch typen toevoegt zonder Format.ps1xml-bestanden, tekstterugloop in uitvoer, standaardopmaakeigenschappen van aangepaste objecten, het type PSCustomObject , verbeterde opmaak voor WMI-objecten en heterogene objecten en ondersteuning voor het detecteren van overbelasting van methoden.

Verbeterde consolehostervaring

Het Windows PowerShell consolehostprogramma heeft standaard nieuwe functies in Windows PowerShell 3.0, waaronder een appartement met één thread. Met de nieuwe optie Uitvoeren met PowerShell in Bestandenverkenner kunt u scripts in een onbeperkte sessie uitvoeren door met de rechtermuisknop te klikken. De startlogica van de nieuwe consolehost begint Windows PowerShell sneller en met nieuwe lettertypen kunt u de vertrouwde consolevensterervaring aanpassen.

Nieuwe cmdlet- en hosting-API's

De nieuwe cmdlet-API en hosting-API bevatten AST-API's (openbare geavanceerde syntaxisstructuur) en API's voor pijplijnpaginering, geneste pijplijnen, runspace-pools op het tabblad voltooiing, Windows RT, het kenmerk Verouderde cmdlet en de eigenschappen Werkwoord en Zelfstandig naamwoord van het object FunctionInfo.

Verbeterde prestaties

Belangrijke prestatieverbeteringen in Windows PowerShell zijn afkomstig van de nieuwe taalparser, die is gebouwd op Dynamic Runtime Language (DLR) in .NET Framework 4., samen met runtimescriptcompilatie, verbeteringen in de betrouwbaarheid van de engine en wijzigingen in het algoritme van de Get-ChildItem die de prestaties verbeteren, met name bij het zoeken naar netwerkshares.

Ondersteuning voor RunAs en gedeelde host

Windows PowerShell 3.0 bevat ondersteuning voor RunAs- en Shared Host-functies.

Met de functie RunAs, ontworpen voor Windows PowerShell Werkstroom, kunnen gebruikers van een sessieconfiguratie sessies maken die worden uitgevoerd met de machtiging van een gedeeld gebruikersaccount. Hierdoor kunnen gebruikers met minder bevoegdheden bepaalde opdrachten en scripts met beheerdersmachtigingen uitvoeren en hoeven er minder senior gebruikers aan de groep Administrators te worden toegevoegd.

Met de functie SharedHost kunnen meerdere gebruikers op meerdere computers gelijktijdig verbinding maken met een werkstroomsessie en de voortgang van een werkstroom controleren. Gebruikers kunnen een werkstroom op de ene computer starten en vervolgens verbinding maken met de werkstroomsessie op een andere computer zonder de verbinding van de sessie met de oorspronkelijke computer te verbreken. Gebruikers moeten dezelfde machtigingen hebben en dezelfde sessieconfiguratie gebruiken. Zie 'Een Windows PowerShell-werkstroom uitvoeren' in Aan de slag met Windows PowerShell Workflow voor meer informatie.

Verbeteringen in de verwerking van speciale tekens

Om de mogelijkheid van Windows PowerShell 3.0 om speciale tekens te interpreteren en correct te verwerken, is de parameter LiteralPath, die speciale tekens in paden verwerkt, geldig voor bijna alle cmdlets met een path-parameter, inclusief de nieuwe Update-Help cmdlets en Save-Help cmdlets. De parser bevat ook speciale logica om de verwerking van het backtickteken (`) en vierkante haken in bestandsnamen en paden te verbeteren.

Zie ook