РАЗДЕЛ
	about_Remote

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


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

	В этом разделе представлен ряд примеров, демонстрирующих порядок 
	выполнения удаленных команд различных типов. После практического 
	ознакомления с этими базовыми командами прочитайте разделы 
	справки для каждого командлета, используемого в этих командах. 
	В этих разделах приводятся подробные сведения и объясняется порядок 
	изменения команд в соответствии с конкретными потребностями.

	Примечание. Для использования удаленного взаимодействия 
				Windows PowerShell локальный и удаленный компьютеры 
				должны быть настроены на удаленное взаимодействие. 
				Дополнительные сведения см. в разделе 
				about_Remote_Requirements. 
	

 СОЗДАНИЕ ИНТЕРАКТИВНОГО СЕАНСА (ENTER-PSSESSION)

	 Самый простой способ выполнить удаленные команды - создать 
	 интерактивный сеанс с удаленным компьютером. 

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

	 Чтобы запустить интерактивный сеанс, используйте командлет 
	 Enter-PSSession. Следующая команда начинает интерактивный сеанс 
	 с компьютером Server01:

		enter-pssession server01

	 Командная строка изменяется, чтобы указать, что установлено 
	 подключение к компьютеру Server01.

		Server01\PS> 

	 Теперь можно вводить команды на компьютере Server01. 

	 Чтобы завершить интерактивный сеанс, введите следующую команду:

		exit-pssession


	 Дополнительные сведения см. в описании командлета Enter-PSSession.



 ИСПОЛЬЗОВАНИЕ КОМАНДЛЕТОВ С ПАРАМЕТРОМ COMPUTERNAME ДЛЯ ПОЛУЧЕНИЯ 
 УДАЛЕННЫХ ДАННЫХ

	Некоторые командлеты имеют параметр ComputerName, который 
	позволяет получать объекты удаленных компьютеров. 

	Поскольку эти командлеты не используют для связи удаленное 
	взаимодействие Windows PowerShell на основе WS-Management, можно 
	применять их параметр ComputerName на любом компьютере с запущенной оболочкой Windows 
	PowerShell.
	Компьютеры не обязательно должны быть настроены на удаленное 
	взаимодействие Windows PowerShell и не обязательно должны 
	соответствовать системным требованиям для удаленного взаимодействия. 

	Параметр ComputerName предусмотрен в следующих командлетах.
 
		Clear-EventLog	Limit-EventLog
		Get-Counter	 New-EventLog
		Get-EventLog	Remove-EventLog
		Get-HotFix		Restart-Computer
		Get-Process	 Show-EventLog
		Get-Service	 Show-Service
		Get-WinEvent	Stop-Computer
		Get-WmiObject	 Write-EventLog

  
	Например, следующая команда получает службы на удаленном 
	компьютере Server01:

		get-service -computername server01


	Обычно командлеты, поддерживающие удаленную работу без специальной 
	настройки, имеют параметр ComputerName и не имеют параметра Session. 
	Чтобы найти эти командлеты в текущем сеансе, введите команду:

		get-command | where { $_.parameters.keys -contains "ComputerName" -and $_.parameters.keys -notcontains "Session"}



 ВЫПОЛНЕНИЕ УДАЛЕННОЙ КОМАНДЫ

	Для выполнения других команд на удаленных компьютерах используйте 
	командлет Invoke-Command.

	Для выполнения одной команды или нескольких несвязанных команд 
	используйте параметр ComputerName командлета Invoke-Command, 
	позволяющий указать удаленные компьютеры. Для указания команды 
	используйте параметр ScriptBlock.

	Например, следующая команда выполняет команду Get-Culture на удаленном 
	компьютере Server01.

		invoke-command -computername Server01 -scriptblock {get-culture}

	Параметр ComputerName предназначен для использования в случаях, когда 
	требуется выполнить одну команду или несколько несвязанных команд на 
	одном или нескольких компьютерах.
	Чтобы установить постоянное подключение к удаленному компьютеру 
	используйте параметр Session.

 
 СОЗДАНИЕ ПОСТОЯННОГО ПОДКЛЮЧЕНИЯ (PSSESSION)

	При использовании параметра ComputerName командлета 
	Invoke-Command оболочка Windows PowerShell устанавливает 
	подключение только для команды. После выполнения команды оболочка 
	закрывает подключение. Информация о всех переменных и функциях, 
	определенных в команде, теряется.

	Чтобы создать постоянное подключение к локальному или удаленному 
	компьютеру, используйте командлет New-PSSession. Например, 
	следующая команда создает сеансы PSSession на компьютерах 
	Server01 и Server02, а затем сохраняет эти сеансы в переменной $s.

		$s = new-pssession -computername Server01, Server02


 ВЫПОЛНЕНИЕ КОМАНД В СЕАНСЕ PSSESSION
  
	В сеансе PSSession можно выполнить несколько удаленных команд, 
	совместно использующих такие данные, как функции, псевдонимы и 
	значения переменных.
	Для выполнения команд в сеансе PSSession используйте параметр Session 
	командлета Invoke-Command. 

	Например, следующая команда использует командлет Invoke-Command 
	для выполнения команды Get-Process в сеансах PSSession на 
	компьютерах Server01 и Server02. Команда сохраняет процессы 
	в переменной $s в каждом сеансе PSSession.

		invoke-command -session $s -scriptblock {$p = get-process}

	Поскольку сеанс PSSession использует постоянное подключение, 
	в одном сеансе PSSession можно выполнить другую команду, 
	использующую переменную $p.
	Следующая команда подсчитывает количество процессов, сохраненных 
	в переменной $p.

		invoke-command -session $s -scriptblock {$p.count} 

 ВЫПОЛНЕНИЕ УДАЛЕННОЙ КОМАНДЫ НА НЕСКОЛЬКИХ КОМПЬЮТЕРАХ

	Чтобы выполнить удаленную команду на нескольких компьютерах, 
	введите имена всех компьютеров в качестве значения параметра 
	ComputerName командлета Invoke-Command. Разделяйте имена запятыми.

	Например, следующая команда выполняет команду Get-Culture на трех 
	компьютерах:

		invoke-command -computername S1, S2, S3 -scriptblock {get-culture}

	Кроме того, можно выполнить команду в нескольких сеансах 
	PSSession. Следующие команды создают сеансы PSSession на 
	компьютерах Server01, Server02 и Server03, а затем выполняют 
	команду Get-Culture в каждом сеансе PSSession.

		$s = new-pssession -computername S1, S2, S3 invoke-command 
		-session $s -scriptblock {get-culture}


	Чтобы включить локальный компьютер в список компьютеров, введите имя 
	локального компьютера, точку (.) или "localhost". 

		invoke-command -computername S1, S2, S3, localhost -scriptblock {get-culture}


 ВЫПОЛНЕНИЕ СКРИПТА НА УДАЛЕННЫХ КОМПЬЮТЕРАХ

	Чтобы выполнить скрипт на удаленных компьютерах, используйте 
	параметр FilePath командлета Invoke-Command.

	Например, следующая команда выполняет скрипт Sample.ps1 на 
	компьютерах S1 и S2:

		invoke-command -computername S1, S2 -filepath C:\Test\Sample.ps1

	Результаты выполнения скрипта возвращаются на локальный 
	компьютер. Копировать какие-либо файлы не требуется.
  

 ПРЕРЫВАНИЕ ВЫПОЛНЕНИЯ УДАЛЕННОЙ КОМАНДЫ

   Чтобы прервать выполнение команды, нажмите сочетание клавиш 
   CTRL+C. Запрос прерывания передается на удаленный компьютер 
   и завершает работу команды.



ДОПОЛНИТЕЛЬНЫЕ СВЕДЕНИЯ

	-- Сведения о системных требованиях для удаленного взаимодействия 
	 см. в разделе about_Remote_Requirements.

	-- Справочные сведения о форматировании выходных данных на удаленном 
	 компьютере см. в разделе about_Remote_Output.

	-- Сведения о принципах работы удаленного взаимодействия, управлении 
	 удаленными данными, специальных конфигурациях и проблемах 
	 безопасности, а также ответы на другие часто задаваемые вопросы см. 
	 в разделе about_Remote_FAQ.

	-- Справочные сведения об устранении неполадок удаленного 
	 взаимодействия см. в разделе about_Remote_Troubleshooting.

	-- Сведения о сеансах PSSession и постоянных подключениях см. 
	 в разделе about_PSSessions.

	-- Сведения о фоновых заданиях Windows PowerShell см в разделе 
	 about_Jobs.

КЛЮЧЕВЫЕ СЛОВА
	about_Remoting

СМ. ТАКЖЕ
	about_PSSessions
	about_Remote_Requirements
	about_Remote_FAQ
	about_Remote_TroubleShooting
	Enter-PSSession
	Invoke-Command
	New-PSSession