Закрывает один или несколько сеансов Windows PowerShell (PSSession).
Синтаксис
Remove-PSSession [[-ComputerName] <string[]>] [-Confirm] [-WhatIf] [<CommonParameters>] Remove-PSSession [-Id] <Int32[]> [-Confirm] [-WhatIf] [<CommonParameters>] Remove-PSSession [-InstanceId <Guid[]>] [-Confirm] [-WhatIf] [<CommonParameters>] Remove-PSSession [-Name <string[]>] [-Confirm] [-WhatIf] [<CommonParameters>] Remove-PSSession [-Session] <PSSession[]> [-Confirm] [-WhatIf] [<CommonParameters>]
Описание
Командлет Remove-PSSession закрывает сеансы Windows PowerShell (PSSession) в текущем сеансе. Он останавливает все команды, выполняющиеся в сеансах PSSession, закрывает сеанс PSSession и освобождает ресурсы, используемые таким сеансом. Если сеанс PSSession подключен к удаленному компьютеру, командлет Remove-PSSession также закрывает подключение между локальным и удаленным компьютерами.
Чтобы удалить сеанс PSSession, введите имя сеанса, имя компьютера, идентификатор или идентификатор экземпляра сеанса (параметр Name, ComputerName, ID или InstanceID соответственно),
Если сеанс PSSession сохранен в переменной, объект сеанса остается в переменной, но состояние сеанса изменяется на "Closed".
Параметры
-ComputerName <string[]>
Закрывает сеансы PSSession, связанные с указанными компьютерами. Подстановочные знаки разрешены.
Введите имя NetBIOS, IP-адрес или полное доменное имя одного или нескольких удаленных компьютеров. Чтобы указать локальный компьютер, введите имя компьютера, "localhost" или точку (.).
Обязательно? |
false |
Позиция? |
1 |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
true (ByPropertyName) |
Принимать подстановочные знаки? |
true |
-Id <Int32[]>
Закрывает сеансы PSSession с указанными идентификаторами. Введите один или несколько идентификаторов (разделенных запятыми) или используйте оператор диапазона (..), чтобы задать диапазон идентификаторов.
Идентификатор — это целое значение, которое однозначно определяет сеанс PSSession в пределах текущего сеанса. Это значение проще запомнить и ввести, чем InstanceId, но оно уникально только в рамках текущего сеанса. Чтобы определить идентификатор сеанса PSSession, используйте команду Get-PSSession без параметров.
Обязательно? |
true |
Позиция? |
1 |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
true (ByPropertyName) |
Принимать подстановочные знаки? |
false |
-InstanceId <Guid[]>
Закрывает сеансы PSSession с указанными идентификаторами экземпляров.
Идентификатор экземпляра — это GUID, который однозначно определяет сеанс PSSession в пределах текущего сеанса. Идентификатор InstanceID является уникальным даже при выполнении нескольких сеансов на одном компьютере.
Идентификатор экземпляра InstanceID хранится в свойстве InstanceID объекта, представляющего сеанс PSSession. Чтобы определить идентификаторы экземпляров InstanceID сеансов PSSession в текущем сеансе, введите команду "Get-PSSession | Format-Table Name, ComputerName, InstanceId".
Обязательно? |
false |
Позиция? |
named |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
true (ByPropertyName) |
Принимать подстановочные знаки? |
false |
-Name <string[]>
Закрывает сеансы PSSession с указанными понятными именами. Подстановочные знаки разрешены.
Поскольку понятное имя сеанса PSSession может быть не уникальным, при использовании параметра Name следует рассмотреть возможность использования параметра WhatIf или Confirm в команде Remove-PSSession.
Обязательно? |
false |
Позиция? |
named |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
true (ByPropertyName) |
Принимать подстановочные знаки? |
true |
-Session <PSSession[]>
Указывает объекты сеансов PSSession, которые требуется закрыть. Введите переменную, содержащую объекты PSSession, либо команду, создающую или получающую объекты PSSession, например New-PSSession или Get-PSSession. Кроме того, можно передать один или несколько объектов сеансов в Remove-PSSession по конвейеру.
Обязательно? |
true |
Позиция? |
1 |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
true (ByValue, ByPropertyName) |
Принимать подстановочные знаки? |
false |
-Confirm
Запрашивает подтверждение перед выполнением команды.
Обязательно? |
false |
Позиция? |
named |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
false |
Принимать подстановочные знаки? |
false |
-WhatIf
Описывает, что произойдет при выполнении команды, без ее фактического выполнения.
Обязательно? |
false |
Позиция? |
named |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
false |
Принимать подстановочные знаки? |
false |
<CommonParameters>
Данный командлет поддерживает общие параметры -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer и -OutVariable. Дополнительные сведения см. в разделе about_Commonparameters.
Ввод и вывод
Входным типом является тип объектов, которые можно передавать командлету по конвейеру. Возвращаемым типом является тип объектов, возвращаемых командлетом.
Входные данные |
System.Management.Automation.Runspaces.PSSession Можно передать объект сеанса командлету Remove-PSSession по конвейеру. |
Выходные данные |
Нет Командлет Remove-PSSession не возвращает никаких объектов. |
Примечания
Параметр ID является обязательным. Нельзя вводить команду remove-pssession без параметров. Чтобы удалить все сеансы PSSession в текущем сеансе, введите команду "Get-PSSession | remove-pssession".
В сеансе PSSession используется постоянное подключение к удаленному компьютеру. Сеанс PSSession следует создать для выполнения последовательности команд, работающих с общими данными. Дополнительные сведения см. в разделе about_PSSessions.
Сеансы PSSession относятся к текущему сеансу. При закрытии сеанса созданные в нем сеансы PSSession принудительно закрываются.
Пример 1
C:\PS>remove-pssession -id 1, 2 Описание ----------- Эта команда удаляет сеансы PSSession с идентификаторами "1" и "2".
Пример 2
C:\PS>get-pssession | remove-pssession C:\PS> remove-pssession -session (get-pssession) C:\PS> $s = get-pssession C:\PS> remove-pssession -session $s". Описание ----------- Эти команды удаляют все сеансы PSSession в текущем сеансе. Несмотря на то что три команды имеют различный формат, они выполняют одни и те же действия.
Пример 3
C:\PS>$r = get-pssession -computername Serv* $r | remove-pssession Описание ----------- Эти команды закрывают сеансы PSSession, связанные с компьютерами, имена которых начинаются на "Serv".
Пример 4
C:\PS>get-pssession | where {$_.port -eq 90} | remove-pssession Описание ----------- Эта команда закрывает сеансы PSSession, подключенные к порту 90. С помощью этого формата команды можно задать сеансы PSSession, используя свойства, отличные от ComputerName, Name, InstanceID и ID.
Пример 5
C:\PS>get-pssession | ft computername, instanceID -auto 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 C:\PS> remove-pssession -InstanceID fc4e9dfa-f246-452d-9fa3-1adbdd64ae85 Описание ----------- Эти команды закрывают сеанс PSSession, используя его идентификатор экземпляра (RemoteRunspaceID). Первая команда получает сведения о сеансах PSSession в текущем сеансе с использованием командлета Get-PSsession. С помощью оператора конвейера (|) сеансы PSSession передаются командлету Format-Table (псевдоним: ft), который форматирует их свойства ComputerName и InstanceID в виде таблицы. Параметр AutoSize ("auto") сжимает столбцы при отображении. В отображаемых результатах можно найти сеанс PSSession, который требуется закрыть, а затем скопировать и вставить его свойство InstanceID во вторую команду. Вторая команда использует командлет Remove-PSSession для удаления сеанса PSSession с указанным идентификатором экземпляра.
Пример 6
C:\PS>function EndPSS { get-pssession | remove-pssession } Описание ----------- Эта функция удаляет все сеансы PSSession в текущем сеансе. После добавления этой функции в профиль Windows PowerShell для удаления всех сеансов достаточно будет ввести "endpss".
См. также