Nya och uppdaterade cmdletar
Vi har lagt till nya och uppdaterade befintliga cmdlets baserat på feedback från communityn.
Arkivera cmdlets
Med två nya cmdlets, Compress-Archive och , kan du komprimera och expandera Expand-Archive ZIP-filer.
Mer information finns i dokumentationen för modulen Microsoft.Powershell.Archive.
Katalog-cmdlets
Två nya cmdlets har lagts till i modulen Microsoft.PowerShell.Security.
Dessa genererar och validerar Windows katalogfiler.
Urklipps-cmdletar
Get-Clipboardoch Set-Clipboard gör det enklare för dig att överföra innehåll till och från Windows PowerShell session. Urklipps-cmdletarna stöder bilder, ljudfiler, fillistor och text.
Mer information finns i:
CMS-cmdlets (Cryptographic Message Syntax)
Cmdletarna För kryptografimeddelandesyntax stöder kryptering och dekryptering av innehåll med hjälp av IETF-standardformatet för kryptografiskt skydd av meddelanden som dokumenteras av RFC5652.
CMS-krypteringsstandarden implementerar kryptering med offentliga nycklar, där nyckeln som används för att kryptera innehåll (den offentliga nyckeln ) och nyckeln som används för att dekryptera innehåll (den privata nyckeln) är separata.
Din offentliga nyckel kan delas brett och är inte känsliga data. Allt innehåll som krypteras med den offentliga nyckeln kan bara dekrypteras med hjälp av den privata nyckeln. Mer information finns i Kryptografi med offentliga nycklar.
Mer information finns i:
Certifikat kräver en unik nyckelanvändningsidentifierare (EKU), till exempel "Kodsignering" eller "Krypterad e-post", för att identifiera dem som datakrypteringscertifikat i PowerShell. Om du vill visa dokumentkrypteringscertifikat i certifikatprovidern kan du använda den dynamiska parametern DocumentEncryptionCert för Get-ChildItem :
Get-ChildItem Cert:\CurrentUser -DocumentEncryptionCert -Recurse
Extrahera och parsa strukturerade objekt från stränginnehåll
ConvertFrom-String
Den nya ConvertFrom-String cmdleten stöder två lägen:
- Grundläggande avgränsad parsning
- Automatiskt genererad exempeldriven parsning
Avgränsad parsning delar som standard indata i tomt utrymme och tilldelar egenskapsnamn till de resulterande grupperna.
Parametern UpdateTemplate sparar resultatet av inlärningsalgoritmen i en kommentar i mallfilen. Detta gör inlärningsprocessen (den långsammaste fasen) till en enda kostnad. Att ConvertFrom-String köra med en mall som innehåller den kodade inlärningsalgoritmen är nu nästan omedelbart.
Mer information finns i ConvertFrom-String.
Convert-String
Convert-String gör att du kan ange före och efter exempel på hur du vill att text ska se ut. Cmdleten formaterar texten automatiskt.
Mer information finns i Convert-String.
Uppdateringar till FileInfo-objektet
Filversionsinformation kan vara missvisande, särskilt i fall där filen har korrigerats. WMF 5.0 lägger till nya FileVersionRaw- och ProductVersionRaw-skriptegenskaper till FileInfo-objekt. Här är de egenskaper som visas för powershell.exe (förutsatt $pid är ID för PowerShell-processen):
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 låter dig visa text eller binära data i hexadecimalt format.
Mer information finns i Format-Hex.
Get-ChildItem har parametern -Depth
Get-ChildItem har nu en djupparameter för användning med Rekursion för att begränsa rekursionen:
Stöd för moduler för att deklarera versionsintervall (1.*, osv.)
Du kan nu kombinera MinimumVersion och MaximumVersion för att importera modulen inom ett visst intervall. Parametrarna stöder också jokertecken.
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
Det finns många scenarier där du behöver en unik identifierare. New-GUIDCmdleten är ett enkelt sätt att skapa ett nytt GUID.
New-Guid
Guid
----
e19d6ea5-3cc2-4db9-8095-0cdaed5a703d
NoNewLine-parameter
Out-File, Add-Content och har nu en ny Set-Content NoNewline-växel som utelämnar en ny rad efter utdata. Exempel:
"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.
Utan noNewline angivet skulle varje fragment finnas på en separat rad:
"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.
Interagera med symboliska länkar med förbättrade objekt-cmdlets
Cmdleten Item och några relaterade cmdlets har utökats för att stödja symboliska länkar.
Symboliska länkfiler
I det här exemplet skapar vi en ny symbolisk länkfil med namnet MySymLinkFile.txt C:\Temp som länkar till $pshome\profile.ps1. Alla tre exemplen ger samma resultat.
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
Symboliska länkkataloger
I det här exemplet skapar vi en ny symbolisk länkkatalog med namnet MySymLinkDir i C:\Temp som länkar till $pshome mappen. Alla tre exemplen ger samma resultat.
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
Hårda länkar
Samma kombinationer av Sökväg och Namn tillåts enligt beskrivningen ovan.
New-Item -ItemType HardLink -Path C:\Temp -Name MyHardLinkFile.txt -Value $pshome\profile.ps1
Katalogkartlar
Samma kombinationer av Sökväg och Namn tillåts enligt beskrivningen ovan.
New-Item -ItemType Junction -Path C:\Temp\MyJunctionDir -Value $pshome
Get-ChildItem
Get-ChildItem visar nu ett "l" i egenskapen Läge för att ange en symbolisk länkfil eller katalog.
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
Att ta bort symboliska länkar fungerar som att ta bort andra objekttyper.
Remove-Item C:\Temp\MySymLinkFile.txt
Remove-Item C:\Temp\MySymLinkDir
Använd parametern Force för att ta bort filerna i målkatalogen och den symboliska länken.
Remove-Item C:\Temp\MySymLinkDir -Force
New-TemporaryFile
Ibland måste du skapa en tillfällig fil i dina skript. Nu kan du göra detta med New-TemporaryFile cmdleten :
$tempFile = New-TemporaryFile
$tempFile.FullName
C:\Users\user1\AppData\Local\Temp\tmp375.tmp
Hantering av nätverksväxling med PowerShell
Med cmdlets för nätverksswittar, som introducerades i WMF 5.0, kan du använda switch, virtuellt LAN (VLAN) och grundläggande layer 2-nätverksväxelportkonfiguration för Windows Server 2012 R2-logotypcertifierade nätverksväxlar. Med hjälp av dessa cmdlets kan du utföra:
Global växelkonfiguration, till exempel:
- Ange värdnamn
- Ange banderoll för växel
- Spara konfiguration
- Aktivera eller inaktivera funktion
VLAN-konfiguration:
- Skapa eller ta bort VLAN
- Aktivera eller inaktivera VLAN
- Räkna upp VLAN
- Ange ett eget namn till ett VLAN
Layer 2-portkonfiguration:
- Räkna upp portar
- Aktivera eller inaktivera portar
- Ange portlägen och egenskaper
- Lägga till eller associera VLAN till Trunk eller Access på porten
Mer information finns i networkSwitchManager-dokumentationen.
Generera PowerShell-cmdlets baserat på en OData-slutpunkt med ODataUtils
ODataUtils-modulen tillåter generering av PowerShell-cmdlets från REST-slutpunkter som stöder OData. Modulen Microsoft.PowerShell.ODataUtils innehåller följande funktioner:
- Kanal ytterligare information från slutpunkt på serversidan till klientsidan.
- Sidinnumreringsstöd på klientsidan
- Filtrering på serversidan med parametern -Select
- Stöd för webbbegärandehuvuden
Proxy-cmdletarna som genereras av cmdleten ger ytterligare information från Export-ODataEndPointProxy OData-slutpunkten på serversidan i informationsströmmen.
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
I följande exempel hämtar vi den främsta produkten och samlar in utdata i $infoStream variabeln .
Genom att ange parametern IncludeTotalResponseCount får vi det totala antalet produktposter som är tillgängliga på servern.
Import-Module $generatedProxyModuleDir -Force
$product = Get-Product -Top 1 -AllowUnsecureConnection -AllowAdditionalData -IncludeTotalResponseCount -InformationVariable infoStream
$additionalInfo = $infoStream.GetEnumerator() | % MessageData
$additionalInfo['odata.count']
Du kan hämta posterna från servern i batchar med hjälp av sidinnumreringsstöd på klientsidan. Detta är användbart när du måste hämta en stor mängd data från servern över nätverket.
$skipCount = 0
$batchSize = 3
while($skipCount -le $additionalInfo['odata.count'])
{
Get-Product -AllowUnsecureConnection -AllowAdditionalData -Top $batchSize -Skip $skipCount
$skipCount += $batchSize
}
De genererade proxy-cmdletarna stöder parametern Select som används som ett filter för att endast ta emot de postegenskaper som klienten behöver. Filtreringen sker på servern, vilket minskar mängden data som överförs i nätverket.
Get-Product -Top 2 -AllowUnsecureConnection -AllowAdditionalData -Select Name
Export-ODataEndpointProxyCmdleten och proxy-cmdletarna som genereras av den har nu stöd för parametern Headers. -huvudet kan användas för att kanal ytterligare information som förväntas av OData-slutpunkten.
I följande exempel tillhandahålls en hash-tabell som innehåller en prenumerationsnyckel till parametern Headers. Det här är ett typiskt exempel för tjänster som förväntar sig en prenumerationsnyckel för autentisering.
Export-ODataEndpointProxy -Uri $endPointUri -OutputModule $generatedProxyModuleDir -Force -AllowUnSecureConnection -Verbose -Headers @{'subscription-key'='XXXX'}