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


Remove-PSSession

Закрывает один или несколько сеансов PowerShell (PSSessions).

Синтаксис

Remove-PSSession
      [-Id] <Int32[]>
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Remove-PSSession
      [-Session] <PSSession[]>
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Remove-PSSession
      -ContainerId <String[]>
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Remove-PSSession
      -VMId <Guid[]>
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Remove-PSSession
      -VMName <String[]>
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Remove-PSSession
      -InstanceId <Guid[]>
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Remove-PSSession
      -Name <String[]>
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Remove-PSSession
      [-ComputerName] <String[]>
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]

Описание

Командлет Remove-PSSession закрывает сеансы PowerShell (PSSessions) в текущем сеансе. Он останавливает все команды, выполняемые в PSSessions, завершает psSession и освобождает ресурсы, которые использовал PSSession . Если PSSession подключен к удаленному компьютеру, этот командлет также закрывает подключение между локальными и удаленными компьютерами.

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

Если вы сохранили PSSession в переменной, объект сеанса остается в переменной, но состояние PSSession закрыто.

Примеры

Пример 1. Удаление сеансов по идентификатору

Remove-PSSession -Id 1, 2

Эта команда удаляет идентификаторы и 2идентификаторы 1 PSSessions.

Пример 2. Удаление всех сеансов в текущем сеансе

Get-PSSession | Remove-PSSession
Remove-PSSession -Session (Get-PSSession)
$s = Get-PSSession
Remove-PSSession -Session $s

Эти команды удаляют все psSessions в текущем сеансе. Хотя три формата команд отличаются, они действуют одинаково.

Пример 3. Закрытие сеансов по имени

$r = Get-PSSession -ComputerName Serv*
$r | Remove-PSSession

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

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

Get-PSSession | where {$_.port -eq 90} | Remove-PSSession

Эта команда закрывает psSessions , подключенные к порту 90. Этот формат команды можно использовать для идентификации PSSessions по свойствам, кроме ComputerName, Name, InstanceID и ID.

Пример 5. Закрытие сеанса по идентификатору экземпляра

Get-PSSession | Format-Table ComputerName, InstanceID  -AutoSize

ComputerName InstanceId
------------ ----------------
Server01     875d231b-2788-4f36-9f67-2e50d63bb82a
localhost    c065ffa0-02c4-406e-84a3-dacb0d677868
Server02     4699cdbc-61d5-4e0d-b916-84f82ebede1f
Server03     4e5a3245-4c63-43e4-88d0-a7798bfc2414
TX-TEST-01   fc4e9dfa-f246-452d-9fa3-1adbdd64ae85

Remove-PSSession -InstanceID fc4e9dfa-f246-452d-9fa3-1adbdd64ae85

Эти команды показывают, как закрыть PSSession на основе его идентификатора экземпляра или RemoteRunspaceID.

Первая команда использует Get-PSSession командлет для получения PSSessions в текущем сеансе. Он использует оператор конвейера (|) для отправки PSSessions Format-Table командлету, который форматирует их свойства ComputerName и InstanceID в таблице. Параметр AutoSize сжимает столбцы для отображения.

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

Вторая команда использует Remove-PSSession командлет для удаления PSSession с указанным идентификатором экземпляра.

Пример 6. Создание функции, которая удаляет все сеансы в текущем сеансе

Function EndPSS { Get-PSSession | Remove-PSSession }

Эта функция закрывает каждый PSSession в текущем сеансе. После добавления этой функции в профиль PowerShell удалите все сеансы, введите EndPSS.

Параметры

-ComputerName

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

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

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

-Confirm

Запрос подтверждения перед выполнением командлета.

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

-ContainerId

Задает массив идентификаторов контейнеров. Этот командлет удаляет сеансы для каждого из указанных контейнеров. docker ps Используйте команду, чтобы получить список идентификаторов контейнеров. Дополнительные сведения см. в справке для команды docker ps .

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

-Id

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

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

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

-InstanceId

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

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

Идентификатор экземпляра хранится в свойстве InstanceID объекта, представляющего PSSession. Чтобы найти Идентификатор экземпляра PSSessions в текущем сеансе, введите Get-PSSession | Format-Table Name, ComputerName, InstanceId.

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

-Name

Задает массив понятных имен сеансов. Этот командлет закрывает psSessions с указанными понятными именами. Можно использовать подстановочные знаки.

Так как понятное имя PSSession может не быть уникальным, при использовании параметра Name рекомендуется также использовать параметр WhatIf или Confirm в командеRemove-PSSession.

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

-Session

Указывает объекты сеанса для закрытия PSSessions . Введите переменную, содержащую PSSessions или команду, которая создает или получает psSessions, например New-PSSession команду или Get-PSSession команду. Вы также можете передать один или несколько объектов Remove-PSSessionсеанса в .

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

-VMId

Задает массив идентификаторов виртуальных машин. Этот командлет запускает интерактивный сеанс с каждой из указанных виртуальных машин. Чтобы просмотреть доступные виртуальные машины, используйте следующую команду:

Get-VM | Select-Object -Property Name, ID

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

-VMName

Указывает массив имен виртуальных машин. Этот командлет запускает интерактивный сеанс с каждой из указанных виртуальных машин. Чтобы просмотреть доступные виртуальные машины, используйте Get-VM командлет.

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

-WhatIf

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

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

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

PSSession

Объект сеанса можно передать в этот командлет.

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

None

Этот командлет не возвращает выходные данные.

Примечания

PowerShell включает следующие псевдонимы для Remove-PSSession:

  • Для всех платформ.

    • rsn
  • Параметр Id является обязательным. Чтобы удалить все psSessions в текущем сеансе, введите Get-PSSession | Remove-PSSession.

  • PsSession использует постоянное подключение к удаленному компьютеру. Создайте PSSession для выполнения ряда команд, которые совместно используют данные. Для получения дополнительных сведений введите Get-Help about_PSSessions.

  • PSSessions относятся к текущему сеансу. После завершения сеанса операции PSSessions, созданные в этом сеансе, принудительно закрываются.