次の方法で共有


Remove-PSSession

1 つ以上の 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 によって使用されていたリソースは解放されます。PSSession がリモート コンピューターに接続されている場合、Remove-PSSession はローカル コンピューターとリモート コンピューターの間の接続も閉じます。

PSSession を削除するには、セッションの Name、ComputerName、ID、または InstanceID を入力します。

PSSession を変数に保存した場合、セッション オブジェクトは変数に保持されますが、PSSession の状態は "Closed" になります。

パラメーター

-ComputerName <string[]>

指定されたコンピューターに接続されている PSSession を閉じます。ワイルドカードを使用できます。

1 つまたは複数のリモート コンピューターの NetBIOS 名、IP アドレス、または完全修飾ドメイン名を入力します。ローカル コンピューターを指定するには、コンピューター名、「localhost」、またはドット (.) を入力します。

必須

false

位置

1

既定値

パイプライン入力を許可する

true (ByPropertyName)

ワイルドカード文字を許可する

true

-Id <Int32[]>

指定された ID を持つ PSSession を閉じます。1 つ以上の ID をコンマで区切って入力するか、範囲演算子 (..) を使用して ID の範囲を指定します。

ID は、現在のセッション内の PSSession を一意に識別する整数です。InstanceId よりも覚えやすく入力も容易ですが、一意であるのは現在のセッション内のみです。PSSession の ID を検索するには、パラメーターを指定せずに Get-PSSession を使用します。

必須

true

位置

1

既定値

パイプライン入力を許可する

true (ByPropertyName)

ワイルドカード文字を許可する

false

-InstanceId <Guid[]>

指定されたインスタンス ID を持つ PSSession を閉じます。

インスタンス ID は、現在のセッション内の PSSession を一意に識別する GUID です。単一のコンピューターで複数のセッションが実行されている場合でも、InstanceID は一意です。

InstanceID は、PSSession を表すオブジェクトの InstanceID プロパティに保存されます。現在のセッションの PSSession の InstanceID を検索するには、「get-pssession | Format-Table Name, ComputerName, InstanceId」と入力します。

必須

false

位置

named

既定値

パイプライン入力を許可する

true (ByPropertyName)

ワイルドカード文字を許可する

false

-Name <string[]>

指定されたフレンドリ名の PSSession を閉じます。ワイルドカードを使用できます。

PSSession のフレンドリ名が一意ではない可能性があるため、Name パラメーターを使用するときは Remove-PSSession コマンドで WhatIf パラメーターまたは Confirm パラメーターも使用することを検討してください。

必須

false

位置

named

既定値

パイプライン入力を許可する

true (ByPropertyName)

ワイルドカード文字を許可する

true

-Session <PSSession[]>

閉じる PSSession のセッション オブジェクトを指定します。PSSessions を格納する変数を入力するか、New-PSSession コマンドや Get-PSSession コマンドなど、PSSessions を作成または取得するコマンドを入力します。パイプを使用して 1 つ以上のセッション オブジェクトを 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 に渡すことができます。

出力

None

Remove-PSSession はオブジェクトを返しません。

ID パラメーターは必須です。パラメーターを指定せずに、「remove-pssession」と入力することはできません。現在のセッション内のすべての PSSession を削除するには、「get-pssession | remove-pssession」と入力します。

PSSession は、リモート コンピューターへの固定接続を使用します。PSSession を作成して、データを共有する一連のコマンドを実行します。詳細については、「about_PSSessions」を参照してください。

PSSession は、現在のセッションに固有の接続です。セッションを終了すると、そのセッション内で作成された PSSession も強制的に閉じられます。

例 1

C:\PS>remove-pssession -id 1, 2

説明
-----------
このコマンドは、プロセス ID が 1 および 2 の PSSessions を削除します。





例 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 つのコマンドの形式は異なりますが、結果は同じです。





例 3

C:\PS>$r = get-pssession -computername Serv*

$r | remove-pssession

説明
-----------
これらのコマンドは、名前が "Serv" で始まるコンピューターに接続している PSSession を閉じます。





例 4

C:\PS>get-pssession | where {$_.port -eq 90} | remove-pssession

説明
-----------
このコマンドは、ポート 90 に接続している PSSession を閉じます。このコマンド形式を使用して、ComputerName、Name、InstanceID、および ID 以外のプロパティでも PSSession を指定することができます。





例 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

説明
-----------
これらのコマンドでは、インスタンス ID (RemoteRunspaceID) に基づいて PSSession を閉じる方法を示します。

最初のコマンドは、Get-PSsession コマンドレットを使用して、現在のセッション内の PSSession を取得します。このコマンドは、パイプライン演算子 (|) を使用して、PSSessions を Format-Table コマンドレット (エイリアス: ft) に送信し、ComputerName および InstanceID プロパティの書式設定を行います。AutoSize パラメーター ("auto") は、表示用に列を圧縮します。

結果の表示から、管理者は閉じる PSSession を特定し、その PSSession の InstanceID をコピーして、2 番目のコマンドに貼り付けることができます。

2 番目のコマンドは、Remove-PSSession コマンドレットを使用して、指定されたインスタンス ID を持つ PSSession を削除します。





例 6

C:\PS>function EndPSS { get-pssession | remove-pssession }

説明
-----------
この関数は、現在のセッションのすべての PSSession を削除します。この関数を Windows PowerShell プロファイルに追加しておくと、「endpss」と入力するだけですべてのセッションを削除できます。





関連項目

概念

about_PSSessions
about_Remote
New-PSSession
Get-PSSession
Enter-PSSession
Exit-PSSession
Invoke-Command