Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Назначение: Windows PowerShell 2.0, Windows PowerShell 3.0
РАЗДЕЛ
about_PSSessions
КРАТКОЕ ОПИСАНИЕ
Описание сеансов Windows PowerShell (PSSession) и сведения о том, как установить постоянное подключение к удаленному компьютеру.
ПОДРОБНОЕ ОПИСАНИЕ
Чтобы запустить команды Windows PowerShell на удаленном компьютере, воспользуйтесь параметром ComputerName командлета или создайте сеанс Windows PowerShell (PSSession) и запустите команды в нем.
При создании сеанса PSSession Windows PowerShell устанавливает постоянное подключение к удаленному компьютеру. Используйте PSSession для выполнения ряда связанных команд на удаленном компьютере. Команды, которые выполняются в одном сеансе PSSession, могут совместно использовать такие данные, как значения переменных, псевдонимы и функции.
Вы также можете создать сеанс PSSession на локальном компьютере и запускать команды в нем. Локальный сеанс PSSession использует инфраструктуру удаленного взаимодействия Windows PowerShell для создания и обслуживания сеанса PSSession.
Начиная с Windows PowerShell 3.0, сеансы PSSession не зависят от сеансов, в которых они были созданы. Активные сеансы PSSession обслуживаются на удаленном компьютере (или компьютере на стороне сервера). В результате вы можете отключить сеанс 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-Command или 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 или использовать команду Get-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 без параметра ComputerName. Командлет 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
Начиная с Windows PowerShell 3.0, сеансы PSSession обслуживаются на удаленном компьютере. Чтобы получить сеансы PSSession, созданные на определенных удаленных компьютерах, используйте параметр ComputerName командлета Get-PSSession. Указанная ниже команда возвращает сеансы PSSession, созданные на удаленном компьютере Server01. К ним относятся сеансы PSSession, созданные в текущем или другом сеансе на локальном или другом компьютере.
Get-PSSession -ComputerName Server01
В Windows PowerShell 2.0 командлет Get-PSSession возвращает только сеансы PSSession, созданные во время текущего сеанса. Он не возвращает сеансы PSSession, созданные во время других сеансов или на других компьютерах, даже если эти сеансы подключены на локальном компьютере и выполняют на нем команды.
ЗАПУСК КОМАНД В СЕАНСЕ PSSESSION
Чтобы запустить команду в одном или нескольких сеансах PSSession, используйте командлет Invoke-Command. Указывайте сеансы PSSession с помощью параметра Session, а команды — с помощью параметра 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, запущенный на удаленном компьютере, используйте параметр ComputerName командлета Remove-PSSession.
Remove-PSSession -ComputerName Server01 -Id 1
Если не удалить сеанс PSSession, он останется доступным, пока не истечет срок его действия.
Вы также можете использовать параметр IdleTimeout командлета New-PSSessionOption, чтобы задать срок действия неактивного сеанса PSSession. Дополнительные сведения см. в описании New-PSSessionOption.
КОМАНДЛЕТЫ ДЛЯ СЕАНСОВ PSSESSION
Cmdlet Description
----------------- ------------------------------------------------------
New-PSSession Creates a new PSSession on a local or remote computer.
Get-PSSession Gets the PSSessions in the current session.
Remove-PSSession Deletes the PSSessions in the current session.
Enter-PSSession Starts an interactive session.
Exit-PSSession Ends an interactive session.
Disconnect-PSSession Disconnects a PSSession from the current session.
Connect-PSSession Connects a PSSession to the current session.
Receive-PSSession Gets the results of commands that ran in a disconnected
session.
Чтобы получить список командлетов для сеансов PSSession, введите следующую команду:
get-help *-PSSession
ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ
Дополнительные сведения о сеансах PSSession см. в статье "about_PSSession_Details".
СМ. ТАКЖЕ
about_Remote
about_Remote_Disconnected_Sessions
about_Remote_Requirements
Connect-PSSession
Disconnect-PSSession
Enter-PSSession
Exit-PSSession
Get-PSSession
Invoke-Command
New-PSSession
Remove-PSSession