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