New-PSSessionOption
PSSession の詳細設定オプションが格納されたオブジェクトを作成します。
構文
New-PSSessionOption
[-MaximumRedirection <Int32>]
[-NoCompression]
[-NoMachineProfile]
[-Culture <CultureInfo>]
[-UICulture <CultureInfo>]
[-MaximumReceivedDataSizePerCommand <Int32>]
[-MaximumReceivedObjectSize <Int32>]
[-OutputBufferingMode <OutputBufferingMode>]
[-MaxConnectionRetryCount <Int32>]
[-ApplicationArguments <PSPrimitiveDictionary>]
[-OpenTimeout <Int32>]
[-CancelTimeout <Int32>]
[-IdleTimeout <Int32>]
[-ProxyAccessType <ProxyAccessType>]
[-ProxyAuthentication <AuthenticationMechanism>]
[-ProxyCredential <PSCredential>]
[-SkipCACheck]
[-SkipCNCheck]
[-SkipRevocationCheck]
[-OperationTimeout <Int32>]
[-NoEncryption]
[-UseUTF16]
[-IncludePortInSPN]
[<CommonParameters>]
説明
New-PSSessionOption
コマンドレットは、ユーザー管理セッション (PSSession) の詳細オプションを含むオブジェクトを作成します。 このオブジェクトは、PSSession (New-PSSession
、Enter-PSSession
、Invoke-Command
など) を作成するコマンドレットの SessionOption パラメーターの値として使用できます。
パラメーターがない場合、 New-PSSessionOption
は、すべてのオプションの既定値を含むオブジェクトを生成します。 すべてのプロパティを編集できるため、結果のオブジェクトをテンプレートとして使用し、エンタープライズの標準オプション オブジェクトを作成できます。
SessionOption オブジェクトを$PSSessionOption
基本設定変数に保存することもできます。 この変数の値は、セッション オプションの新しい既定値を確立します。 セッションに対してセッション オプションが設定されておらず、セッション構成で設定されたオプションよりも優先される場合に有効ですが、セッションを作成するコマンドレットでセッション オプションまたは SessionOption オブジェクトを指定することでオーバーライドできます。 $PSSessionOption
基本設定変数の詳細については、about_Preference_Variablesを参照してください。
セッションを作成するコマンドレットで SessionOption オブジェクトを使用する場合、セッション オプションの値は、 $PSSessionOption
基本設定変数およびセッション構成で設定されたセッションの既定値よりも優先されます。 ただし、セッション構成で設定された最大値、クォータ、または制限よりも優先されることはありません。 セッション構成の詳細については、「 about_Session_Configurations」を参照してください。
例
例 1: 既定のセッション オプションを作成する
このコマンドは、既定値を使用して SessionOption オブジェクトを作成します。
New-PSSessionOption
MaximumConnectionRedirectionCount : 5
NoCompression : False
NoMachineProfile : False
ProxyAccessType : IEConfig
ProxyAuthentication : Negotiate
ProxyCredential :
SkipCACheck : False
SkipCNCheck : False
SkipRevocationCheck : False
OperationTimeout : 00:03:00
NoEncryption : False
UseUTF16 : False
Culture :
UICulture :
MaximumReceivedDataSizePerCommand :
MaximumReceivedObjectSize :
ApplicationArguments :
OpenTimeout : 00:03:00
CancelTimeout : 00:01:00
IdleTimeout : 00:04:00
例 2: セッション オプション オブジェクトを使用してセッションを構成する
この例では、 SessionOption オブジェクトを使用してセッションを構成する方法を示します。
$pso = New-PSSessionOption -Culture "fr-fr" -MaximumReceivedObjectSize 10MB
New-PSSession -ComputerName Server01 -SessionOption $pso
最初のコマンドは、新しい SessionOption オブジェクトを作成し、 $pso
変数の値に保存します。 2 番目のコマンドでは、 New-PSSession
コマンドレットを使用して、Server01 リモート コンピューターにセッションを作成します。 このコマンドでは、$pso
変数の値にSessionOption オブジェクトをコマンドの SessionOption パラメーターの値として使用します。
例 3: 対話型セッションを開始する
このコマンドでは、 Enter-PSSession
コマンドレットを使用して、Server01 コンピューターとの対話型セッションを開始します。
Enter-PSSession -ComputerName Server01 -SessionOption (New-PSSessionOption -NoEncryption -NoCompression)
SessionOption パラメーターの値は、NoEncryption および NoCompression パラメーターを持つNew-PSSessionOption
コマンドです。
New-PSSessionOption
コマンドは、Enter-PSSession
コマンドの前に実行されるようにかっこで囲まれています。
例 4: セッション・オプション・オブジェクトを変更する
この例では、 SessionOption オブジェクトを変更できることを示します。 すべてのプロパティは、読み取り/書き込み値を持ちます。
$a = New-PSSessionOption
$a.OpenTimeout
Days : 0
Hours : 0
Minutes : 3
Seconds : 0
Milliseconds : 0
Ticks : 1800000000
TotalDays : 0.00208333333333333
TotalHours : 0.05
TotalMinutes : 3
TotalSeconds : 180
TotalMilliseconds : 180000
$a.UICulture = (Get-UICulture)
$a.OpenTimeout = (New-Timespan -Minutes 4)
$a.MaximumConnectionRedirectionCount = 1
$a
MaximumConnectionRedirectionCount : 1
NoCompression : False
NoMachineProfile : False
ProxyAccessType : IEConfig
ProxyAuthentication : Negotiate
ProxyCredential :
SkipCACheck : False
SkipCNCheck : False
SkipRevocationCheck : False
OperationTimeout : 00:03:00
NoEncryption : False
UseUTF16 : False
Culture :
UICulture : en-US
MaximumReceivedDataSizePerCommand :
MaximumReceivedObjectSize :
ApplicationArguments :
OpenTimeout : 00:04:00
CancelTimeout : 00:01:00
IdleTimeout : 00:04:00
この方法を使用して、会社の標準のセッション オブジェクトを作成し、特定の用途向けにカスタマイズされたバージョンを作成します。
例 5: 基本設定変数を作成する
このコマンドは、 $PSSessionOption
ユーザー設定変数を作成します。
$PSSessionOption = New-PSSessionOption -OpenTimeOut 120000
セッションで $PSSessionOption
基本設定変数を設定すると、 New-PSSession
、 Enter-PSSession
、および Invoke-Command
コマンドレットを使用して作成されるセッションのオプションの既定値が設定されます。
$PSSessionOption
変数をすべてのセッションで使用できるようにするには、それを PowerShell セッションと PowerShell プロファイルに追加します。
$PSSessionOption
基本設定変数の詳細については、about_Preference_Variablesを参照してください。
プロファイルの詳細については、「about_Profiles」を参照してください。
例 6: リモート セッション構成の要件を満たす
この例では、 SessionOption オブジェクトを使用して、リモート セッション構成の要件を満たす方法を示します。
$skipCN = New-PSSessionOption -SkipCNCheck
New-PSSession -ComputerName 171.09.21.207 -UseSSL -Credential Domain01\User01 -SessionOption $SkipCN
最初のコマンドでは、New-PSSessionOption
コマンドレットを使用して、SkipCNCheck プロパティを持つ SessionOption オブジェクトを作成します。 このコマンドは、結果のセッション オブジェクトを $skipCN
変数に保存します。
2 番目のコマンドでは、 New-PSSession
コマンドレットを使用して、リモート コンピューター上に新しいセッションを作成します。 $skipCN
check 変数は、SessionOption パラメーターの値で使用されます。
コンピューターは IP アドレスによって識別されるため、 ComputerName パラメーターの値は、Secure Sockets Layer (SSL) に使用される証明書の共通名と一致しません。 その結果、 SkipCNCheck オプションが必要になります。
例 7: リモート セッションで引数を使用できるようにする
この例では、New-PSSessionOption
コマンドレットの ApplicationArguments パラメーターを使用して、リモート セッションで追加のデータを使用できるようにする方法を示します。
$team = @{Team="IT"; Use="Testing"}
$TeamOption = New-PSSessionOption -ApplicationArguments $team
$s = New-PSSession -ComputerName Server01 -SessionOption $TeamOption
Invoke-Command -Session $s {$PSSenderInfo.ApplicationArguments}
Name Value
---- -----
Team IT
Use Testing
PSVersionTable {CLRVersion, BuildVersion, PSVersion, WSManStackVersion...}
Invoke-Command -Session $s {
if ($PSSenderInfo.ApplicationArguments.Use -ne "Testing") {
.\logFiles.ps1
}
else {
"Just testing."
}
}
Just testing.
最初のコマンドは、 Team と Use の 2 つのキーを持つハッシュ テーブルを作成します。 このコマンドは、ハッシュ テーブルを $team
変数に保存します。 ハッシュ テーブルの詳細については、「about_Hash_Tables (ハッシュ テーブルについて)」をご覧ください。
次に、New-PSSessionOption
コマンドレットは、ApplicationArguments パラメーターを使用して、$team
変数に保存された SessionOption オブジェクトを作成します。 セッション オプション オブジェクト New-PSSessionOption
作成すると、 ApplicationArguments パラメーターの値のハッシュ テーブルが PrimitiveDictionary に自動的に変換されるため、データをリモート セッションに確実に送信できます。
New-PSSession
コマンドレットは、Server01 コンピューターでセッションを開始します。 SessionOption パラメーターを使用して、$teamOption
変数にオプションを含めます。
Invoke-Command
コマンドレットは、リモート セッションのコマンドで$team
変数のデータを使用できる方法を示しています。 データは、$PSSenderInfo
自動変数の ApplicationArguments プロパティに表示されます。
最後の Invoke-Command
は、データがどのように使用されるかを示しています。
パラメーター
-ApplicationArguments
リモート セッションに送信される PrimitiveDictionary を指定します。 リモート セッション内のコマンドとスクリプト (セッション構成のスタートアップ スクリプトを含む) は、$PSSenderInfo
自動変数の ApplicationArguments プロパティでこのディクショナリを見つけることができます。 このパラメーターを使用すると、リモート セッションにデータを送信することができます。
詳細については、「 about_Hash_Tables、 about_Session_Configurations、および about_Automatic_Variables」を参照してください。
型: | PSPrimitiveDictionary |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-CancelTimeout
PowerShell が取り消し操作 (CTRL+C) が終了するまでの待機時間を指定します。 値をミリ秒単位で入力します。
既定値は 60000
(1 分) です。 0
(ゼロ) の値はタイムアウトがないことを意味します。コマンドは無期限に続行されます。
型: | Int32 |
Aliases: | CancelTimeoutMSec |
配置: | Named |
規定値: | 60000 |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Culture
セッションに使用するカルチャを指定します。 カルチャ名を <languagecode2>-<country/regioncode2>
形式 ( ja-JP
など)、 CultureInfo オブジェクトを含む変数、または CultureInfo オブジェクトを取得するコマンドを入力します。
既定値は $Null
であり、オペレーティング システムで設定されているカルチャがセッションで使用されます。
型: | CultureInfo |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-IdleTimeout
リモート コンピューターがローカル コンピューターから通信を受信しない場合に、セッションが開いたままの期間を指定します。 これにはハートビート信号が含まれます。 この期間が経過すると、セッションは閉じられます。
セッションを切断して再接続する場合、アイドル タイムアウト値は非常に重要です。 セッションがタイムアウトしていない場合にのみ再接続することができます。
値をミリ秒単位で入力します。 最小値は 60000
(1 分) です。 最大値は、セッション構成の MaxIdleTimeoutms プロパティの値です。 既定値の -1
では、アイドル タイムアウトは設定されません。
セッションは、セッション オプションに設定されているアイドル タイムアウト (ある場合) を使用します。 何も設定されていない場合 (-1
)、セッションはセッション構成の IdleTimeoutMs プロパティの値、または WSMan シェルタイムアウト値 (WSMan:\<ComputerName>\Shell\IdleTimeout
) のどちらか短い方を使用します。
セッション オプションで設定されたアイドル タイムアウトが、セッション構成の MaxIdleTimeoutMs プロパティの値を超えると、セッションを作成するコマンドは失敗します。
既定の Microsoft.PowerShell セッション構成の IdleTimeoutMs 値は7200000
ミリ秒 (2 時間) です。 その MaxIdleTimeoutMs 値は 2147483647
ミリ秒 (>24 日) です。 WSMan シェルのアイドルタイムアウト (WSMan:\<ComputerName>\Shell\IdleTimeout
) の既定値は、 7200000
ミリ秒 (2 時間) です。
セッションから切断したり、セッションに再接続したりするときに、セッションのアイドル タイムアウト値を変更することもできます。 詳細については、次のトピックを参照してください。 Disconnect-PSSession
および Connect-PSSession
Windows PowerShell 2.0 では、 IdleTimeout パラメーターの既定値は 240000
(4 分) です。
型: | Int32 |
Aliases: | IdleTimeoutMSec |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-IncludePortInSPN
Kerberos 認証に使用されるサービス プリンシパル名 (SPN) にポート番号を含めます (例: HTTP://<ComputerName>:5985
)。 このオプションを使用すると、クライアントは、既定以外の SPN を使用して、Kerberos 認証を使用するリモート コンピューターに対して認証できます。
このオプションは、Kerberos 認証をサポートする複数のサービスが異なるユーザー アカウントで実行されている企業向けに設計されています。 たとえば、Kerberos 認証を許可する IIS アプリケーションでは、コンピューター アカウントとは異なるユーザー アカウントに既定の SPN を登録する必要があります。 このような場合、PowerShell リモート処理では、コンピューター アカウントに登録されている SPN が必要なため、認証に Kerberos を使用できません。 この問題を解決するために、管理者は、異なるユーザー アカウントに登録され、SPN にポート番号を含めることで区別できる異なる SPN ( Setspn.exe
の使用など) を作成できます。
詳細については、「 Setspn の概要を参照してください。
このパラメーターは Windows PowerShell 3.0 で導入されました。
型: | SwitchParameter |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-MaxConnectionRetryCount
ネットワークの問題が原因で現在の試行が失敗した場合に、PowerShell がターゲット コンピューターへの接続を試行する回数を指定します。 既定値は 5
です。
このパラメーターは、PowerShell バージョン 5.0 に追加されました。
型: | Int32 |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-MaximumReceivedDataSizePerCommand
ローカル コンピューターがリモート コンピューターから 1 つのコマンドで受け取ることができる最大バイト数を指定します。 値をバイト単位で入力します。 既定では、データのサイズに関する制限はありません。
このオプションは、クライアント コンピューター上のリソースを保護するために用意されています。
型: | Int32 |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-MaximumReceivedObjectSize
ローカル コンピューターがリモート コンピューターから受信できるオブジェクトの最大サイズを指定します。 このオプションは、クライアント コンピューター上のリソースを保護するために用意されています。 値をバイト単位で入力します。
Windows PowerShell 2.0 では、このパラメーターを省略した場合、オブジェクトのサイズに関する制限はありません。 Windows PowerShell 3.0 以降では、このパラメーターを省略した場合、既定値は 209715200
バイト (または 200MB
) です。
型: | Int32 |
配置: | Named |
規定値: | 209715200 |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-MaximumRedirection
接続が失敗するまでに、PowerShell が代替 Uniform Resource Identifier (URI) に接続をリダイレクトする回数を決定します。 既定値は 5
です。 0
(ゼロ) の値を指定すると、すべてのリダイレクトが禁止されます。
このオプションは、セッションを作成するコマンドで AllowRedirection パラメーターが使用されている場合にのみ、セッションで使用されます。
型: | Int32 |
配置: | Named |
規定値: | 5 |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-NoCompression
セッションでのパケットの圧縮を無効にします。 圧縮処理には多くのプロセッサ サイクルが使用されますが、転送が高速化されます。
型: | SwitchParameter |
配置: | Named |
規定値: | False |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-NoEncryption
データの暗号化を無効にします。
型: | SwitchParameter |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-NoMachineProfile
ユーザーの Windows ユーザー プロファイルを読み込まないようにします。 その場合、セッションをより高速に作成できる可能性がありますが、ユーザー固有のレジストリ設定、環境変数などの項目、および証明書をセッションで使用できなくなります。
型: | SwitchParameter |
配置: | Named |
規定値: | False |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-OpenTimeout
セッションの接続が確立されるのをクライアント コンピューターが待機する期間を指定します。 この期間が経過すると、接続を確立するコマンドは失敗します。 値をミリ秒単位で入力します。
既定値は 180000
(3 分) です。 0
(ゼロ) の値はタイムアウトがないことを意味します。コマンドは無期限に続行されます。
型: | Int32 |
Aliases: | OpenTimeoutMSec |
配置: | Named |
規定値: | 180000 (3 minutes) |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-OperationTimeout
接続タイムアウト 開始する前に ライブ接続からの正の接続テストを待機する最大時間を決定します。WinRM の詳細については、 Windows リモート管理のドキュメントを参照してください。
OperationTimeout はリモート セッションで実行されているコマンドまたはプロセスに時間制限を課すのではなく SSH などの他のリモート処理プロトコルには影響ありません。
既定値は 180000
(3 分) です。 0
(ゼロ) の値は、タイムアウトがないことを意味します。
型: | Int32 |
Aliases: | OperationTimeoutMSec |
配置: | Named |
規定値: | 180000 (3 minutes) |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-OutputBufferingMode
出力バッファーがいっぱいになったときに切断されたセッションでコマンドの出力を管理する方法を指定します。
出力バッファリング モードがセッションまたはセッション構成で設定されていない場合、既定値は Block
。 ユーザーは、セッションの切断時に出力バッファー モードを変更することもできます。
このパラメーターを省略すると、SessionOption オブジェクトの OutputBufferingMode の値がNone
。 Block
またはDrop
の値は、セッション構成で設定された出力バッファリング モードトランスポート オプションをオーバーライドします。 このパラメーターの有効値は、次のとおりです。
Block
. 出力バッファーがいっぱいのとき、バッファーが空くまで実行が中断されます。Drop
. 出力バッファーがいっぱいのとき、実行は続行されます。 新しい出力が保存されると、最も古い出力が破棄されます。None
. 出力バッファー モードが指定されません。
出力バッファリング・モード・トランスポート・オプションの詳細については、 New-PSTransportOption
を参照してください。
このパラメーターは Windows PowerShell 3.0 で導入されました。
型: | OutputBufferingMode |
指定可能な値: | None, Drop, Block |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-ProxyAccessType
ホスト名の解決に使用するメカニズムを決定します。 このパラメーターの有効値は、次のとおりです。
IEConfig
WinHttpConfig
AutoDetect
NoProxyServer
None
既定値は None
です。
このパラメーターの値については、「 ProxyAccessType 列挙型を参照してください。
型: | ProxyAccessType |
指定可能な値: | None, IEConfig, WinHttpConfig, AutoDetect, NoProxyServer |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-ProxyAuthentication
プロキシの解決に使用する認証方法を指定します。 このパラメーターの有効値は、次のとおりです。
Basic
Digest
Negotiate
既定値は Negotiate
です。
このパラメーターの値の詳細については、「 AuthenticationMechanism 列挙型を参照してください。
型: | AuthenticationMechanism |
指定可能な値: | Default, Basic, Negotiate, NegotiateWithImplicitCredential, Credssp, Digest, Kerberos |
配置: | Named |
規定値: | Negotiate |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-ProxyCredential
プロキシ認証に使用する資格情報を指定します。 PSCredential オブジェクトを含む変数、または PSCredential オブジェクトを取得するコマンド (Get-Credential
コマンドなど) を入力します。 このオプションを設定しない場合、資格情報は指定されません。
型: | PSCredential |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-SkipCACheck
HTTPS 経由で接続するときに、クライアントがサーバー証明書が信頼された証明機関 (CA) によって署名されていることを検証しないことを指定します。
このオプションは、リモート コンピューターが別のメカニズムを使用して信頼されている場合にのみ使用します。たとえば、リモート コンピューターが物理的に安全であり切り離されているネットワークの一部である場合や、WinRM 構成において信頼されるホストとして記載されている場合が該当します。
型: | SwitchParameter |
配置: | Named |
規定値: | False |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-SkipCNCheck
サーバーの証明書共通名 (CN) がサーバーのホスト名と一致する必要がないことを指定します。 このオプションは、HTTPS プロトコルを使用するリモート操作でのみ使用されます。
このオプションは、信頼されるコンピューターに対してのみ使用します。
型: | SwitchParameter |
配置: | Named |
規定値: | False |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-SkipRevocationCheck
サーバー証明書の失効状態を検証しません。
型: | SwitchParameter |
配置: | Named |
規定値: | False |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-UICulture
セッションに使用する UI カルチャを指定します。
有効な値は、次のとおりです。
<languagecode2>-<country/regioncode2>
形式のカルチャ名 (例:ja-JP
- CultureInfo オブジェクトを含む変数
- CultureInfo オブジェクトを取得するコマンド (例:
Get-Culture
既定値は $null
であり、セッションの作成時にオペレーティング システムで設定される UI カルチャです。
型: | CultureInfo |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-UseUTF16
このコマンドレットが UTF8 形式ではなく UTF16 形式で要求をエンコードすることを示します。
型: | SwitchParameter |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
入力
None
このコマンドレットにオブジェクトをパイプすることはできません。
出力
メモ
SessionOptionパラメーターをコマンドで使用してPSSessionを作成しない場合、セッション オプションは、$PSSessionOption
基本設定変数のプロパティ値 (設定されている場合) によって決まります。 $PSSessionOption
変数の詳細については、「about_Preference_Variables」を参照してください。
セッション構成オブジェクトのプロパティは、セッション構成に設定されているオプションとその値によって異なります。 また、セッション構成ファイルを使用するセッション構成には追加のプロパティがあります。
関連リンク
PowerShell