Поделиться через


about_PSSessions

РАЗДЕЛ
    about_PSSessions

КРАТКОЕ ОПИСАНИЕ
    Содержит описание сеансов Windows PowerShell (сеансы PSSession) и 
    объяснение, как установить постоянное подключение к удаленному 
компьютеру. 


ПОЛНОЕ ОПИСАНИЕ
    Для выполнения команд Windows PowerShell на удаленном компьютере можно 
    использовать параметр ComputerName командлета или создать сеанс Windows 
    PowerShell (PSSession) и выполнять команды в сеансе PSSession. 

    При создании сеанса PSSession Windows PowerShell создает 
    постоянное подключение к удаленному компьютеру. Используйте сеанс 
    PSSession для выполнения последовательности связанных команд на 
    удаленном компьютере. Команды, выполняемые в рамках одного сеанса 
    PSSession, могут совместно использовать данные, например значения 
    переменных, псевдонимы и функции.

    Можно также создать сеанс PSSession на локальном компьютере и 
    выполнять команды в нем. Локальный сеанс PSSession использует 
    инфраструктуру удаленного взаимодействия Windows PowerShell для 
    создания и обслуживания сеанса PSSession.

    В этом разделе описывается, как создавать, использовать, получать 
    и удалять сеансы PSSession. Чтобы получить дополнительные 
    сведения, см. раздел about_PSSession_Details.

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

                Чтобы создать сеанс PSSession на локальном компьютере под 
                управлением Windows Vista и более поздних версий Windows, 
                необходимо запускать Windows PowerShell командой "Запуск 
                от имени администратора". 

 ЧТО ТАКОЕ СЕАНС?
    Сеанс - это среда, в которой работает Windows PowerShell. 

    При каждом запуске Windows PowerShell создается сеанс, в котором 
    можно выполнять команды. Можно также добавлять элементы в сеанс, 
    например модули и оснастки, и создавать элементы, например переменные, 
    функции и псевдонимы. Эти элементы будут существовать только в данном 
    сеансе и будут удалены при завершении сеанса.

    Можно также создавать дополнительные сеансы, известные как 
    "сеансы Windows PowerShell" или "PSSession", на локальном или 
    удаленном компьютере. Как и в обычном сеансе, в PSSession можно 
    выполнять команды, добавлять и создавать элементы для него.  

    Но в отличие от сеанса, запущенного автоматически, пользователь может 
    управлять созданными сеансами PSSession. Пользователь может получать, 
    создавать, настраивать и удалять их; также можно запускать несколько 
    команд в одном сеансе PSSession. Объект PSSession остается открытым 
    и доступным для использования, пока пользователь не удалит его из сеанса.
      
    Обычно сеанс PSSession создается для выполнения последовательности
    связанных команд на удаленном компьютере. При создании PSSession на 
    удаленном компьютере Windows PowerShell устанавливает постоянное 
    подключение к удаленному компьютеру для поддержки этого сеанса. 

    Если используется параметр computerName командлетов Invoke-Command или 
    Enter-PSSession для запуска удаленной команды или создания интерактивного 
    сеанса, Windows PowerShell создает временный сеанс на удаленном компьютере 
    и закрывает его, как только команда или интерактивный сеанс завершаются. 
    Временными сеансами нельзя управлять и нельзя использовать их более чем 
    для одной команды или одного интерактивного сеанса.

    В Windows PowerShell "текущий сеанс" - это сеанс, в котором работает 
    пользователь. Название "текущий сеанс" может относиться к любому 
    сеансу, в том числе временному сеансу или сеансу PSSession.


 КОГДА ИСПОЛЬЗОВАТЬ СЕАНС PSSESSION?
    PSSession следует использовать, когда необходимо постоянное 
    подключение к удаленному компьютеру. В сеансе PSSession можно 
    выполнять несколько команд, совместно использующих данные, такие как 
    значение переменных, содержимое функции или определение псевдонима.

    Удаленные команды можно выполнять, не создавая сеанс PSSession. Для 
    выполнения одной команды или последовательности несвязанных команд на 
    одном или нескольких компьютерах можно использовать параметр 
    ComputerName командлетов, позволяющих удаленную работу.

    Когда используется параметр ComputerName командлетов 
    Invoke-Expression или Enter-PSSession, Windows PowerShell 
    устанавливает временное подключение к удаленному компьютеру и 
    завершает подключение, как только команда завершает выполнение. Все 
    созданные данные теряются при завершении соединения. 

    Другие командлеты, у которых есть параметр ComputerName, например Get-
    Eventlog и Get-WmiObject, используют другие технологии удаленного 
    взаимодействия для сбора данных. Ни один из них не создает постоянное 
    подключение, как PSSession.
     

 СОЗДАНИЕ СЕАНСА PSSESSION
    Для создания сеанса PSSession используйте командлет 
    New-PSSession. Чтобы создать сеанс PSSession на удаленном 
    компьютере, используйте параметр ComputerName командлета 
    New-PSSession.

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

        new-pssession -computername Server01

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

    Например, следующая команда создает новый сеанс PSSession на 
    компьютере Server01 и сохраняет полученный объект в переменной $ps.
    
        $ps = new-pssession -computername Server01


 СОЗДАНИЕ СЕАНСОВ PSSESSION НА НЕСКОЛЬКИХ КОМПЬЮТЕРАХ
    Чтобы создать сеансы PSSession на нескольких компьютерах, используйте 
    параметр ComputerName командлета New-PSSession. Введите имена удаленных 
    компьютеров в виде списка, разделенного запятыми. 

    Например, чтобы создать сеансы PSSession на компьютерах Server01, 
    Server02 и Server03, введите следующую строку:

        new-PSSession -computername Server01, Server02, Server03

    Командлет New-PSSession создает один сеанс PSSession на каждом из 
    удаленных компьютеров. 


 ПОЛУЧЕНИЕ СЕАНСОВ PSSESSION 
    Чтобы получить сеансы PSSession, созданные в текущем сеансе, 
    используйте командлет Get-PSSession. Командлет Get-PSSession 
    возвращает тот же тип объекта, что и командлет New-PSSession. 

    Следующая команда получает все сеансы PSSession, созданные в 
    текущем сеансе.

        get-PSSession

    По умолчанию для сеансов PSSession выводятся их идентификаторы и 
    понятные имена по умолчанию. При создании сеанса можно назначить 
    ему другое понятное имя.

        Id   Name       ComputerName    State    ConfigurationName
        ---  ----       ------------    -----    ---------------------
        1    Session1   Server01        Opened   Microsoft.PowerShell
        2    Session2   Server02        Opened   Microsoft.PowerShell
        3    Session3   Server03        Opened   Microsoft.PowerShell

   
    Также можно сохранять сеансы PSSession в переменной. Следующая команда 
    получает сеансы PSSession и сохраняет их в переменной $ps123.

        $ps123 = get-PSSession  

    При использовании командлетов PSSession можно обратиться к сеансу 
    PSSession по его идентификатору, имени или идентификатору его 
    экземпляра (GUID). Следующая команда получает сеанс PSSession по его 
    идентификатору и сохраняет его в переменной $ps01.

        $ps01 = get-PSSession -id 1

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



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

    Например, для выполнения команды Get-ChildItem ("dir") в каждом 
    из трех сеансов PSSession, сохраненных в переменной $ps123, введите 
    следующую строку:

        invoke-command -session $ps123 -scriptblock {get-childitem}

 
 УДАЛЕНИЕ СЕАНСОВ PSSESSION
    По окончании работы с сеансом PSSession используйте командлет 
    Remove-PSSession для удаления сеанса PSSession и освобождения 
    занятых им ресурсов.

        remove-PSSession -session $ps

        - или: 
          
        remove-PSSession -id 1
 
    Если сеанс PSSession не удалить, он остается открытым и доступным для 
    использования, пока не будет закрыт текущий сеанс или Windows PowerShell.

    Также можно использовать параметр TimeOut командлета New-PSSession, 
    чтобы задать время ожидания для сеанса PSSession, который не используется. 
    Чтобы получить дополнительные сведения, см. new-PSSession.


 КОМАНДЛЕТЫ PSSESSION

    Командлет                Описание 
    -----------------     ------------------------------------------------------ 
    New-PSSession         Создает новый сеанс PSSession на 
                  локальном или удаленном компьютере.
    Get-PSSession         Выводит все сеансы PSSession в 
                  текущем сеансе.
    Remove-PSSession      Удаляет сеансы PSSession в 
                  текущем сеансе.
    Enter-PSSession       Создает интерактивный сеанс.
    Exit-PSSession        Завершает интерактивный сеанс.

    Чтобы вывести список командлетов PSSession, введите следующую команду:
    
    get-help *-PSSession


 ДОПОЛНИТЕЛЬНЫЕ СВЕДЕНИЯ
    Дополнительные сведения о сеансах PSSession см. в разделе 
    about_PSSession_Details.
    

СМ. ТАКЖЕ
    about_Remote
    about_Remote_Requirements
    New-PSSession
    Get-PSSession
    Remove-PSSession
    Enter-PSSession
    Exit-PSSession
    Invoke-Command