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


about_Remote_Disconnected_Sessions

Назначение: Windows PowerShell 3.0

РАЗДЕЛ

about_Remote_Disconnected_Session

КРАТКОЕ ОПИСАНИЕ

Объясняет, как отключиться и повторно подключиться к сеансу PSSession

ПОДРОБНОЕ ОПИСАНИЕ

Начиная с версии Windows PowerShell® 3.0, можно отключиться от сеанса PSSession и выполнить повторное подключение к PSSession позднее на том же или на другом компьютере. Состояние сеанса сохраняется, а команды в сеансе PSSession продолжают выполняться при отключенном сеансе.

Функция отключенных сеансов доступна только, если на компьютере на удаленном конце подключения работает версия Windows PowerShell 3.0 или более поздняя версия Windows PowerShell.

Функция отключенных сеансов позволяет закрыть сеанс, в котором был создан PSSession, а также закрыть Windows PowerShell и завершить работу компьютера, не прерывая команды, выполняющиеся в PSSession. Эта возможность особенно полезна в случае команд, для выполнения которых требуется много времени. Она предоставляет гибкость времени и устройств, необходимые ИТ-специалистам.

ПРИМЕЧАНИЕ. Нельзя отключаться от интерактивного сеанса, который был запущен с помощью командлета Enter-PSSession.

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

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

КОМАНДЛЕТЫ ОТКЛЮЧЕННОГО СЕАНСА

Следующие командлеты поддерживают функцию отключенных сеансов.

  • Disconnect-PSSession.

    Отключает сеанс PSSession.

  • Connect-PSSession.

    Подключается к отключенному сеансу PSSession.

  • Receive-PSSession.

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

  • Get-PSSession.

    Получает сеансы PSSession на локальных или удаленных компьютерах.

  • Invoke-Command.

    Параметр InDisconnectedSession создает сеанс PSSession и сразу же отключается.

МЕХАНИЗМ РАБОТЫ ФУНКЦИИ ОТКЛЮЧЕННЫХ СЕАНСОВ

Начиная с версии Windows PowerShell 3.0, сеансы PSSession не зависят от сеансов, в которых они были созданы. Активные сеансы PSSession сохраняются на удаленном компьютере или серверной стороне соединения, даже если сеанс, в котором был создан PSSession, закрыт, а исходный компьютер был отключен.

В версии Windows PowerShell 2.0 сеанс PSSession удаляется из удаленного компьютера при отключении от исходного сеанса или по окончании сеанса, в котором он был создан.

При отключении сеанса PSSession, он остается активным и сохраняется на удаленном компьютере. Состояние сеанса изменяется с Running на Disconnected. Можно повторно подключиться к отключенному сеансу PSSession из текущего или из другого сеанса на том же или на другом компьютере. Удаленный компьютер, на котором хранится сеанс, должен быть запущен и подключен к сети.

Команды в отключенном сеансе PSSession по-прежнему будут работать бесперебойно на удаленном компьютере до выполнения команды или заполнения выходного буфера. Чтобы предотвратить заполнение выходного буфера от приостановки команды, используйте параметр OutputBufferingMode командлета Disconnect-PSSession, New-PSSessionOption или New-PSTransportOption.

Отключенные сеансы сохраняются на удаленном компьютере в отключенном состоянии. Они доступны для повторного подключения до удаления сеанса PSSession, например, с помощью командлета Remove-PSSession или по истечении времени ожидания простоя сеанса PSSession. Время ожидания простоя сеанса PSSession можно настроить с помощью параметров IdleTimeoutSec или IdleTimeout командлета Disconnect-PSSession, New-PSSessionOption или New-PSTransportOption.

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

ПОЛУЧЕНИЕ СЕАНСОВ PSSESSION

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

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

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

Например, при создании сеанса PSSession на компьютере Server01 необходимо получить сеанс с компьютера Server01. При создании сеанса PSSession с другого компьютера на локальном компьютере, получите сеанс с локального компьютера.

Следующая последовательность команд демонстрирует работу командлета Get-PSSession.

Первая команда создает сеанс PSSession на компьютере Server01. Сеанс находится на компьютере Server01.

      PS C:\ps-test> New-PSSession -ComputerName Server01

      Id Name            ComputerName    State         ConfigurationName     Availability
      -- ----            ------------    -----         -----------------     ------------
       2 Session2        Server01        Opened        Microsoft.PowerShell     Available

Чтобы получить сеанс, используйте параметр ComputerName командлета Get-PSSession со значением Server01.

      PS C:\ps-test> Get-PSSession -ComputerName Server01

      Id Name            ComputerName    State         ConfigurationName     Availability
      -- ----            ------------    -----         -----------------     ------------
       2 Session2        Server01        Opened        Microsoft.PowerShell     Available

Если значение параметра ComputerName командлета Get-PSSession — localhost, Get-PSSession получает сеансы PSSession, которые завершаются и сохраняются на локальном компьютере. Он не получает сеансы PSSession на компьютере Server01, даже если они были запущены на локальном компьютере.

      PS C:\ps-test> Get-PSSession -ComputerName localhost
      PS C:\ps-test>

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

PS C:\ps-test> Get-PSSession

      Id Name            ComputerName    State         ConfigurationName     Availability
      -- ----            ------------    -----         -----------------     ------------
       2 Session2        Server01        Opened        Microsoft.PowerShell     Available

ОТКЛЮЧЕНИЕ СЕАНСОВ

Чтобы отключить сеанс PSSession, используйте командлет Disconnect-PSSession. Чтобы идентифицировать сеанс PSSession, используйте параметр Session или передайте сеанс PSSession из командлета New-PSSession или Get-PSSession в командлет Disconnect-PSSession.

Следующая команда отключает сеанс PSSession на компьютере Server01. Обратите внимание, что значение свойства State — Disconnected, а свойства Availability — None.

     PS C:\> Get-PSSession -ComputerName Server01 | Disconnect-PSSession

     Id Name            ComputerName    State         ConfigurationName     Availability
     -- ----            ------------    -----         -----------------     ------------
      2 Session2        Server01        Disconnected  Microsoft.PowerShell          None

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

Следующая команда запускает команду Get-WinEvent в отключенном сеансе на удаленном компьютере Server02.

     PS C:\> Invoke-Command -ComputerName Server02 -InDisconnectedSession `
             -ScriptBlock {Get-WinEvent -LogName "Windows PowerShell"} 

     Id Name            ComputerName    State         ConfigurationName     Availability
     -- ----            ------------    -----         -----------------     ------------
      4 Session3        Server02        Disconnected  Microsoft.PowerShell          None

ПОДКЛЮЧЕНИЕ К ОТКЛЮЧЕННЫМ СЕАНСАМ

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

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

Чтобы подключить отключенный сеанс PSSession, используйте командлет Connect-PSSession. Используйте параметры ComputerName или ConnectionUri для идентификации сеанса PSSession, или передайте сеанс PSSession из Get-PSSession в Connect-PSSession.

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

     PS C:\> Get-PSSession -ComputerName Server02

     Id Name            ComputerName    State         ConfigurationName     Availability
     -- ----            ------------    -----         -----------------     ------------
      2 Session2        juneb-srv8320   Disconnected  Microsoft.PowerShell          None
      4 Session3        juneb-srv8320   Disconnected  Microsoft.PowerShell          None

Следующая команда подключается к Session2. Теперь сеанс PSSession открыт и доступен.

     PS C:> Connect-PSSession -ComputerName Server02 -Name Session2


     Id Name            ComputerName    State         ConfigurationName     Availability
     -- ----            ------------    -----         -----------------     ------------
      2 Session2        juneb-srv8320   Opened        Microsoft.PowerShell     Available

ПОЛУЧЕНИЕ РЕЗУЛЬТАТОВ

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

В дополнение к или вместо командлета Connect-PSSession можно использовать Receive-PSSession. Если сеанс уже подключен повторно, командлет Receive-PSSession получит результаты команд, которые выполнялись при отключенном сеансе. Если сеанс PSSession по прежнему отключен, командлет Receive-PSSession подключится к нему и затем получит результаты выполнения команд, которые выполнялись, пока сеанс был отключен.

С помощью командлета Receive-PSSession можно вернуть результаты в задание (асинхронно) или основную программу (синхронно). Чтобы выбрать Job (Задание) или Host (Хост), используйте параметр OutTarget. Host — это значение по умолчанию. Однако, если полученная команда была запущена в текущем сеансе в виде задания, она будет возвращена как задание по умолчанию.

Следующая команда использует командлет Receive-PSSession, чтобы подключиться к сеансу PSSession на компьютере Server02 и получить результаты выполнения команды Get-WinEvent, которая была запущена в сеансе Session3. Команда использует параметр OutTarget, чтобы получить результаты выполнения задания.

      PS C:\> Receive-PSSession  -ComputerName Server02 -Name Session3 -OutTarget Job

      Id     Name            PSJobTypeName   State         HasMoreData     Location
      --     ----            -------------   -----         -----------     --------
      3      Job3            RemoteJob       Running       True            Server02

Чтобы получить результаты задания, используйте командлет Receive-Job.

      PS C:\ps-test> Get-Job | Receive-Job -Keep


          ProviderName: PowerShell

     TimeCreated             Id LevelDisplayName Message     PSComputerName                                                       
     -----------             -- ---------------- -------     --------------                                                       
     5/14/2012 7:26:04 PM   400 Information      Engine stat Server02                                                        
     5/14/2012 7:26:03 PM   600 Information      Provider "W Server02                                                        
     5/14/2012 7:26:03 PM   600 Information      Provider "C Server02                                                        
     5/14/2012 7:26:03 PM   600 Information      Provider "V Server02                                                        

СОСТОЯНИЕ И ДОСТУПНОСТЬ

Свойства State (Состояние) и Availability (Доступность) отключенного сеанса PSSession указывают, доступен ли сеанс для повторного подключения к нему.

Во время подключения сеанса PSSession к текущему сеансу, его состояние будет Opened, а доступность — Available. При отключении от сеанса PSSession, его состояние будет Disconnected, а доступность — none.

Значение свойства State определяется текущим сеансом. Таким образом, значение Disconnected показывает, что сеанс PSSession не подключен к текущему сеансу. При этом оно не означает, что сеанс PSSession отключен от всех сеансов. Он может быть подключен к другому сеансу.

Свойство Availability позволяет определить возможность подключения или повторного подключения к сеансу PSSession. Если свойство Availability имеет значение None, подключиться к сеансу можно. Значение Busy показывает, что подключиться к сеансу PSSession нельзя, так как он уже подключен к другому сеансу.

Следующий пример — работа на одном компьютере в двух сеансах (окна консоли Windows PowerShell). Обратите внимание на изменение значения свойств State и Availability в каждом сеансе при отключении и повторном подключении сеанса PSSession.

         #Session 1:
         PS C:\> New-PSSession -ComputerName Server30 -Name Test

         Id Name       ComputerName    State         ConfigurationName     Availability
         -- ----       ------------    -----         -----------------     ------------
         1  Test       Server30        Opened        Microsoft.PowerShell     Available

         #Session 2: 
         PS C:\> Get-PSSession -ComputerName Server30 -Name Test

         Id Name       ComputerName    State         ConfigurationName     Availability
         -- ----       ------------    -----         -----------------     ------------
         1 Test        Server30        Disconnected  Microsoft.PowerShell          Busy



         #Session 1
         PS C:\> Get-PSSession -ComputerName Server30 -Name Test | Disconnect-PSSession

         Id Name       ComputerName    State         ConfigurationName     Availability
         -- ----       ------------    -----         -----------------     ------------
          1 Test       Server30        Disconnected  Microsoft.PowerShell          None

         #Session 2
         PS C:\> Get-PSSession -ComputerName Server30 

         Id Name       ComputerName    State         ConfigurationName     Availability
         -- ----       ------------    -----         -----------------     ------------
          1 Test       Server30        Disconnected  Microsoft.PowerShell          None



         #Session 2
         PS C:\> Connect-PSSession -ComputerName Server01 -Name Test

         Id Name       ComputerName    State         ConfigurationName     Availability
         -- ----       ------------    -----         -----------------     ------------
         3 Test        Server30        Opened        Microsoft.PowerShell     Available

         #Session 1
         PS C:\> Get-PSSession -ComputerName Server30 

         Id Name       ComputerName    State         ConfigurationName     Availability
         -- ----       ------------    -----         -----------------     ------------
          1 Test       Server30        Disconnected  Microsoft.PowerShell          Busy

ВРЕМЯ ОЖИДАНИЯ ПРОСТОЯ

Отключенные сеансы сохраняются на удаленном компьютере до их удаления, например, при использовании командлета Remove-PSSession или по истечении времени ожидания. Свойство IdleTimeout сеанса PSSession определяет, как долго будет сохраняться отключенный сеанс перед удалением.

Сеансы PSSession бездействуют, если тактовые импульсы не получают ответ. Отключение сеанса переводит их в состояние бездействия и запускает отсчет времени ожидания простоя, даже если команды по-прежнему выполняются в отключенном сеансе. Windows PowerShell определяет отключенные сеансы как активные, но в состоянии бездействия.

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

Свойство IdleTimeoutMs конфигурации сеанса определяет время ожидания простоя по умолчанию для сеансов, использующих конфигурации сеанса. Значение по умолчанию можно переопределить, но оно не должно превышать значение свойства MaxIdleTimeoutMs конфигурации сеанса.

Для поиска значений для IdleTimeoutMs и MaxIdleTimeoutMs конфигурации сеанса используйте следующий формат команды.

      Get-PSSessionConfiguration | Format-Table Name, IdleTimeoutMs, MaxIdleTimeoutMs

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

Если вы — член группы администраторов на удаленном компьютере, вы также можете создавать и изменять свойства IdleTimeoutMs и MaxIdleTimeoutMs конфигураций сеанса.

ПРИМЕЧАНИЯ:

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

Можно задать время ожидания простоя сеанса PSSession при создании PSSession (New-PSSession, Invoke-Command) и при отключении от него (Disconnect-PSSession). Однако нельзя изменить значение IdleTimeout при подключении к сеансу PSSession (Connect-PSSession) или получении результатов (Receive-PSSession).

Командлеты Connect-PSSession и Receive-PSSession имеют параметр SessionOption, который принимает объект SessionOption, например параметр, который командлет New-PSSessionOption присылает в ответ. Однако значение IdleTimeout в объекте SessionOption и значение IdleTimeout в переменной $PSSessionOption не влияют на значение IdleTimeout сеанса PSSession в команде Connect-PSSession или Receive-PSSession.

-- Чтобы создать сеанс PSSession со значением конкретного времени ожидания простоя, создайте переменную $PSSessionOption. Задайте нужное значение для свойства IdleTimeout (в миллисекундах).

При создании сеансов PSSession значения в переменной $PSSessionOption имеют приоритет над значениями в конфигурации сеанса.

Например, эта команда задает значение время ожидания простоя в 48 часов. Вставьте текст раздела здесь.

PS C:\> $PSSessionOption = New-PSSessionOption -IdleTimeoutMSec 172800000

-- Чтобы создать сеанс PSSession со значением конкретного времени ожидания простоя, используйте параметр IdleTimeoutMSec командлета New-PSSessionOption. Затем используйте параметр сеанса в качестве значения параметра SessionOption командлета New-PSSession или Invoke-Command.

Заданные при создании сеанса значения имеют приоритет над значениями, заданными в переменной $PSSessionOption и конфигурации сеанса.

Например:

         PS C:\> $o = New-PSSessionOption -IdleTimeoutMSec 172800000 
         PS C:\> New-PSSession -SessionOption $o

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

Например:

         PS C:\> Disconnect-PSSession -IdleTimeoutSec 172800

-- Чтобы создать конфигурацию сеанса с определенным временем ожидания простоя и максимальным временем ожидания простоя, используйте параметры IdleTimeoutSec и MaxIdleTimeoutSec командлета New-PSTransportOption. Затем используйте параметр транспорта в значении параметра TransportOption в Register-PSSessionConfiguration.

Например:

         PS C:\> $o = New-PSTransportOption -IdleTimeoutSec 172800 -MaxIdleTimeoutSec 259200 
         PS C:\> Register-PSSessionConfiguration -Name Test -TransportOption $o

-- Чтобы изменить время ожидания простоя по умолчанию и максимальное время ожидания простоя для конфигурации сеанса, используйте параметры IdleTimeoutSec и MaxIdleTimeoutSec командлета New-PSTransportOption. Затем используйте параметр транспорта в значении параметра TransportOption в Set-PSSessionConfiguration.

Например:

         PS C:\> $o = New-PSTransportOption -IdleTimeoutSec 172800 -MaxIdleTimeoutSec 259200
         PS C:\> Set-PSSessionConfiguration -Name Test -TransportOption $o

РЕЖИМ БУФЕРИЗАЦИИ НА ВЫХОДЕ

Режим буферизации на выходе сеанса PSSession определяет управление выходным потоком команд при заполнении выходного буфера сеанса PSSession.

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

Допустимые значения:

    -- Block: When the output buffer is full, execution is suspended
              until the buffer is clear.

    -- Drop:  When the output buffer is full, execution continues. 
              As new output is generated, the oldest output is
              discarded.

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

Значение Drop позволяет завершить выполнение команды, несмотря на возможную потерю данных. При использовании значения Drop выходные данные команды необходимо перенаправить в какой-либо файл на диске. Это значение рекомендуется для отключенных сеансов.

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

Для поиска значений OutputBufferingMode конфигурации сеанса, используйте следующий формат команды.

      (Get-PSSessionConfiguration <ConfigurationName>).OutputBufferingMode

    -or-

      Get-PSSessionConfiguration | Format-Table Name, OutputBufferingMode

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

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

-- Чтобы создать сеанс PSSession с режимом буферизации на выходе Drop, создайте переменную $PSSessionOption со значением свойства OutputBufferingMode — Drop.

При создании сеансов PSSession значения в переменной $PSSessionOption имеют приоритет над значениями в конфигурации сеанса.

Например:

         PS C:\> $PSSessionOption = New-PSSessionOption -OutputBufferingMode Drop

-- Чтобы создать сеанс PSSession с режимом буферизации на выходе Drop, используйте параметр OutputBufferingMode командлета New-PSSessionOption для создания параметра сеанса со значением Drop. Затем используйте параметр сеанса в качестве значения параметра SessionOption командлета New-PSSession или Invoke-Command.

Заданные при создании сеанса значения имеют приоритет над значениями, заданными в переменной $PSSessionOption и конфигурации сеанса.

Например:

         PS C:\> $o = New-PSSessionOption -OutputBufferingMode Drop
         PS C:\> New-PSSession -SessionOption $o

-- Чтобы изменить режим буферизации на выходе сеанса PSSession при отключении, используйте параметр OutputBufferingMode командлета Disconnect-PSSession.

Например:

         PS C:\> Disconnect-PSSession -OutputBufferingMode Drop

-- Чтобы изменить режим буферизации на выходе сеанса PSSession при повторном подключении, используйте параметр OutputBufferingMode командлета New-PSSessionOption для создания параметра сеанса со значением Drop. Затем используйте параметр сеанса в качестве значения параметра SessionOption командлета Connect-PSSession или Receive-PSSession.

Например:

         PS C:\> $o = New-PSSessionOption -OutputBufferingMode Drop
         PS C:\> Connect-PSSession -Cn Server01 -Name Test -SessionOption $o

-- Чтобы создать конфигурацию сеанса с режимом буферизации на выходе по умолчанию Drop, используйте параметр OutputBufferingMode командлета New-PSTransportOption для создания объекта параметра транспорта со значением Drop. Затем используйте параметр транспорта в значении параметра TransportOption в Register-PSSessionConfiguration.

Например:

PS C:\> $o = New-PSTransportOption -OutputBufferingMode Drop PS C:\> Register-PSSessionConfiguration -Name Test -TransportOption $o

-- Чтобы изменить режим буферизации на выходе сеанса по умолчанию для конфигурации сеанса, используйте параметр OutputBufferingMode командлета New-PSTransportOption для создания параметра транспорта со значением Drop. Затем используйте параметр Transport в значении параметра SessionOption в Set-PSSessionConfiguration.

Например:

         PS C:\> $o = New-PSTransportOption -OutputBufferingMode Drop
         PS C:\> Set-PSSessionConfiguration -Name Test -TransportOption $o

ОТКЛЮЧЕНИЕ СЕАНСОВ ЗАМЫКАНИЯ НА СЕБЯ

"Сеансы замыкания на себя" или "локальные сеансы" — это сеансы PSSession, которые создаются и завершаются на одном компьютере. Подобно другим сеансам PSSession, активные сеансы замыкания на себя сохраняются на компьютере, находящемся на удаленном конце подключения (локальный компьютер), поэтому можно отключиться и повторно подключиться к сеансам замыкания на себя.

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

Однако при использовании параметра EnableNetworkAccess командлета New-PSSession, Enter-PSSession или Invoke-Command, сеанс замыкания на себя создается с интерактивным маркером безопасности. Интерактивный маркер позволяет выполнять в сеансе замыкания на себя команды, которые получают данные с других компьютеров.

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

ОЖИДАНИЕ ЗАДАНИЙ В ОТКЛЮЧЕННЫХ СЕАНСАХ

Командлет Wait-Job ожидает, пока задание будет выполнено и возвращается в командную строку или переходит к следующей команде. По умолчанию Wait-Job приходит в ответ при отключении сеанса, в котором выполняется задание. Чтобы направить командлет Wait-Job для ожидания повторного подключения сеанса (в состоянии Opened), используйте параметр Force. Дополнительные сведения см. в разделе Wait-Job.

НАДЕЖНЫЕ СЕАНСЫ И НЕПРЕДНАМЕРЕННОЕ ОТКЛЮЧЕНИЕ

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

Состояние непреднамеренно отключенного сеанса PSSession может быть Broken, Closed, а также Disconnected. При значении состояния Disconnected, можно использовать те же способы для управления сеансом PSSession, как если бы сеанс был отключен намеренно. Например, можно использовать командлет Connect-PSSession, чтобы выполнить повторное подключение к сеансу и командлет Receive-PSSession для получения результатов команд, которые выполнялись в то время, когда сеанс был отключен.

Если закрыть сеанс (выйти), в котором был создан сеанс PSSession во время выполнения команд в PSSession, Windows PowerShell будет поддерживать PSSession в состоянии Disconnected на удаленном компьютере. Если закрыть сеанс (выйти), в котором был создан сеанс PSSession, но команды в PSSession не работают, Windows PowerShell не будет пытаться поддерживать работу сеанса PSSession.

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

about_Disconnected_Sessions

СМ. ТАКЖЕ

about_Jobs

about_Remote

about_Remote_Variables

about_PSSessions

about_Session_Configurations

Disconnect-PSSession

Connect-PSSession

Get-PSSession

Receive-PSSession

Invoke-Command