Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Kort beskrivning
Beskriver hur du tolkar och formaterar utdata från fjärrkommandon.
Lång beskrivning
Utdata från ett kommando som kördes på en fjärrdator kan se ut som utdata från samma kommandokörning på en lokal dator, men det finns några betydande skillnader.
Det här avsnittet beskriver hur du tolkar, formaterar och visar utdata från kommandon som körs på fjärrdatorer.
Visa datornamnet
När du använder cmdleten Invoke-Command för att köra ett kommando på en fjärrdator returnerar kommandot ett objekt som innehåller namnet på den dator som genererade data. Egenskapen PSComputerName innehåller namnet på fjärrdatorn.
För många kommandon visas PSComputerName som standard. Följande kommando kör till exempel ett Get-Culture kommando på två fjärrdatorer, Server01 och Server02. Utdata, som visas nedan, innehåller namnen på de fjärrdatorer som kommandot kördes på.
Invoke-Command -ScriptBlock {Get-Culture} -ComputerName Server01, Server02
LCID Name DisplayName PSComputerName
---- ---- ----------- --------------
1033 en-US English (United States) Server01
1033 es-AR Spanish (Argentina) Server02
Du kan använda parametern för för att dölja Invoke-Command. Den här parametern är utformad för kommandon som endast samlar in data från en fjärrdator.
Följande kommando kör ett Get-Culture kommando på server01-fjärrdatorn. Den använder parametern HideComputerName för att dölja egenskapen PSComputerName och relaterade egenskaper.
$invokeCommandSplat = @{
ScriptBlock = {Get-Culture}
ComputerName = 'Server01'
HideComputerName = $true
}
Invoke-Command @invokeCommandSplat
LCID Name DisplayName
---- ---- -----------
1033 en-US English (United States)
Du kan också visa egenskapen PSComputerName om den inte visas som standard.
Följande kommandon använder till exempel cmdleten Format-Table för att lägga till egenskapen PSComputerName i utdata från ett fjärrkommando Get-Date .
$invokeCommandSplat = @{
ScriptBlock = {Get-Date}
ComputerName = 'Server01', 'Server02'
}
Invoke-Command @invokeCommandSplat |
Format-Table DateTime, PSComputerName -AutoSize
DateTime PSComputerName
-------- --------------
Monday, July 21, 2008 7:16:58 PM Server01
Monday, July 21, 2008 7:16:58 PM Server02
Deserialiserade objekt
När du kör fjärrkommandon som genererar utdata överförs kommandoutdata över nätverket tillbaka till den lokala datorn.
Eftersom live-.NET-objekt inte kan överföras via nätverket serialiseras eller konverteras de levande objekten till XML-representationer av objektet och dess egenskaper. PowerShell överför det serialiserade objektet över nätverket.
På den lokala datorn tar PowerShell emot det serialiserade objektet och deserialiserar det genom att konvertera det serialiserade objektet till ett .NET-standardobjekt.
Det deserialiserade objektet är dock inte ett levande objekt. Det är en ögonblicksbild av objektet vid tidpunkten för serialiseringen. Det deserialiserade objektet innehåller egenskaper men inga metoder. Du kan använda och hantera dessa objekt i PowerShell, inklusive att skicka dem i pipelines, visa valda egenskaper och formatera dem.
De flesta deserialiserade objekt formateras automatiskt för visning av poster i Types.ps1xml filerna eller Format.ps1xml . Den lokala datorn kanske dock inte har formateringsfiler för alla objekt som har genererats på en fjärrdator. När objekt inte är formaterade visas alla egenskaper för varje objekt i konsolen i en strömningslista.
När objekt inte formateras automatiskt kan du använda formaterings-cmdletarna, till exempel Format-Table eller Format-List, för att formatera och visa valda egenskaper. Du kan också använda cmdleten Out-GridView för att visa objekten i en tabell.
När du kör ett kommando på en fjärrdator som använder cmdletar som du inte har på den lokala datorn kanske de objekt som kommandot returnerar inte formateras som förväntat om du inte har formateringsfilerna för dessa objekttyper på datorn. Du använder Get-FormatData cmdletarna och Export-FormatData för att hämta formateringsdata från en annan dator.
Vissa objekttyper, till exempel DirectoryInfo-objekt och GUID:er, konverteras tillbaka till levande objekt när de tas emot. Dessa objekt behöver ingen särskild hantering eller formatering.
Sortera resultaten
Ordningen på datornamnen i parametern ComputerName för cmdletar avgör i vilken ordning PowerShell ansluter till fjärrdatorerna. Resultaten visas dock i den ordning som data tas emot från fjärrdatorerna.
Du kan använda cmdleten Sort-Object för att sortera resultatet på PSComputerName. När du har någon annan egenskap för objektet intersperseras resultatet från olika datorer i utdata