РАЗДЕЛ
	about_Remote_Output

КРАТКОЕ ОПИСАНИЕ
	Описывает, как интерпретировать и форматировать выходные данные 
	удаленных команд.

ПОЛНОЕ ОПИСАНИЕ
	Выходные данные команды, выполненной на удаленном компьютере, 
	могут выглядеть аналогично выходным данным той же команды, 
	выполненной на локальном компьютере, однако имеется несколько 
	существенных различий.

	В этом разделе описано, как интерпретировать, форматировать 
	и отображать выходные данные команд, выполняемых на удаленных 
	компьютерах.

				
 ОТОБРАЖЕНИЕ ИМЕНИ КОМПЬЮТЕРА

	При использовании командлета Invoke-Command для выполнения 
	команды на удаленном компьютере команда возвращает объект, 
	включающий имя компьютера, который сформировал данные. Имя 
	удаленного компьютера хранится в свойстве PSComputerName.

	В случае многих команд свойство PSComputerName отображается 
	по умолчанию. Например, следующая команда выполняет команду 
	Get-Culture на двух удаленных компьютерах Server01 и Server02. 
	Представленные ниже выходные данные включают имена удаленных 
	компьютеров, на которых выполнялась команда.

		C:\PS> invoke-command -script {get-culture} -comp Server01, Server02

		LCID  Name	DisplayName				PSComputerName
		----  ----	-----------				--------------
		1033  en-US   English (United States)	Server01
		1033  es-AR   Spanish (Argentina)		Server02


	Параметр HideComputerName командлета Invoke-Command можно 
	использовать для скрытия свойства PSComputerName. Этот параметр 
	предназначен для команд, собирающих данные только с одного 
	удаленного компьютера.

	Следующая команда выполняет команду Get-Culture на удаленном 
	компьютере Server01. Параметр HideComputerName используется 
	для скрытия свойства PSComputerName и связанных с ним свойств.


		C:\PS> invoke-command -scr {get-culture} -comp Server01 -HideComputerName

		LCID			 Name			 DisplayName
		----			 ----			 -----------
		1033			 en-US			English (United States)




	 Также можно отобразить свойство PSComputerName, если по 
	 умолчанию оно не отображается. 

	 Например, следующие командлеты с помощью командлета Format-Table 
	 добавляют свойство PSComputerName в выходные данные удаленной 
	 команды Get-Date.

		C:\PS> $dates = invoke-command -script {get-date} -computername Server01, Server02
		C:\PS> $dates | format-table DateTime, PSComputerName -auto

		DateTime								PSComputerName
		--------								--------------
		Понедельник, 21 июля 2008 г., 19:16:58	Server01
		Понедельник, 21 июля 2008 г., 19:16:58	Server02



 ОТОБРАЖЕНИЕ СВОЙСТВА MACHINENAME

	Некоторые командлеты, включая Get-Process, Get-Service и 
	Get-EventLog, имеют параметр ComputerName, который позволяет 
	получать объекты на удаленном компьютере.
	Эти командлеты не используют удаленное взаимодействие Windows 
	PowerShell, поэтому их можно использовать даже на компьютерах, 
	которые не настроены на удаленное взаимодействие в Windows PowerShell.

	В объектах, возвращаемых этими командлетами, имя удаленного 
	компьютера хранится в свойстве MachineName. (Эти объекты не имеют 
	свойства PSComputerName.)

	Например, эта команда получает процесс PowerShell на удаленных 
	компьютерах Server01 и Server02. По умолчанию свойство 
	MachineName не отображается. 

		C:\PS> get-process powershell -computername server01, server02


		Handles  NPM(K)	PM(K)	WS(K) VM(M)   CPU(s)	 Id ProcessName
		-------  ------	-----	----- -----   ------	 -- -----------
			920	38	97524	 114504   575	 9.66   2648 powershell
			194	 6	24256	32384   142			3020 powershell
			352	27	63472	63520   577	 3.84   4796 powershell


	Для отображения свойства MachineName объектов процессов можно 
	использовать командлет Format-Table. 

	Например, следующая команда сохраняет процессы в переменной $p и 
	использует оператор конвейера (|) для передачи сохраненных в ней 
	процессов командлету Format-Table. Параметр Property командлета 
	Format-Table используется для включения свойства MachineName в 
	набор отображаемых данных.


		C:\PS> $p = get-process powershell -comp Server01, Server02
		C:\PS> $P | format-table -property ID, ProcessName, MachineName -auto


		Id ProcessName MachineName
		-- ----------- -----------
		2648 powershell Server02
		3020 powershell Server01
		4796 powershell Server02


	Следующая более сложная команда добавляет свойство MachineName
	в используемый по умолчанию набор отображаемых данных о процессах. 
	Для задания вычисляемых свойств используются хэш-таблицы. 
	К счастью, нет необходимости понимать эту команду, чтобы 
	использовать ее. 

	(Обратите внимание, что обратный апостроф [`] является знаком 
	продолжения строки.)


		C:\PS> $p = get-process powershell -comp Server01, Server02

		C:\PS> $p | format-table -property Handles, `
					@{Label="NPM(K)";Expression={[int]($_.NPM/1024)}}, ` 
					@{Label="PM(K)";Expression={[int]($_.PM/1024)}}, ` 
					@{Label="WS(K)";Expression={[int]($_.WS/1024)}}, ` 
					@{Label="VM(M)";Expression={[int]($_.VM/1MB)}}, ` 
					@{Label="CPU(s)";Expression={if ($_.CPU -ne $()){ $_.CPU.ToString("N")}}}, ` 
					Id, ProcessName, MachineName -auto 


		Handles NPM(K) PM(K)  WS(K) VM(M) CPU(s)   Id ProcessName MachineName
		------- ------ -----  ----- ----- ------   -- ----------- -----------
			920	 38 97560 114532   576		2648 powershell  Server02	 
			192	6 24132  32028   140		3020 powershell  Server01   
			438	 26 48436  59132   565		4796 powershell  Server02   


 ДЕСЕРИАЛИЗОВАННЫЕ ОБЪЕКТЫ
	При выполнении удаленных команд, формирующих выходные данные, эти 
	данные передаются по сети обратно на локальный компьютер. 

	Большинство активных объектов Microsoft .NET Framework (таких как 
	объекты, возвращаемые командлетами Windows PowerShell) невозможно 
	передать по сети, поэтому активные объекты "сериализуются". 
	Другими словами, активные объекты преобразуются в XML-представлени
	я объектов и их свойств. После этого сериализованный объект на 
	основе XML передается по сети. 

	Оболочка Windows PowerShell на локальном компьютере принимает 
	сериализованный объект на основе XML и "десериализует" его путем 
	преобразования в стандартный объект .NET Framework.

	Однако десериализованный объект не является активным объектом. 
	Он представляет собой снимок объекта, созданный во время 
	сериализации, и включает свойства, но не методы. В Windows 
	PowerShell можно использовать эти объекты и управлять ими; 
	например, можно передавать эти объекты по конвейеру, отображать 
	выбранные свойства и форматировать их.

	Большинство десериализованных объектов автоматически 
	форматируется для отображения в виде записей в файле Types.ps1xml 
	или Format.ps1xml. Однако на локальном компьютере могут 
	отсутствовать файлы форматирования для всех десериализованных 
	объектов, которые были созданы на удаленном компьютере. Если 
	объекты не являются форматированными, все свойства каждого 
	объекта отображаются в консоли в потоковом списке. 

	Если объекты не форматируются автоматически, можно использовать 
	форматирующие командлеты, такие как Format-Table или Format-List, 
	для форматирования и отображения выбранных свойств. Или можно 
	использовать командлет Out-GridView для отображения объектов 
	в таблице.

	Кроме того, при выполнении команды на удаленном компьютере, 
	который использует командлеты, отсутствующие на локальном 
	компьютере, возвращаемые командой объекты могут быть 
	отформатированы неправильно из-за отсутствия файлов 
	форматирования для этих объектов на локальном компьютере. 
	Для получения данных форматирования с другого компьютера 
	используйте командлеты Get-FormatData и Export-FormatData. 

	Некоторые объекты, такие как DirectoryInfo и GUID, при получении 
	преобразуются обратно в активные объекты. Для этих объектов не 
	требуется какая-либо специальная обработка или форматирование.  



 УПОРЯДОЧЕНИЕ РЕЗУЛЬТАТОВ
	Порядок имен компьютеров в параметре ComputerName командлетов 
	определяет порядок подключения Windows PowerShell к удаленным 
	компьютерам. Однако результаты отображаются в порядке их 
	получения локальным компьютером, который может отличаться от 
	исходного порядка.

	Для изменения порядка результатов используйте командлет 
	Sort-Object. Можно выполнять сортировку по свойству 
	PSComputerName или MachineName. Кроме того, можно выполнять 
	сортировку по другому свойству объекта, чтобы результаты 
	с разных компьютеров перемежались.



СМ. ТАКЖЕ
	about_Remote
	Format-Table
	Get-EventLog
	Get-Process
	Get-Service
	Get-WmiObject
	Invoke-Command
	Out-GridView
	Select-Object