РАЗДЕЛ
    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




Содержание