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