New-PSSession
ローカル コンピューターまたはリモート コンピューターへの永続的な接続を作成します。
構文
ComputerName (既定)
New-PSSession
[[-ComputerName] <String[]>]
[-Credential <PSCredential>]
[-Name <String[]>]
[-EnableNetworkAccess]
[-ConfigurationName <String>]
[-Port <Int32>]
[-UseSSL]
[-ApplicationName <String>]
[-ThrottleLimit <Int32>]
[-SessionOption <PSSessionOption>]
[-Authentication <AuthenticationMechanism>]
[-CertificateThumbprint <String>]
[<CommonParameters>]
Uri
New-PSSession
[-ConnectionUri] <Uri[]>
[-Credential <PSCredential>]
[-Name <String[]>]
[-EnableNetworkAccess]
[-ConfigurationName <String>]
[-ThrottleLimit <Int32>]
[-AllowRedirection]
[-SessionOption <PSSessionOption>]
[-Authentication <AuthenticationMechanism>]
[-CertificateThumbprint <String>]
[<CommonParameters>]
VMId
New-PSSession
[-VMId] <Guid[]>
-Credential <PSCredential>
[-Name <String[]>]
[-ConfigurationName <String>]
[-ThrottleLimit <Int32>]
[<CommonParameters>]
VMName
New-PSSession
-Credential <PSCredential>
-VMName <String[]>
[-Name <String[]>]
[-ConfigurationName <String>]
[-ThrottleLimit <Int32>]
[<CommonParameters>]
Session
New-PSSession
[[-Session] <PSSession[]>]
[-Name <String[]>]
[-EnableNetworkAccess]
[-ThrottleLimit <Int32>]
[<CommonParameters>]
ContainerId
New-PSSession
-ContainerId <String[]>
[-Name <String[]>]
[-ConfigurationName <String>]
[-RunAsAdministrator]
[-ThrottleLimit <Int32>]
[<CommonParameters>]
UseWindowsPowerShellParameterSet
New-PSSession
[-Name <String[]>]
[-UseWindowsPowerShell]
[<CommonParameters>]
SSHHost
New-PSSession
[-HostName] <String[]>
[-Name <String[]>]
[-Port <Int32>]
[-UserName <String>]
[-KeyFilePath <String>]
[-Subsystem <String>]
[-ConnectingTimeout <Int32>]
[-SSHTransport]
[-Options <Hashtable>]
[<CommonParameters>]
SSHHostHashParam
New-PSSession
-SSHConnection <Hashtable[]>
[-Name <String[]>]
[<CommonParameters>]
説明
New-PSSession コマンドレットは、ローカル コンピューターまたはリモート コンピューターに PowerShell セッション (PSSession) を作成します。
PSSessionを作成すると、PowerShell はリモート コンピューターへの永続的な接続を確立します。
PSSession を使用して、関数や変数の値など、データを共有する複数のコマンドを実行します。
PSSession でコマンドを実行するには、Invoke-Command コマンドレットを使用します。
PSSession を使用してリモート コンピューターと直接対話するには、Enter-PSSession コマンドレットを使用します。 詳細については、about_PSSessionsを参照してください。
Enter-PSSessionまたはInvoke-Commandの ComputerName パラメーターを使用して PSSession を作成せずに、リモート コンピューターでコマンドを実行できます。
ComputerName パラメーターを使用すると、PowerShell によってコマンドに使用される一時的な接続が作成され、その後閉じられます。
PowerShell 6.0 以降では、ローカル コンピューターで SSH を使用でき、リモート コンピューターが PowerShell SSH エンドポイントで構成されている場合は、Secure Shell (SSH) を使用してリモート コンピューターへの接続を確立し、セッションを作成できます。 SSH ベースの PowerShell リモート セッションの利点は、複数のプラットフォーム (Windows、Linux、macOS) で動作できることです。 SSH ベースのセッションでは、 HostName または SSHConnection パラメーター セットを使用して、リモート コンピューターと関連する接続情報を指定します。 PowerShell SSH リモート処理を設定する方法の詳細については、「SSH経由の PowerShell リモート処理」を参照してください。
注
サーバー証明書が信頼されていない HTTPS エンドポイント (自己署名証明書など) で Linux または macOS クライアントから WSMan リモート処理を使用する場合。 接続を正常に確立するには、skipCACheck 値と SkipCNCheck 値を$trueに設定した PSSessionOption を指定する必要があります。 これは、サーバー証明書とターゲット システムへのネットワーク接続を特定できる環境にある場合にのみ行います。
例
例 1: ローカル コンピューターでセッションを作成する
$s = New-PSSession
このコマンドは,ローカル・コンピューターに新しい PSSession を作成し, PSSession を $s 変数に保管します。
これで、この PSSession を使用して、ローカル コンピューターでコマンドを実行できるようになりました。
例 2: リモート コンピューターでセッションを作成する
$Server01 = New-PSSession -ComputerName Server01
このコマンドは、Server01 コンピューターに新しい PSSession を作成し、 $Server01 変数に保存します。
複数の PSSession オブジェクトを作成する場合は、それらを便利な名前の変数に割り当てます。 これは、後続のコマンドで PSSession オブジェクトを管理するのに役立ちます。
例 3: 複数のコンピューターでセッションを作成する
$s1, $s2, $s3 = New-PSSession -ComputerName Server01, Server02, Server03
このコマンドは、ComputerName パラメーターで指定された各コンピューターに 1 つずつ、合計 3 つの PSSession オブジェクトを作成します。
このコマンドでは、代入演算子 (=) を使用して、新しい PSSession オブジェクトを変数 ( $s1、 $s2、 $s3) に割り当てます。
$s1に Server01 PSSession、$s2に Server02 PSSession、$s3に Server03 PSSession を割り当てます。
複数のオブジェクトを一連の変数に割り当てると、PowerShell は各オブジェクトを系列内の変数にそれぞれ割り当てます。 変数よりも多くのオブジェクトがある場合、残りのすべてのオブジェクトは最後の変数に割り当てられます。 オブジェクトよりも多くの変数がある場合、残りの変数は空です ($null)。
例 4: 指定したポートでセッションを作成する
New-PSSession -ComputerName Server01 -Port 8081 -UseSSL -ConfigurationName E12
このコマンドは、サーバー ポート 8081に接続し、SSL プロトコルを使用する新しい PSSession を Server01 コンピューターに作成します。 新しい PSSession では、E12と呼ばれる代替セッション構成が使用されます。
ポートを設定する前に、リモート コンピューター上の WinRM リスナーをポート 8081 でリッスンするように構成する必要があります。 詳細については、 Port パラメータの説明を参照してください。
例 5: 既存のセッションに基づいてセッションを作成する
New-PSSession -Session $s -Credential Domain01\User01
このコマンドは、既存の PSSession と同じプロパティを持つ PSSession を作成します。 このコマンド形式は、既存の PSSession のリソースが使い果たされ、要求の一部をオフロードするために新しい PSSession が必要な場合に使用できます。
このコマンドは、New-PSSession の Session パラメーターを使用して、$s変数に保存された PSSession を指定します。
Domain1\Admin01 ユーザーの資格情報を使用してコマンドを完了します。
例 6: 別のドメインでグローバルスコープのセッションを作成する
$Global:s = New-PSSession -ComputerName Server1.Domain44.Corpnet.Fabrikam.com -Credential Domain01\Admin01
この例では、別のドメインのコンピューターでグローバル スコープを持つ PSSession を作成する方法を示します。
既定では、コマンド ラインで作成された PSSession オブジェクトはローカル スコープで作成され、スクリプトで作成された PSSession オブジェクトはスクリプト スコープです。
グローバル スコープの PSSession を作成するには、新しい PSSession を作成し、グローバル スコープにキャストされる変数に PSSession を格納します。 この場合、 $s 変数はグローバル スコープにキャストされます。
このコマンドでは、 ComputerName パラメーターを使用してリモート コンピューターを指定します。 コンピューターはユーザー アカウントとは異なるドメインにあるため、コンピューターのフル ネームはユーザーの資格情報と共に指定されます。
例 7: 多数のコンピューターのセッションを作成する
$rs = Get-Content C:\Test\Servers.txt | New-PSSession -ThrottleLimit 50
このコマンドは、Servers.txt ファイルにリストされている 200 台の各コンピューターに PSSession を作成し、結果の PSSession を $rs 変数に格納します。
PSSession オブジェクトには、50のスロットル制限があります。
このコマンド形式は、コンピュータの名前がデータベース、スプレッドシート、テキストファイル、またはその他のテキスト変換可能な形式で保存されている場合に使用できます。
例 8: URI を使用してセッションを作成する
$s = New-PSSession -Uri http://Server01:91/NewSession -Credential Domain01\User01
このコマンドは、Server01 コンピューターに PSSession を作成し、 $s 変数に格納します。
URI パラメータを使用して、トランスポート プロトコル、リモート コンピュータ、ポート、および代替セッション構成を指定します。 また、 Credential パラメーターを使用して、リモート コンピューター上でセッションを作成するアクセス許可を持つユーザー アカウントを指定します。
例 9: 一連のセッションでバックグラウンド・ジョブを実行する
$s = New-PSSession -ComputerName (Get-Content Servers.txt) -Credential Domain01\Admin01 -ThrottleLimit 16
Invoke-Command -Session $s -ScriptBlock {Get-Process powershell} -AsJob
これらのコマンドは、 一連の PSSession オブジェクトを作成し、各 PSSession オブジェクトでバックグラウンド ジョブを実行します。
最初のコマンドは、Servers.txt ファイルに一覧表示されている各コンピューターに新しい PSSession を作成します。
New-PSSession コマンドレットを使用して PSSession を作成します。
ComputerName パラメーターの値は、Get-Content コマンドレットを使用して、Servers.txt ファイルのコンピューター名の一覧を取得するコマンドです。
このコマンドでは 、Credential パラメーターを使用して、ドメイン管理者のアクセス許可を持つ PSSession オブジェクトを作成します。 また、ThrottleLimit パラメーターを使用して、同時接続を 16 するようにコマンドを制限します。 このコマンドは、 PSSession オブジェクトを $s 変数に保存します。
2 番目のコマンドでは、Invoke-Command コマンドレットの AsJob パラメーターを使用して、$sの各 PSSession オブジェクトで Get-Process powershell コマンドを実行するバックグラウンド ジョブを開始します。
PowerShell バックグラウンド ジョブの詳細については、「about_Jobs と about_Remote_Jobs」を参照してください。
例 10: URI を使用してコンピューターのセッションを作成する
New-PSSession -ConnectionURI https://management.exchangelabs.com/Management
このコマンドは、コンピューター名ではなく URI で指定されたコンピューターに接続する PSSession オブジェクトを作成します。
例 11: セッション・オプションの作成
$so = New-PSSessionOption -SkipCACheck
New-PSSession -ConnectionUri https://management.exchangelabs.com/Management -SessionOption $so -Credential Server01\Admin01
この例では、セッション オプション オブジェクトを作成し、 SessionOption パラメーターを使用する方法を示します。
最初のコマンドでは、 New-PSSessionOption コマンドレットを使用してセッション オプションを作成します。 結果の SessionOption オブジェクトが $so 変数に保存されます。
2 番目のコマンドは、新しいセッションでオプションを使用します。 このコマンドでは、 New-PSSession コマンドレットを使用して新しいセッションを作成します。
SessionOption パラメーターの値は、$so変数の SessionOption オブジェクトです。
例 12: SSH を使用してセッションを作成する
New-PSSession -HostName UserA@LinuxServer01
この例では、Secure Shell (SSH) を使用して新しい PSSession を作成する方法を示します。 リモート コンピューターでパスワードの入力を求める SSH が構成されている場合は、パスワード プロンプトが表示されます。 それ以外の場合は、SSH キー ベースのユーザー認証を使用する必要があります。
例 13: SSH を使用してセッションを作成し、ポートとユーザー認証キーを指定する
New-PSSession -HostName UserA@LinuxServer01:22 -KeyFilePath C:\<path>\userAKey_rsa
この例では、Secure Shell (SSH) を使用して PSSession を作成する方法を示します。 Port パラメーターを使用して使用するポートを指定し、KeyFilePath パラメーターを使用して、リモート コンピューターでユーザーを識別および認証するために使用する RSA キーを指定します。
例 14: SSH を使用して複数のセッションを作成する
$sshConnections = @(
@{
HostName = 'WinServer1'
UserName = 'domain\userA'
KeyFilePath = 'C:\Users\UserA\id_rsa'
}
@{
HostName = 'UserB@LinuxServer5'
KeyFilePath = 'C:\UserB\<path>\id_rsa'
}
)
New-PSSession -SSHConnection $sshConnections
この例では、Secure Shell (SSH) と SSHConnection パラメーター セットを使用して複数のセッションを作成する方法を示します。 SSHConnection パラメーターは、各セッションの接続情報を含むハッシュ テーブルの配列を受け取ります。 この例では、ターゲット リモート コンピューターでキーベースのユーザー認証をサポートするように SSH が構成されている必要があることに注意してください。
例 15: SSH オプションを使用して新しいセッションを作成する
$options = @{
Port=22
User = 'UserB'
Host = 'LinuxServer5'
}
New-PSSession -KeyFilePath '/Users/UserB/id_rsa' -Options $options
この例では、SSH オプションを使用して、リモート Linux ベースのマシンに新しい SSH ベースのセッションを作成する方法を示します。
Options パラメーターは、リモート システムへの接続を確立した基になる ssh コマンドにオプションとして渡される値のハッシュテーブルを受け取ります。
パラメーター
-AllowRedirection
このコマンドレットによって、代替の Uniform Resource Identifier (URI) へのこの接続のリダイレクトが許可されることを示します。
ConnectionURI パラメーターを使用すると、リモート宛先は別の URI にリダイレクトする命令を返すことができます。 既定では、PowerShell は接続をリダイレクトしませんが、このパラメーターを使用して接続をリダイレクトできます。
MaximumConnectionRedirectionCount セッション オプションの値を変更して、接続をリダイレクトする回数を制限することもできます。
コマンドレットの New-PSSessionOption パラメーターを使用するか、$PSSessionOption 基本設定変数の MaximumConnectionRedirectionCount プロパティを設定します。 既定値は 5 です。
パラメーターのプロパティ
| 型: | SwitchParameter |
| 規定値: | False |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
Uri
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-ApplicationName
接続 URI のアプリケーション名セグメントを指定します。 コマンドで ConnectionURI パラメーターを使用しない場合は、このパラメーターを使用してアプリケーション名を指定します。
既定値は、ローカル コンピューターの $PSSessionApplicationName 基本設定変数の値です。 この基本設定変数が定義されていない場合、既定値は WSMAN。 この値は、ほとんどの用途に適しています。 詳細については、about_Preference_Variablesを参照してください。
WinRM サービスでは、アプリケーション名を使用して、接続要求をサービスするリスナーを選択します。 このパラメーターの値は、リモート コンピューター上のリスナーの URLPrefix プロパティの値と一致する必要があります。
パラメーターのプロパティ
| 型: | String |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
ComputerName
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | True |
| 残りの引数からの値: | False |
-Authentication
ユーザーの資格情報を認証するために使用するメカニズムを指定します。 このパラメーターに使用できる値は次のとおりです。
DefaultBasicCredsspDigestKerberosNegotiateNegotiateWithImplicitCredential
既定値は Default です。
このパラメーターの値の詳細については、「AuthenticationMechanism 列挙を参照してください。
注意事項
資格情報セキュリティ サポート プロバイダー (CredSSP) 認証は、ユーザー資格情報が認証されるリモート コンピューターに渡される認証で、リモート ネットワーク共有へのアクセスなど、複数のリソースで認証を必要とするコマンド用に設計されています。 このメカニズムにより、リモート操作のセキュリティ リスクが高まります。 リモート コンピューターが侵害された場合、それに渡される資格情報を使用してネットワーク セッションを制御できます。
パラメーターのプロパティ
| 型: | AuthenticationMechanism |
| 規定値: | None |
| 指定可能な値: | Default, Basic, Negotiate, NegotiateWithImplicitCredential, Credssp, Digest, Kerberos |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
ComputerName
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
Uri
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-CertificateThumbprint
このアクションを実行するアクセス許可を持つユーザー アカウントのデジタル公開キー証明書 (X509) を指定します。 証明書の拇印を入力します。
証明書は、クライアント証明書ベースの認証で使用されます。 これらはローカル ユーザー アカウントにのみマップできます。ドメイン アカウントでは機能しません。
証明書を取得するには、PowerShell Cert: ドライブの Get-Item または Get-ChildItem コマンドを使用します。
パラメーターのプロパティ
| 型: | String |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
ComputerName
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
Uri
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-ComputerName
コンピューターの名前の配列を指定します。 このコマンドレットは、指定したコンピューターへの永続的な接続 (PSSession) を作成します。 複数のコンピューター名を入力 New-PSSession 、コンピューターごとに 1 つずつ、複数の PSSession オブジェクトが作成されます。 既定値はローカル コンピューターです。
1 台以上のリモート コンピューターの NetBIOS 名、IP アドレス、または完全修飾ドメイン名を入力します。 ローカル コンピューターを指定するには、コンピューター名、localhost、またはドット (.) を入力します。 コンピューターがユーザーとは異なるドメインにある場合は、完全修飾ドメイン名が必要です。
コンピューター名を引用符で囲んでパイプ処理して、 New-PSSessionすることもできます。
ComputerName パラメーターの値に IP アドレスを使用するには、コマンドに Credential パラメーターを含める必要があります。 また、HTTPS トランスポート用にコンピューターを構成するか、リモート コンピューターの IP アドレスをローカル コンピューターの WinRM TrustedHosts リストに含める必要があります。 TrustedHosts の一覧にコンピューター名を追加する手順については、about_Remote_Troubleshootingの「信頼されたホストの一覧にコンピューターを追加する方法」を参照してください。
ComputerName パラメーターの値にローカル コンピューターを含めるには、[管理者として実行] オプションを使用して Windows PowerShell を起動します。
パラメーターのプロパティ
| 型: | String[] |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
| Aliases: | Cn |
パラメーター セット
ComputerName
| 配置: | 0 |
| 必須: | False |
| パイプラインからの値: | True |
| プロパティ名別のパイプラインからの値: | True |
| 残りの引数からの値: | False |
-ConfigurationName
新しい PSSessionに使用されるセッション構成を指定します。
セッション構成の構成名または完全修飾リソース URI を入力します。 構成名のみを指定すると、次のスキーマ URI が先頭に付加されます: http://schemas.microsoft.com/PowerShell。
セッションのセッション構成は、リモート コンピューターにあります。 指定したセッション構成がリモート・コンピューターに存在しない場合、コマンドは失敗します。
既定値は、ローカル コンピューターの $PSSessionConfigurationName 基本設定変数の値です。 この基本設定変数が設定されていない場合、既定値は Microsoft.PowerShell です。 詳細については、about_Preference_Variablesを参照してください。
パラメーターのプロパティ
| 型: | String |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
ComputerName
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | True |
| 残りの引数からの値: | False |
Uri
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | True |
| 残りの引数からの値: | False |
VMId
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | True |
| 残りの引数からの値: | False |
VMName
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | True |
| 残りの引数からの値: | False |
ContainerId
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | True |
| 残りの引数からの値: | False |
-ConnectingTimeout
最初の SSH 接続が完了するまでの時間をミリ秒単位で指定します。 指定した時間内に接続が完了しない場合は、エラーが返されます。
このパラメーターは PowerShell 7.2 で導入されました
パラメーターのプロパティ
| 型: | Int32 |
| 規定値: | unlimited |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
SSHHost
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-ConnectionUri
セッションの接続エンドポイントを定義する URI を指定します。 URI は完全修飾されている必要があります。 この文字列の形式は次のとおりです。
<Transport>://<ComputerName>:<Port>/<ApplicationName>
既定値は次のとおりです。
http://localhost:5985/WSMAN
ConnectionURI を指定しない場合は、UseSSL、ComputerName、Port、ApplicationName の各パラメーターを使用して ConnectionURI の値を指定できます。
URI のトランスポート セグメントの有効な値は、HTTP と HTTPS です。 トランスポート セグメントで接続 URI を指定してもポートを指定しない場合、セッションは標準ポート (HTTP の場合は 80、HTTPS の場合は 443) で作成されます。 PowerShell リモート処理に既定のポートを使用するには、HTTP のポート 5985 または HTTPS の 5986 を指定します。
宛先コンピューターが接続を別の URI にリダイレクトする場合、コマンドで AllowRedirection パラメーターを使用しない限り、PowerShell はリダイレクトを禁止します。
パラメーターのプロパティ
| 型: | Uri[] |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
| Aliases: | URI, CU |
パラメーター セット
Uri
| 配置: | 0 |
| 必須: | True |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | True |
| 残りの引数からの値: | False |
-ContainerId
コンテナーの ID の配列を指定します。 このコマンドレットは、指定された各コンテナーとの対話型セッションを開始します。
docker ps コマンドを使用して、コンテナー ID の一覧を取得します。 詳細については、docker ps コマンドのヘルプを参照してください。
パラメーターのプロパティ
| 型: | String[] |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
ContainerId
| 配置: | Named |
| 必須: | True |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | True |
| 残りの引数からの値: | False |
-Credential
このアクションを実行するアクセス許可を持つユーザー アカウントを指定します。 既定値は現在のユーザーです。
User01 や Domain01\User01などのユーザー名を入力するか、 コマンドレットによって生成された Get-Credential オブジェクトを入力します。 ユーザー名を入力すると、パスワードの入力を求められます。
資格情報は PSCredential オブジェクトに格納され、パスワードは SecureStringとして格納されます。
注
SecureString データ保護についての詳細は、「SecureString はどのくらい安全ですか? 」を参照してください。.
パラメーターのプロパティ
| 型: | PSCredential |
| 規定値: | Current user |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
ComputerName
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | True |
| 残りの引数からの値: | False |
Uri
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | True |
| 残りの引数からの値: | False |
VMId
| 配置: | Named |
| 必須: | True |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | True |
| 残りの引数からの値: | False |
VMName
| 配置: | Named |
| 必須: | True |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | True |
| 残りの引数からの値: | False |
-EnableNetworkAccess
このコマンドレットが、ループバック セッションに対話型セキュリティ トークンを追加することを示します。 対話型トークンを使用すると、他のコンピューターからデータを取得するコマンドをループバック セッションで実行できます。 たとえば、リモート コンピューターからローカル コンピューターに XML ファイルをコピーするコマンドをセッションで実行できます。
ループバック セッションは、同じコンピューターで開始および終了する PSSession です。 ループバック セッションを作成するには、 ComputerName パラメーターを省略するか、値をドット (.)、 localhost、またはローカル コンピューターの名前に設定します。
既定では、このコマンドレットはネットワーク トークンを使用してループバック セッションを作成しますが、これにより、リモート コンピューターに対する認証に十分なアクセス許可が提供されない可能性があります。
EnableNetworkAccess パラメーターは、ループバック セッションでのみ有効です。 リモート コンピューター セッションを作成するときに EnableNetworkAccess を使用すると、コマンドは成功しますが、パラメーターは無視されます。
セッション資格情報を他のコンピューターに委任する Authentication パラメーターのCredSSP値を使用して、ループバック セッションでリモート アクセスを有効にすることもできます。
悪意のあるアクセスからコンピューターを保護するために、対話型トークン ( EnableNetworkAccess パラメーターを使用して作成されたトークン) を持つ切断されたループバック セッションは、セッションが作成されたコンピューターからのみ再接続できます。 CredSSP 認証を使用する切断されたセッションは、他のコンピューターから再接続できます。 詳細については、Disconnect-PSSessionを参照してください。
このパラメーターは PowerShell 3.0 で導入されました。
パラメーターのプロパティ
| 型: | SwitchParameter |
| 規定値: | False |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
ComputerName
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
Uri
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
Session
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-HostName
Secure Shell (SSH) ベースの接続のコンピューター名の配列を指定します。 これは、リモート コンピューターへの接続が Windows WinRM ではなく SSH を使用して行われる点を除き、ComputerName パラメーターに似ています。
このパラメーターは、PowerShell 6.0 で導入されました。
パラメーターのプロパティ
| 型: | String[] |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
SSHHost
| 配置: | 0 |
| 必須: | True |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-KeyFilePath
リモート コンピューターでユーザーを認証するために Secure Shell (SSH) によって使用されるキー ファイル パスを指定します。
SSH を使用すると、基本パスワード認証の代わりに、秘密キーまたは公開キーを使用してユーザー認証を実行できます。 リモート コンピューターがキー認証用に構成されている場合、このパラメーターを使用して、ユーザーを識別するキーを指定できます。
このパラメーターは、PowerShell 6.0 で導入されました。
パラメーターのプロパティ
| 型: | String |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
| Aliases: | IdentityFilePath |
パラメーター セット
SSHHost
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-Name
PSSession のフレンドリ名を指定します。
Get-PSSessionやEnter-PSSessionなどの他のコマンドレットを使用する場合は、この名前を使用して PSSession を参照できます。 名前は、コンピューターまたは現在のセッションに対して一意である必要はありません。
パラメーターのプロパティ
| 型: | String[] |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-Options
リモート SSH ベースのセッションに接続するときに使用される SSH オプションのハッシュテーブルを指定します。 使用可能なオプションは、unix ベースのバージョンの ssh コマンドでサポートされている任意の値です。
パラメーターによって明示的に渡された値は、Options ハッシュテーブルで渡された値よりも優先されます。 たとえば、ポート パラメーターを使用すると、Port ハッシュテーブルで渡された キーと値のペアがオーバーライドされます。
パラメーターのプロパティ
| 型: | Hashtable |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
SSHHost
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-Port
この接続に使用されるリモート コンピューター上のネットワーク ポートを指定します。 リモートコンピューターに接続するには、接続に使用するポートでリモートコンピューターが待機している必要があります。 既定のポートは 5985(HTTP の WinRM ポート)、5986(HTTPS の WinRM ポート) です。
別のポートを使用する前に、そのポートでリッスンするようにリモート コンピューター上の WinRM リスナーを構成する必要があります。 リスナーを構成するには、次のコマンドを使用します。
winrm delete winrm/config/listener?Address=*+Transport=HTTPwinrm create winrm/config/listener?Address=*+Transport=HTTP @{Port="\<port-number\>"}
必要な場合を除き、Port パラメーターは使用しないでください。 コマンドのポート設定は、コマンドを実行するすべてのコンピューターまたはセッションに適用されます。 代替ポート設定により、コマンドがすべてのコンピューターで実行できなくなる可能性があります。
パラメーターのプロパティ
| 型: | Int32 |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
ComputerName
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
SSHHost
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-RunAsAdministrator
PSSession が管理者として実行されることを示します。
パラメーターのプロパティ
| 型: | SwitchParameter |
| 規定値: | False |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
ContainerId
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-Session
このコマンドレットが新しい PSSession のモデルとして使用する PSSession オブジェクトの配列を指定します。 このパラメーターは、指定した PSSession オブジェクトと同じプロパティを持つ新しい PSSession オブジェクトを作成します。
PSSession オブジェクトを含む変数、または PSSession オブジェクトを作成または取得するコマンド (New-PSSession、Get-PSSession コマンドなど) を入力します。
結果の PSSession オブジェクトは、元のオブジェクトと同じコンピューター名、アプリケーション名、接続 URI、ポート、構成名、スロットル制限、および Secure Sockets Layer (SSL) 値を持ちますが、表示名、ID、およびインスタンス ID (GUID) は異なります。
パラメーターのプロパティ
| 型: | |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
Session
| 配置: | 0 |
| 必須: | False |
| パイプラインからの値: | True |
| プロパティ名別のパイプラインからの値: | True |
| 残りの引数からの値: | False |
-SessionOption
セッションの詳細オプションを指定します。
コマンドレットを使用して作成するなど、New-PSSessionOption オブジェクトを入力するか、キーがセッション オプション名で値がセッション オプション値であるハッシュ テーブルを入力します。
オプションの既定値は、$PSSessionOption 基本設定変数の値 (設定されている場合) によって決まります。 それ以外の場合、既定値はセッション構成で設定されたオプションによって確立されます。
セッション オプションの値は、$PSSessionOption 基本設定変数およびセッション構成で設定されたセッションの既定値よりも優先されます。 ただし、セッション構成で設定された最大値、クォータ、または制限よりも優先されません。
デフォルト値を含むセッション・オプションの説明については、New-PSSessionOptionを参照してください。
$PSSessionOption 基本設定変数の詳細については、about_Preference_Variablesを参照してください。 セッション構成の詳細については、「about_Session_Configurations」を参照してください。
パラメーターのプロパティ
| 型: | PSSessionOption |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
ComputerName
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
Uri
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-SSHConnection
このパラメーターはハッシュテーブルの配列を受け取ります。各ハッシュテーブルには、Secure Shell (SSH) 接続 (HostName、 Port、 UserName、 KeyFilePath) を確立するために必要な 1 つ以上の接続パラメーターが含まれています。
ハッシュテーブル接続パラメーターは、 SSHHost パラメーター セットに対して定義されているのと同じです。
SSHConnection パラメーターは、各セッションに異なる接続情報が必要な複数のセッションを作成する場合に便利です。
このパラメーターは、PowerShell 6.0 で導入されました。
パラメーターのプロパティ
| 型: | |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
SSHHostHashParam
| 配置: | Named |
| 必須: | True |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-SSHTransport
Secure Shell (SSH) を使用してリモート接続が確立されていることを示します。
既定では、PowerShell は Windows WinRM を使用してリモート コンピューターに接続します。 このスイッチは、SSH ベースのリモート接続を確立するために、PowerShell で HostName パラメーター セットを使用するように強制します。
このパラメーターは、PowerShell 6.0 で導入されました。
パラメーターのプロパティ
| 型: | SwitchParameter |
| 規定値: | False |
| 指定可能な値: | true |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
SSHHost
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-Subsystem
新しい PSSessionに使用される SSH サブシステムを指定します。
これは、 sshd_configで定義されているターゲットで使用するサブシステムを指定します。 サブシステムは、定義済みのパラメーターを使用して PowerShell の特定のバージョンを開始します。 指定したサブシステムがリモート コンピューターに存在しない場合、コマンドは失敗します。
このパラメーターを使用しない場合、既定値は powershell サブシステムです。
パラメーターのプロパティ
| 型: | String |
| 規定値: | powershell |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
SSHHost
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | True |
| 残りの引数からの値: | False |
-ThrottleLimit
このコマンドを実行するために確立できる同時接続の最大数を指定します。
このパラメーターを省略するか、0 (ゼロ) の値を入力すると、既定値の 32が使用されます。
スロットル制限は、セッションまたはコンピューターではなく、現在のコマンドにのみ適用されます。
パラメーターのプロパティ
| 型: | Int32 |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
ComputerName
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
Uri
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
VMId
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
VMName
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
Session
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
ContainerId
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-UserName
リモート コンピューターでセッションを作成するために使用するアカウントのユーザー名を指定します。 ユーザー認証方法は、リモート コンピューターでの Secure Shell (SSH) の構成方法によって異なります。
SSH が基本パスワード認証用に構成されている場合は、ユーザー パスワードの入力を求められます。
キーベースのユーザー認証用に SSH が構成されている場合は、 KeyFilePath パラメーターを使用してキー ファイル パスを指定できます。パスワードの入力を求められることはありません。 クライアント ユーザー キー ファイルが SSH の既知の場所にある場合、キーベースの認証に KeyFilePath パラメーターは必要なく、ユーザー認証はユーザー名に基づいて自動的に行われることに注意してください。 詳細については、キーベースのユーザー認証に関する SSH ドキュメントを参照してください。
これは必須パラメーターではありません。 UserName パラメーターが指定されていない場合は、現在のログオン ユーザー名が接続に使用されます。
このパラメーターは、PowerShell 6.0 で導入されました。
パラメーターのプロパティ
| 型: | String |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
SSHHost
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-UseSSL
このコマンドレットが SSL プロトコルを使用してリモート コンピューターへの接続を確立することを示します。 既定では、SSL は使用されません。
WS-Management は、ネットワーク経由で送信されるすべての PowerShell コンテンツを暗号化します。 UseSSL パラメータは、HTTP 接続ではなく HTTPS 接続を介してデータを送信する追加の保護を提供します。
このパラメーターを使用しても、コマンドに使用されているポートで SSL を使用できない場合、コマンドは失敗します。
パラメーターのプロパティ
| 型: | SwitchParameter |
| 規定値: | False |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
ComputerName
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-UseWindowsPowerShell
ローカル システム上の新しい Windows PowerShell 実行空間へのリモート接続を作成します。
パラメーターのプロパティ
| 型: | SwitchParameter |
| 規定値: | False |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
UseWindowsPowerShellParameterSet
| 配置: | Named |
| 必須: | True |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-VMId
仮想マシン ID の配列を指定します。 このコマンドレットは、指定された各仮想マシンとの PowerShell Direct 対話型セッションを開始します。 詳細については、「 PowerShell を使用した仮想マシンの自動化と管理」を参照してください。
Get-VMを使用して、Hyper-V ホストで使用可能な仮想マシンを確認します。
パラメーターのプロパティ
| 型: | Guid[] |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
| Aliases: | VMGuid |
パラメーター セット
VMId
| 配置: | 0 |
| 必須: | True |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | True |
| 残りの引数からの値: | False |
-VMName
仮想マシンの名前の配列を指定します。 このコマンドレットは、指定された各仮想マシンとの PowerShell Direct 対話型セッションを開始します。 詳細については、「 PowerShell を使用した仮想マシンの自動化と管理」を参照してください。
Get-VMを使用して、Hyper-V ホストで使用可能な仮想マシンを確認します。
パラメーターのプロパティ
| 型: | String[] |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
VMName
| 配置: | Named |
| 必須: | True |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | True |
| 残りの引数からの値: | False |
CommonParameters
このコマンドレットでは、一般的なパラメーター -Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction、-WarningVariable の各パラメーターがサポートされています。 詳細については、about_CommonParametersを参照してください。
入力
String
このコマンドレットに文字列をパイプできます。
System.URI
このコマンドレットに URI をパイプできます。
PSSession
セッション オブジェクトをこのコマンドレットにパイプできます。
出力
PSSession
メモ
PowerShell には、New-PSSessionの次のエイリアスが含まれています。
すべてのプラットフォーム:
nsn
このコマンドレットでは、PowerShell リモート処理インフラストラクチャを使用します。 このコマンドレットを使用するには、ローカル コンピューターとリモート コンピューターを PowerShell リモート処理用に構成する必要があります。 詳細については、about_Remote_Requirementsを参照してください。
ローカル コンピューターで PSSession を作成するには、[ 管理者として実行 ] オプションを使用して PowerShell を起動します。
PSSession が完了したら、
Remove-PSSessionコマンドレットを使用して PSSession を削除し、そのリソースを解放します。HostName および SSHConnection パラメーター セットは、PowerShell 6.0 以降に含まれていました。 Secure Shell (SSH) に基づく PowerShell リモート処理を提供するために追加されました。 SSH と PowerShell の両方が複数のプラットフォーム (Windows、Linux、macOS) でサポートされており、PowerShell リモート処理は、PowerShell と SSH がインストールおよび構成されているこれらのプラットフォームで動作します。 これは、WinRM に基づく以前の Windows 専用リモート処理とは別であり、WinRM 固有の機能と制限の多くは適用されません。 たとえば、WinRM ベースのクォータ、セッション オプション、カスタム エンドポイント構成、切断/再接続機能はサポートされていません。 PowerShell SSH リモート処理を設定する方法の詳細については、「SSH経由の PowerShell リモート処理」を参照してください。
ssh 実行可能ファイルは、次のソースから次の順序で構成データを取得します。
- コマンド ライン オプション
- ユーザーの構成ファイル (~/.ssh/config)
- システム全体の構成ファイル (/etc/ssh/ssh_config)
次のコマンドレット パラメーターは、ssh パラメーターとオプションにマップされます。
| コマンドレット パラメーター | ssh パラメーター | 同等の ssh -o オプション |
|---|---|---|
-KeyFilePath |
-i <KeyFilePath> |
-o IdentityFile=<KeyFilePath> |
-UserName |
-l <UserName> |
-o User=<UserName> |
-Port |
-p <Port> |
-o Port=<Port> |
-ComputerName -Subsystem |
-s <ComputerName> <Subsystem> |
-o Host=<ComputerName> |
パラメーターによって明示的に渡された値は、Options ハッシュテーブルで渡された値よりも優先されます。
ssh_config ファイルの詳細については、ssh_config(5)を参照してください。