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 получает все сеансы, созданные в текущем сеансе.
Используйте параметры фильтрации, включая имя
Используйте оставшиеся параметры, чтобы настроить временное подключение, в котором выполняется команда Get-PSSession
ПРИМЕЧАНИЕ. В 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
Третья команда использует командлет Remove-PSSession для удаления
Пример 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. Команда использует параметр имени
Вторая команда использует командлет get-PSSession
Третья команда получает сеанс в переменной $s. В выходных данных показано, что команда Connect-PSSession прошла успешно. Сеанс находится в состоянии открытого и доступен для использования.
Пример 7. Получение сеанса с помощью его идентификатора
Get-PSSession -Id 2
Эта команда получает PSSession с идентификатором 2. Так как значение свойства идентификатора уникально только в текущем сеансе, параметр id действителен только для локальных команд.
Параметры
-AllowRedirection
Указывает, что этот командлет разрешает перенаправление этого подключения к альтернативному универсальному идентификатору ресурса (URI). По умолчанию PowerShell не перенаправляет подключения.
Этот параметр настраивает временное подключение, созданное для выполнения команды
Этот параметр появился в 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) должен быть полным.
Этот параметр настраивает временное подключение, созданное для выполнения команды
Формат этой строки:
<транспорт>://<Имя компьютера>:<порт>/<ApplicationName>
Значение по умолчанию: https://localhost:5985/WSMAN.
ЕслиconnectionUri
Если целевой компьютер перенаправляет подключение к другому 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, который однозначно идентифицирует сеанс на локальном или удаленном компьютере.
экземпляра
Идентификатор экземпляра сеанса хранится в свойстве 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
Задает дополнительные параметры сеанса.
Введите объект
Значения по умолчанию для параметров определяются значением переменной предпочтения $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 недоступен на порту, используемом для команды, команда завершается ошибкой.
Этот параметр настраивает временное подключение, созданное для выполнения команды
Этот параметр появился в Windows PowerShell 3.0.
Тип: | SwitchParameter |
Position: | Named |
Default value: | False |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
Входные данные
None
Входные данные в этот командлет невозможно передать.
Выходные данные
Примечания
- Этот командлет получает управляемые пользователем сеансы объектов 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 из текущего сеанса, используйте свойство доступности.
Значение доступности
Дополнительные сведения о значениях свойства состояния
Дополнительные сведения о значениях свойства доступности