Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Krátký popis
Popisuje, jak interpretovat a formátovat výstup vzdálených příkazů.
Dlouhý popis
Výstup příkazu, který byl spuštěn na vzdáleném počítači, může vypadat jako výstup stejného příkazu spuštěného na místním počítači, ale existují některé významné rozdíly.
Toto téma vysvětluje, jak interpretovat, formátovat a zobrazit výstup příkazů spuštěných na vzdálených počítačích.
Zobrazení názvu počítače
Když použijete rutinu Invoke-Command ke spuštění příkazu na vzdáleném počítači, vrátí příkaz objekt, který obsahuje název počítače, který vygeneroval data. Vlastnost PSComputerName obsahuje název vzdáleného počítače.
U mnoha příkazů se ve výchozím nastavení zobrazí PSComputerName. Následující příkaz například spustí příkaz Get-Culture na dvou vzdálených počítačích: Server01 a Server02. Výstup, který se zobrazí níže, obsahuje názvy vzdálených počítačů, na kterých byl příkaz spuštěn.
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
Pomocí parametru HideComputerNameInvoke-Command můžete skrýt vlastnost PSComputerName. Tento parametr je určený pro příkazy, které shromažďují data pouze z jednoho vzdáleného počítače.
Následující příkaz spustí na vzdáleném počítači server01 příkaz Get-Culture. Používá parametr HideComputerName ke skrytí vlastnosti PSComputerName a souvisejících vlastností.
$invokeCommandSplat = @{
ScriptBlock = {Get-Culture}
ComputerName = 'Server01'
HideComputerName = $true
}
Invoke-Command @invokeCommandSplat
LCID Name DisplayName
---- ---- -----------
1033 en-US English (United States)
Můžete také zobrazit vlastnost PSComputerName, pokud se ve výchozím nastavení nezobrazí.
Například následující příkazy používají rutinu Format-Table k přidání vlastnosti PSComputerName do výstupu vzdáleného příkazu 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
Deserializované objekty
Při spuštění vzdálených příkazů, které generují výstup, se výstup příkazu přenáší přes síť zpět do místního počítače.
Vzhledem k tomu, že živé objekty .NET nelze přenášet přes síť, živé objekty jsou serializovány nebo převedeny na reprezentace XML objektu a jeho vlastnosti. PowerShell přenáší serializovaný objekt přes síť.
PowerShell na místním počítači obdrží serializovaný objekt a deserializuje tím, že převede serializovaný objekt na standardní objekt .NET.
Deserializovaný objekt však není živým objektem. Jedná se o snímek objektu v době serializace. Deserializovaný objekt obsahuje vlastnosti, ale žádné metody. Tyto objekty můžete používat a spravovat v PowerShellu, včetně jejich předávání v kanálech, zobrazení vybraných vlastností a jejich formátování.
Většina deserializovaných objektů je automaticky formátována pro zobrazení podle položek v Types.ps1xml nebo Format.ps1xml soubory. Místní počítač však nemusí mít formátovací soubory pro všechny objekty, které byly generovány ve vzdáleném počítači. Pokud objekty nejsou formátované, zobrazí se všechny vlastnosti každého objektu v konzole v seznamu streamování.
Pokud objekty nejsou formátované automaticky, můžete k formátování a zobrazení vybraných vlastností použít rutiny formátování, například Format-Table nebo Format-List. Nebo můžete pomocí rutiny Out-GridView zobrazit objekty v tabulce.
Když spustíte příkaz na vzdáleném počítači, který používá rutiny, které v místním počítači nemáte, nemusí být objekty, které příkaz vrátí, formátované podle očekávání, pokud nemáte soubory formátování pro tyto typy objektů v počítači. K získání formátování dat z jiného počítače použijete rutiny Get-FormatData a Export-FormatData.
Některé typy objektů, například DirectoryInfo objekty a identifikátory GUID, se při jejich přijetí převedou zpět na živé objekty. Tyto objekty nepotřebují žádné zvláštní zpracování ani formátování.
Seřazení výsledků
Pořadí názvů počítačů v parametru ComputerName rutin určuje pořadí, ve kterém se PowerShell připojuje ke vzdáleným počítačům. Výsledky se však zobrazí v pořadí, v jakém se data přijímají ze vzdálených počítačů.
Pomocí rutiny Sort-Object můžete výsledky seřadit na PSComputerName. Při jakékoli jiné vlastnosti objektu se výsledky z různých počítačů prokládání prokládání ve výstupu
Viz také
- about_Remote
- about_Remote_Variables
- Invoke-Command
- get-EventLog
- Out-GridView
- výběrového objektu
- get-process
- get-service
- formátovací tabulky
- Get-WmiObject