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


Get-PSSession

Возвращает сеансы Windows PowerShell на локальных и удаленных компьютерах.

Синтаксис

Get-PSSession
   [-Name <String[]>]
   [<CommonParameters>]
Get-PSSession
   [-ComputerName] <String[]>
   [-ApplicationName <String>]
   [-ConfigurationName <String>]
   [-Name <String[]>]
   [-Credential <PSCredential>]
   [-Authentication <AuthenticationMechanism>]
   [-CertificateThumbprint <String>]
   [-Port <Int32>]
   [-UseSSL]
   [-ThrottleLimit <Int32>]
   [-State <SessionFilterState>]
   [-SessionOption <PSSessionOption>]
   [<CommonParameters>]
Get-PSSession
   [-ComputerName] <String[]>
   [-ApplicationName <String>]
   [-ConfigurationName <String>]
   -InstanceId <Guid[]>
   [-Credential <PSCredential>]
   [-Authentication <AuthenticationMechanism>]
   [-CertificateThumbprint <String>]
   [-Port <Int32>]
   [-UseSSL]
   [-ThrottleLimit <Int32>]
   [-State <SessionFilterState>]
   [-SessionOption <PSSessionOption>]
   [<CommonParameters>]
Get-PSSession
   [-ConnectionUri] <Uri[]>
   [-ConfigurationName <String>]
   [-AllowRedirection]
   [-Name <String[]>]
   [-Credential <PSCredential>]
   [-Authentication <AuthenticationMechanism>]
   [-CertificateThumbprint <String>]
   [-ThrottleLimit <Int32>]
   [-State <SessionFilterState>]
   [-SessionOption <PSSessionOption>]
   [<CommonParameters>]
Get-PSSession
   [-ConnectionUri] <Uri[]>
   [-ConfigurationName <String>]
   [-AllowRedirection]
   -InstanceId <Guid[]>
   [-Credential <PSCredential>]
   [-Authentication <AuthenticationMechanism>]
   [-CertificateThumbprint <String>]
   [-ThrottleLimit <Int32>]
   [-State <SessionFilterState>]
   [-SessionOption <PSSessionOption>]
   [<CommonParameters>]
Get-PSSession
   [-InstanceId <Guid[]>]
   [<CommonParameters>]
Get-PSSession
   [-Id] <Int32[]>
   [<CommonParameters>]

Описание

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

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

Без параметров get-PSSession получает все сеансы, созданные в текущем сеансе.

Используйте параметры фильтрации, включая имя, идентификатор , InstanceID, state, ApplicationNameи Имя конфигурации выбрать один из сеансов, возвращаемых Get-PSSession.

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

ПРИМЕЧАНИЕ. В Windows PowerShell 2.0 без параметров Get-PSSession получает все сеансы, созданные в текущем сеансе. Параметр ComputerName получает сеансы, созданные в текущем сеансе, и подключается к указанному компьютеру.

Дополнительные сведения о сеансах PowerShell см. в about_PSSessions.

Примеры

Пример 1. Получение сеансов, созданных в текущем сеансе

Get-PSSession

Эта команда получает все PSSessions, созданные в текущем сеансе. Он не получает PSSessions, созданные в других сеансах или на других компьютерах, даже если они подключаются к этому компьютеру.

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

Get-PSSession -ComputerName "localhost"

Эта команда получает PSSessions, подключенных к локальному компьютеру. Чтобы указать локальный компьютер, введите имя компьютера, localhost или точку (.)

Команда возвращает все сеансы на локальном компьютере, даже если они были созданы в разных сеансах или на разных компьютерах.

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

Get-PSSession -ComputerName "Server02"

Id Name            ComputerName    State         ConfigurationName     Availability
 -- ----            ------------    -----         -----------------     ------------
  2 Session3        Server02       Disconnected  ITTasks                       Busy
  1 ScheduledJobs   Server02       Opened        Microsoft.PowerShell     Available
  3 Test            Server02       Disconnected  Microsoft.PowerShell          Busy

Эта команда получает PSSessions, подключенных к компьютеру Server02.

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

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

Пример 4. Сохранение результатов этой команды

New-PSSession -ComputerName Server01, Server02, Server03
$s1, $s2, $s3 = Get-PSSession

В этом примере показано, как сохранить результаты команды Get-PSSession в нескольких переменных.

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

Вторая команда использует командлет Get-PSSession для получения трех PSSessions. Затем он сохраняет каждую из PSSessions в отдельной переменной.

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

Пример 5. Удаление сеанса с помощью идентификатора экземпляра

Get-PSSession | Format-Table -Property ComputerName, InstanceID
$s = Get-PSSession -InstanceID a786be29-a6bb-40da-80fb-782c67f7db0f
Remove-PSSession -Session $s

В этом примере показано, как получить PSSession с помощью идентификатора экземпляра, а затем удалить PSSession.

Первая команда получает все PSSessions, созданные в текущем сеансе. Он отправляет PSSessions командлету Format-Table, который отображает свойства ComputerName и Instance ID каждого PSSession.

Вторая команда использует командлет Get-PSSession для получения конкретного PSSession и сохранения его в переменной $s. Команда использует параметр instanceID для идентификацииPSSession.

Третья команда использует командлет Remove-PSSession для удаления PSSession в переменной $s.

Пример 6. Получение сеанса с определенным именем

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

Get-PSSession -ComputerName Server02, Server12 -Name BackupJob* -ConfigurationName ITTasks -SessionOption @{OperationTimeout=240000}

Id Name            ComputerName    State         ConfigurationName     Availability
 -- ----            ------------    -----         -----------------     ------------
  3 BackupJob04     Server02        Disconnected        ITTasks                  None

$s = Get-PSSession -ComputerName Server02 -Name BackupJob04 -ConfigurationName ITTasks | Connect-PSSession
$s

Id Name            ComputerName    State         ConfigurationName     Availability
-- ----            ------------    -----         -----------------     ------------
 5 BackupJob04     Server02        Opened        ITTasks                  Available

Первая команда получает сеансы на удаленных компьютерах Server02 и Server12 с именами, которые начинаются с BackupJob и используют конфигурацию сеанса ITTasks. Команда использует параметр имени для указания шаблона имени и параметра ConfigurationName для указания конфигурации сеанса. Значение параметра sessionOption — это хэш-таблица, которая задает значение OperationTimeout 240000 миллисекунда (4 минуты). Этот параметр дает команде больше времени для завершения. Параметры ConfigurationName и SessionOp tion используются для настройки временных сеансов , в которых выполняется командлет Get-PSSession на каждом компьютере. В выходных данных показано, что команда возвращает сеанс BackupJob04. Сеанс отключен, а доступности — Нет, что указывает на то, что он не используется.

Вторая команда использует командлет get-PSSession для подключения к сеансу BackupJob04 и командлету Connect-PSSession для подключения к сеансу. Команда сохраняет сеанс в переменной $s.

Третья команда получает сеанс в переменной $s. В выходных данных показано, что команда Connect-PSSession прошла успешно. Сеанс находится в состоянии открытого и доступен для использования.

Пример 7. Получение сеанса с помощью его идентификатора

Get-PSSession -Id 2

Эта команда получает PSSession с идентификатором 2. Так как значение свойства идентификатора уникально только в текущем сеансе, параметр id действителен только для локальных команд.

Параметры

-AllowRedirection

Указывает, что этот командлет разрешает перенаправление этого подключения к альтернативному универсальному идентификатору ресурса (URI). По умолчанию PowerShell не перенаправляет подключения.

Этот параметр настраивает временное подключение, созданное для выполнения команды Get-PSSession с параметром ConnectionUri .

Этот параметр появился в Windows PowerShell 3.0.

Тип:SwitchParameter
Position:Named
Default value:False
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-ApplicationName

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

Введите сегмент имени приложения URI подключения. Например, в следующем URI подключения имя приложения — WSMan: https://localhost:5985/WSMAN. Имя приложения сеанса хранится в свойстве Runspace.ConnectionInfo.AppName сеанса.

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

Тип:String
Position:Named
Default value:All sessions
Обязательно:False
Принять входные данные конвейера:True
Принять подстановочные знаки:False

-Authentication

Указывает механизм, используемый для проверки подлинности учетных данных для сеанса, в котором выполняется команда Get-PSSession .

Этот параметр настраивает временное подключение, созданное для выполнения команды Get-PSSession с параметром ComputerName или ConnectionUri.

Допустимые значения для этого параметра:

  • По умолчанию
  • Основной
  • Credssp
  • Переваривать
  • Kerberos
  • Вести переговоры
  • NegotiateWithImplicitCredential.

Значение по умолчанию — Default.

Дополнительные сведения о значениях этого параметра см. в перечисление AuthenticationMechanism в библиотеке MSDN.

ПРЕДУПРЕЖДЕНИЕ. Проверка подлинности поставщика поддержки безопасности учетных данных (CredSSP), в которой учетные данные пользователя передаются на удаленный компьютер для проверки подлинности, предназначена для команд, требующих проверки подлинности на нескольких ресурсах, таких как доступ к удаленному сетевому ресурсу. Этот механизм повышает риск безопасности удаленной операции. Если удаленный компьютер скомпрометирован, учетные данные, передаваемые ему, можно использовать для управления сетевым сеансом.

Этот параметр появился в Windows PowerShell 3.0.

Тип:AuthenticationMechanism
Допустимые значения:Default, Basic, Negotiate, NegotiateWithImplicitCredential, Credssp, Digest, Kerberos
Position:Named
Default value:Default
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-CertificateThumbprint

Указывает сертификат цифрового открытого ключа (X509) учетной записи пользователя с разрешением на создание сеанса, в котором выполняется команда Get-PSSession. Введите отпечаток сертификата.

Этот параметр настраивает временное подключение, созданное для выполнения команды Get-PSSession с параметром ComputerName или ConnectionUri.

Сертификаты используются в проверке подлинности на основе сертификатов клиента. Их можно сопоставить только с локальными учетными записями пользователей; Они не работают с учетными записями домена.

Чтобы получить отпечаток сертификата, используйте команду Get-Item или Get-ChildItem на диске PowerShell Cert.

Этот параметр появился в Windows PowerShell 3.0.

Тип:String
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-ComputerName

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

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

Введите имя NetBIOS, IP-адрес или полное доменное имя одного или нескольких компьютеров. Чтобы указать локальный компьютер, введите имя компьютера, localhost или точку (.).

Примечание. Этот параметр получает сеансы только с компьютеров под управлением Windows PowerShell 3.0 или более поздних версий PowerShell. Более ранние версии не хранят сеансы.

Тип:String[]
Aliases:Cn
Position:0
Default value:None
Обязательно:True
Принять входные данные конвейера:True
Принять подстановочные знаки:False

-ConfigurationName

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

Введите имя конфигурации или полный URI ресурса для конфигурации сеанса. Если указать только имя конфигурации, предопределен следующий URI схемы: https://schemas.microsoft.com/powershell. Имя конфигурации сеанса хранится в свойстве configurationName сеанса.

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

Дополнительные сведения о конфигурациях сеансов см. в about_Session_Configurations.

Тип:String
Position:Named
Default value:All sessions
Обязательно:False
Принять входные данные конвейера:True
Принять подстановочные знаки:False

-ConnectionUri

Задает универсальный код ресурса (URI), определяющий конечную точку подключения для временного сеанса, в котором выполняется команда get-PSSession. Универсальный код ресурса (URI) должен быть полным.

Этот параметр настраивает временное подключение, созданное для выполнения команды Get-PSSession с параметром ConnectionUri .

Формат этой строки:

<транспорт>://<Имя компьютера>:<порт>/<ApplicationName>

Значение по умолчанию: https://localhost:5985/WSMAN.

ЕслиconnectionUri не указан, можно использовать параметрыUseSSL , ComputerName,порт и параметры ApplicationName для указания значений connectionURI . Допустимые значения для сегмента транспорта URI: HTTP и HTTPS. Если указать URI подключения с сегментом транспорта, но не указать порт, сеанс создается с портами стандартов: 80 для HTTP и 443 для HTTPS. Чтобы использовать порты по умолчанию для удаленного взаимодействия PowerShell, укажите порт 5985 для HTTP или 5986 для HTTPS.

Если целевой компьютер перенаправляет подключение к другому URI, PowerShell запрещает перенаправление, если в команде не используется параметр AllowRedirection.

Этот параметр появился в Windows PowerShell 3.0.

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

Тип:Uri[]
Aliases:URI, CU
Position:0
Default value:Http://localhost:5985/WSMAN
Обязательно:True
Принять входные данные конвейера:True
Принять подстановочные знаки:False

-Credential

Указывает учетные данные пользователя. Этот командлет выполняет команду с разрешениями указанного пользователя. Укажите учетную запись пользователя, которая имеет разрешение на подключение к удаленному компьютеру и выполните команду Get-PSSession. По умолчанию используется текущий пользователь. Введите имя пользователя, например User01, Domain01\User01или User@Domain.com, или введите объект PSCredential, например один, возвращенный командлетом Get-Credential. При вводе имени пользователя этот командлет запрашивает пароль.

Этот параметр настраивает временное подключение, созданное для выполнения команды Get-PSSession с параметром ComputerName или ConnectionUri.

Этот параметр появился в Windows PowerShell 3.0.

Тип:PSCredential
Position:Named
Default value:Current user
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Id

Задает массив идентификаторов сеансов. Этот командлет получает только сеансы с указанными идентификаторами. Введите один или несколько идентификаторов, разделенных запятыми, или используйте оператор диапазона (..), чтобы указать диапазон идентификаторов. Параметр идентификатора нельзя использовать вместе с параметром ComputerName.

Идентификатор — это целое число, которое однозначно идентифицирует сеансы, управляемые пользователем, в текущем сеансе. Проще запоминать и вводить, чемэкземпляра , но он является уникальным только в текущем сеансе. Идентификатор сеанса хранится в свойстве идентификатора сеанса.

Тип:Int32[]
Position:0
Default value:All sessions
Обязательно:True
Принять входные данные конвейера:True
Принять подстановочные знаки:False

-InstanceId

Задает массив идентификаторов экземпляров сеансов. Этот командлет получает только сеансы с указанными идентификаторами экземпляров.

Идентификатор экземпляра — это GUID, который однозначно идентифицирует сеанс на локальном или удаленном компьютере. экземпляра уникально, даже если в PowerShell запущено несколько сеансов.

Идентификатор экземпляра сеанса хранится в свойстве InstanceID сеанса.

Тип:Guid[]
Position:Named
Default value:All sessions
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Name

Задает массив имен сеансов. Этот командлет получает только сеансы с указанными понятными именами. Разрешены подстановочные знаки.

Понятное имя сеанса хранится в свойстве имени сеанса.

Тип:String[]
Position:Named
Default value:All sessions
Обязательно:False
Принять входные данные конвейера:True
Принять подстановочные знаки:True

-Port

Указывает указанный сетевой порт, используемый для временного подключения, в котором выполняется команда get-PSSession. Чтобы подключиться к удаленному компьютеру, удаленный компьютер должен прослушивать порт, используемый подключением. Порты по умолчанию — 5985, который является портом WinRM для HTTP и 5986, который является портом WinRM для HTTPS.

Перед использованием альтернативного порта необходимо настроить прослушиватель WinRM на удаленном компьютере, чтобы прослушивать этот порт. Чтобы настроить прослушиватель, введите следующие две команды в командной строке PowerShell:

Remove-Item -Path WSMan:\Localhost\listener\listener* -Recurse

New-Item -Path WSMan:\Localhost\listener -Transport http -Address * -Port \<port-number\>

Этот параметр настраивает временное подключение, созданное для выполнения команды Get-PSSession с параметром ComputerName или ConnectionUri.

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

Этот параметр появился в Windows PowerShell 3.0.

Тип:Int32
Position:Named
Default value:5985, 5986
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-SessionOption

Задает дополнительные параметры сеанса. Введите объект SessionOption, например объект, создаваемый с помощью командлета New-PSSessionOption, или хэш-таблицу, в которой ключи являются именами вариантов сеанса, а значения — значениями параметров сеанса.

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

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

Описание параметров сеанса, включая значения по умолчанию, см. в New-PSSessionOption. Сведения о переменной предпочтения $PSSessionOption см. в about_Preference_Variables. Дополнительные сведения о конфигурациях сеансов см. в about_Session_Configurations.

Тип:PSSessionOption
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-State

Указывает состояние сеанса. Этот командлет получает только сеансы в указанном состоянии. Допустимые значения для этого параметра: все, открытые, отключенные, закрытые и сломанные. Значение по умолчанию — All.

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

Состояние сеанса хранится в свойстве состояния сеанса.

Этот параметр появился в Windows PowerShell 3.0.

Тип:SessionFilterState
Допустимые значения:All, Opened, Disconnected, Closed, Broken
Position:Named
Default value:All
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-ThrottleLimit

Указывает максимальное количество одновременных подключений, которые можно установить для выполнения команды Get-PSSession. Если этот параметр не указан или введите значение 0 (ноль), используется значение по умолчанию 32. Ограничение регулирования применяется только к текущей команде, а не к сеансу или к компьютеру.

Этот параметр появился в Windows PowerShell 3.0.

Тип:Int32
Position:Named
Default value:32
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-UseSSL

Указывает, что этот командлет использует протокол SSL для установления соединения, в котором выполняется команда Get-PSSession. По умолчанию SSL не используется. Если этот параметр используется, но ssl недоступен на порту, используемом для команды, команда завершается ошибкой.

Этот параметр настраивает временное подключение, созданное для выполнения команды Get-PSSession с параметром ComputerName .

Этот параметр появился в Windows PowerShell 3.0.

Тип:SwitchParameter
Position:Named
Default value:False
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

Входные данные

None

Входные данные в этот командлет невозможно передать.

Выходные данные

PSSession

Примечания

  • Этот командлет получает управляемые пользователем сеансы объектов PSSession, например созданные с помощью командлетов New-PSSession, ВВОД-PSSessionи Invoke-Command командлетов. При запуске PowerShell он не получает сеанс, управляемый системой.
  • Начиная с Windows PowerShell 3.0 объекты PSSession хранятся на компьютере, который находится на стороне сервера или в конце подключения. Чтобы получить сеансы, хранящиеся на локальном компьютере или удаленном компьютере, PowerShell устанавливает временный сеанс на указанный компьютер и выполняет команды запросов в сеансе.
  • Чтобы получить сеансы, которые подключаются к удаленному компьютеру, используйте параметры ComputerName или ConnectionUri, чтобы указать удаленный компьютер. Чтобы отфильтровать сеансы, получения get-PSSession, используйте параметры name, идентификатор идентификатор, InstanceIDи параметры состояния. Используйте оставшиеся параметры для настройки временного сеанса, который используется Get-PSSession.
  • При использовании параметров ComputerName или ConnectionUriGet-PSSession получает только сеансы с компьютеров под управлением Windows PowerShell 3.0 и более поздних версий PowerShell.
  • Значение свойства состояния PSSess ion относительно текущего сеанса. Таким образом, значение отключенных означает, что PSSession не подключен к текущему сеансу. Однако это не означает, что PSSession отключен от всех сеансов. Он может быть подключен к другому сеансу. Чтобы определить, можно ли подключить или повторно подключиться к PSSession из текущего сеанса, используйте свойство доступности .

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

Дополнительные сведения о значениях свойства состояния сеансов см. вперечисления RunspaceState.

Дополнительные сведения о значениях свойства доступности сеансов см. в перечисления RunspaceAvailability.