Nieuwe en bijgewerkte cmdlets
We hebben nieuwe en bijgewerkte bestaande cmdlets toegevoegd op basis van feedback van de community.
Archief-cmdlets
Met twee nieuwe cmdlets, Compress-Archive en , kunt u Expand-Archive ZIP-bestanden comprimeren en uitbreiden.
Zie de documentatie van de Microsoft.Powershell.Archive-module voor meer informatie.
Catalogus-cmdlets
Er zijn twee nieuwe cmdlets toegevoegd in de module Microsoft.PowerShell.Security.
Deze genereren en valideren Windows catalogusbestanden.
Klembord-cmdlets
Get-Clipboarden Set-Clipboard maken het eenvoudiger voor u om inhoud over te dragen van en naar een Windows PowerShell sessie. De Klembord-cmdlets ondersteunen afbeeldingen, audiobestanden, bestandslijsten en tekst.
Zie voor meer informatie:
CMS-cmdlets (Cryptographic Message Syntax)
De cmdlets voor cryptografische berichtsyntaxis ondersteunen versleuteling en ontsleuteling van inhoud met behulp van de standaard IETF-indeling voor het cryptografisch beveiligen van berichten, zoals beschreven door RFC5652.
De CMS-versleutelingsstandaard implementeert cryptografie met openbare sleutels, waarbij de sleutel die wordt gebruikt voor het versleutelen van inhoud (de openbare sleutel ) en de sleutel die wordt gebruikt voor het ontsleutelen van inhoud (de persoonlijke sleutel) gescheiden zijn.
Uw openbare sleutel kan algemeen worden gedeeld en is geen gevoelige gegevens. Inhoud die is versleuteld met de openbare sleutel, kan alleen worden ontsleuteld met behulp van de persoonlijke sleutel. Zie Public-key cryptografie voor meer informatie.
Zie voor meer informatie:
Certificaten vereisen een unieke sleutelgebruiks-id (EKU), zoals 'Ondertekening van programmacode' of 'Versleutelde e-mail', om ze te identificeren als certificaten voor gegevensversleuteling in PowerShell. Als u versleutelingscertificaten voor documenten wilt weergeven in de certificaatprovider, kunt u de dynamische parameter DocumentEncryptionCert van Get-ChildItem gebruiken:
Get-ChildItem Cert:\CurrentUser -DocumentEncryptionCert -Recurse
Gestructureerde objecten uit tekenreeksinhoud extraheren en parseren
ConvertFrom-String
De nieuwe ConvertFrom-String cmdlet ondersteunt twee modi:
- Eenvoudige parseren met scheidingstekens
- Automatisch gegenereerd voorbeeldgestuurd parseren
Parseren met scheidingstekens splitst standaard de invoer op witruimte en wijst eigenschapsnamen toe aan de resulterende groepen.
Met de parameter UpdateTemplate worden de resultaten van het leeralgoritme opgeslagen in een opmerking in het sjabloonbestand. Dit maakt het leerproces (de traagste fase) een een time-kosten. Het ConvertFrom-String uitvoeren met een sjabloon die het gecodeerde leeralgoritme bevat, is nu bijna onmiddellijk.
Zie ConvertFrom-String voor meer informatie.
Convert-String
Convert-String kunt u voor- en na voorbeelden geven van hoe tekst eruit moet zien. Met de cmdlet wordt uw tekst automatisch opgemaakt.
Zie Convert-String voor meer informatie.
Updates voor FileInfo-object
Informatie over de bestandsversie kan misleidend zijn, met name in gevallen waarin het bestand is gepatcht. WMF 5.0 voegt nieuwe scripteigenschappen FileVersionRaw en ProductVersionRaw toe aan FileInfo-objecten. Hier volgen de eigenschappen die worden weergegeven voor powershell.exe (ervan uitgaande $pid id van het PowerShell-proces is):
Get-Process -Id $pid -FileVersionInfo | Format-List *version*
FileVersionRaw : 10.0.17763.1
ProductVersionRaw : 10.0.17763.1
FileVersion : 10.0.17763.1 (WinBuild.160101.0800)
ProductVersion : 10.0.17763.1
Format-Hex
Format-Hex hiermee kunt u tekst of binaire gegevens weergeven in hexadecimale indeling.
Zie Format-Hex voor meer informatie.
Get-ChildItem heeft de parameter -Depth
Get-ChildItem heeft nu een diepteparameter voor gebruik met Recurse om de recursie te beperken:
Ondersteuning voor modules voor het declareren van versiebereiken (1.*, enzovoort)
U kunt nu MinimumVersion en MaximumVersion combineren om de module binnen een specifiek bereik te importeren. De parameters ondersteunen ook jokertekens.
Import-Module psreadline -Verbose -MinimumVersion 1.0 -MaximumVersion 1.2.*
VERBOSE: Loading module from path 'C:\Program Files\WindowsPowerShell\Modules\psreadline\1.1\psreadline.psd1'.
VERBOSE: Importing cmdlet 'Get-PSReadlineKeyHandler'.
VERBOSE: Importing cmdlet 'Get-PSReadlineOption'.
VERBOSE: Importing cmdlet 'Remove-PSReadlineKeyHandler'.
VERBOSE: Importing cmdlet 'Set-PSReadlineKeyHandler'.
VERBOSE: Importing cmdlet 'Set-PSReadlineOption'.
VERBOSE: Importing function 'PSConsoleHostReadline'.
New-Guid
Er zijn veel scenario's waarin u een unieke id nodig hebt. De New-GUID cmdlet biedt een eenvoudige manier om een nieuwe GUID te maken.
New-Guid
Guid
----
e19d6ea5-3cc2-4db9-8095-0cdaed5a703d
Parameter NoNewLine
Out-File, Add-Content en hebben nu een nieuwe Set-Content NoNewline-switch waarmee een nieuwe regel na de uitvoer wordt weglaten. Bijvoorbeeld:
"This is " | Out-File -FilePath Example.txt -NoNewline
"a single " | Add-Content -Path Example.txt -NoNewline
"sentence." | Add-Content -Path Example.txt -NoNewline
Get-Content .\Example.txt
This is a single sentence.
Zonder NoNewline opgegeven, zou elk fragment zich op een afzonderlijke regel:
"This is " | Out-File -FilePath Example.txt
"a single " | Add-Content -Path Example.txt
"sentence." | Add-Content -Path Example.txt
Get-Content .\Example.txt
This is
a single
sentence.
Interactie met symbolische koppelingen met behulp van verbeterde Item-cmdlets
De item-cmdlet en enkele gerelateerde cmdlets zijn uitgebreid ter ondersteuning van symbolische koppelingen.
Symbolische koppelingsbestanden
In dit voorbeeld maken we een nieuw symbolisch koppelingsbestand met de naam MySymLinkFile.txt in C:\Temp, dat is gekoppeld aan $pshome\profile.ps1. Alle drie de voorbeelden produceren hetzelfde resultaat.
New-Item -ItemType SymbolicLink -Path C:\Temp -Name MySymLinkFile.txt -Value $pshome\profile.ps1
New-Item -ItemType SymbolicLink -Path C:\Temp\MySymLinkFile.txt -Value $pshome\profile.ps1
New-Item -ItemType SymbolicLink -Name C:\Temp\MySymLinkFile.txt -Value $pshome\profile.ps1
Symbolische koppelingsdirecties
In dit voorbeeld maken we een nieuwe symbolische koppelingsmap met de naam MySymLinkDir in C:\Temp die is gekoppeld aan $pshome map. Alle drie de voorbeelden produceren hetzelfde resultaat.
New-Item -ItemType SymbolicLink -Path C:\Temp -Name MySymLinkDir -Value $pshome
New-Item -ItemType SymbolicLink -Path C:\Temp\MySymLinkDir -Value $pshome
New-Item -ItemType SymbolicLink -Name C:\Temp\MySymLinkDir -Value $pshome
Vaste koppelingen
Dezelfde combinaties van Pad en Naam die zijn toegestaan zoals hierboven beschreven.
New-Item -ItemType HardLink -Path C:\Temp -Name MyHardLinkFile.txt -Value $pshome\profile.ps1
Directory-verbinding
Dezelfde combinaties van Pad en Naam die zijn toegestaan zoals hierboven beschreven.
New-Item -ItemType Junction -Path C:\Temp\MyJunctionDir -Value $pshome
Get-ChildItem
Get-ChildItem geeft nu een 'l' weer in de eigenschap Mode om een symbolisch koppelingsbestand of map aan te geven.
Get-ChildItem C:\Temp | sort LastWriteTime -Descending
Directory: C:\Temp
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 6/13/2014 3:00 PM 16 File.txt
d----- 6/13/2014 3:00 PM Directory
-a---l 6/13/2014 3:21 PM 0 MySymLinkFile.txt
d----l 6/13/2014 3:22 PM MySymLinkDir
-a---l 6/13/2014 3:23 PM 23304 MyHardLinkFile.txt
d----l 6/13/2014 3:24 PM MyJunctionDir
Remove-Item
Het verwijderen van symbolische koppelingen werkt zoals het verwijderen van elk ander itemtype.
Remove-Item C:\Temp\MySymLinkFile.txt
Remove-Item C:\Temp\MySymLinkDir
Gebruik de parameter Force om de bestanden in de doelmap en de symbolische koppeling te verwijderen.
Remove-Item C:\Temp\MySymLinkDir -Force
New-TemporaryFile
Soms moet u in uw scripts een tijdelijk bestand maken. U kunt dit nu doen met de New-TemporaryFile cmdlet :
$tempFile = New-TemporaryFile
$tempFile.FullName
C:\Users\user1\AppData\Local\Temp\tmp375.tmp
Beheer van netwerkswitch met PowerShell
Met de network switch-cmdlets, geïntroduceerd in WMF 5.0, kunt u switch-, virtueel LAN (VLAN) en basic Layer 2-netwerkswitchpoortconfiguratie toepassen op netwerkswitches die zijn gecertificeerd met Windows Server 2012 R2-logo. Met behulp van deze cmdlets kunt u het volgende uitvoeren:
Globale switchconfiguratie, zoals:
- Hostnaam instellen
- Switch-banner instellen
- Configuratie persistent maken
- Functie in- of uitschakelen
VLAN-configuratie:
- VLAN maken of verwijderen
- VLAN in- of uitschakelen
- VLAN opsnoemen
- Stel een gebruiksvriendelijke naam in op een VLAN
Configuratie van laag 2-poort:
- Poorten opsnoemen
- Poorten in- of uitschakelen
- Poortmodi en -eigenschappen instellen
- VLAN toevoegen aan of koppelen aan Trunk of Toegang op de poort
Zie de NetworkSwitchManager-documentatie voor meer informatie.
PowerShell-cmdlets genereren op basis van een OData-eindpunt met ODataUtils
Met de ODataUtils-module kunt u PowerShell-cmdlets genereren van REST-eindpunten die OData ondersteunen. De module Microsoft.PowerShell.ODataUtils bevat de volgende functies:
- Kanaal aanvullende informatie van het eindpunt aan de serverzijde naar de clientzijde.
- Ondersteuning voor paginering aan clientzijde
- Filteren op de server met behulp van de parameter -Select
- Ondersteuning voor webaanvraagheaders
De proxy-cmdlets die door de cmdlet worden gegenereerd, bieden aanvullende informatie van het Export-ODataEndPointProxy OData-eindpunt aan de serverzijde in de informatiestroom.
Import-Module Microsoft.PowerShell.ODataUtils -Force
$generatedProxyModuleDir = Join-Path -Path $env:SystemDrive -ChildPath 'ODataDemoProxy'
$uri = "http://services.odata.org/V3/(S(fhleiief23wrm5a5nhf542q5))/OData/OData.svc/"
Export-ODataEndpointProxy -Uri $uri -OutputModule $generatedProxyModuleDir -Force -AllowUnSecureConnection -Verbose -AllowClobber
In het volgende voorbeeld wordt het beste product opgehaald en wordt de uitvoer in de variabele $infoStream vast leggen.
Door de parameter IncludeTotalResponseCount op te geven, krijgen we het totale aantal productrecords dat beschikbaar is op de server.
Import-Module $generatedProxyModuleDir -Force
$product = Get-Product -Top 1 -AllowUnsecureConnection -AllowAdditionalData -IncludeTotalResponseCount -InformationVariable infoStream
$additionalInfo = $infoStream.GetEnumerator() | % MessageData
$additionalInfo['odata.count']
U kunt de records van de server in batches op halen met behulp van pagineringsondersteuning aan de clientzijde. Dit is handig wanneer u een grote hoeveelheid gegevens van de server via het netwerk moet krijgen.
$skipCount = 0
$batchSize = 3
while($skipCount -le $additionalInfo['odata.count'])
{
Get-Product -AllowUnsecureConnection -AllowAdditionalData -Top $batchSize -Skip $skipCount
$skipCount += $batchSize
}
De gegenereerde proxy-cmdlets ondersteunen de select-parameter die wordt gebruikt als een filter om alleen de recordeigenschappen te ontvangen die de client nodig heeft. Het filteren vindt plaats op de server, waardoor er minder gegevens via het netwerk worden overgedragen.
Get-Product -Top 2 -AllowUnsecureConnection -AllowAdditionalData -Select Name
De Export-ODataEndpointProxy cmdlet en de proxy-cmdlets die door de cmdlet worden gegenereerd, ondersteunen nu de parameter Headers. De header kan worden gebruikt om aanvullende informatie te kanaalen die wordt verwacht door het OData-eindpunt.
In het volgende voorbeeld wordt een hashtabel met een abonnementssleutel verstrekt aan de parameter Headers. Dit is een typisch voorbeeld voor services die een abonnementssleutel voor verificatie verwachten.
Export-ODataEndpointProxy -Uri $endPointUri -OutputModule $generatedProxyModuleDir -Force -AllowUnSecureConnection -Verbose -Headers @{'subscription-key'='XXXX'}