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.

Cmdleten Item och några relaterade cmdlets har utökats för att stödja symboliska länkar.

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

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

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'}