New-PSTransportOption

建立物件,其中包含會話組態的進階選項。

Syntax

New-PSTransportOption
   [-MaxIdleTimeoutSec <Int32>]
   [-ProcessIdleTimeoutSec <Int32>]
   [-MaxSessions <Int32>]
   [-MaxConcurrentCommandsPerSession <Int32>]
   [-MaxSessionsPerUser <Int32>]
   [-MaxMemoryPerSessionMB <Int32>]
   [-MaxProcessesPerSession <Int32>]
   [-MaxConcurrentUsers <Int32>]
   [-IdleTimeoutSec <Int32>]
   [-OutputBufferingMode <OutputBufferingMode>]
   [<CommonParameters>]

Description

Cmdlet New-PSTransportOption 會建立物件,其中包含會話組態的傳輸選項。 您可以使用 對象作為建立或變更會話組態之 Cmdlet 的 TransportOption 參數值,例如 Register-PSSessionConfigurationSet-PSSessionConfiguration Cmdlet。

您也可以編輯 WSMan: 磁碟驅動器中的工作階段組態屬性值,以變更傳輸選項設定。 如需詳細資訊,請參閱 WSMan 提供者。

會話組態選項代表伺服器端設定的會話值,或遠端連線的接收端。 用戶端或傳送連線的結尾,可以在建立會話時設定會話選項值,或當用戶端與會話中斷連線或重新連線時。 除非另有說明,否則設定值衝突時,用戶端值會優先使用。 不過,用戶端值不能違反會話設定中設定的最大值和配額。

如果沒有參數, New-PSTransportOption 會產生傳輸選項物件,該物件具有所有選項的 Null 值。 如果您省略參數,則物件具有參數所代表之屬性的 Null 值。 Null 值不會影響會話設定。

如需工作階段選項的詳細資訊,請參閱 New-PSSessionOption。 如需工作階段設定的詳細資訊,請參閱 about_Session_Configurations

此 Cmdlet 已在 Windows PowerShell 3.0 中引進。

範例

範例 1:產生預設傳輸選項

New-PSTransportOption

ProcessIdleTimeoutSec           :
MaxIdleTimeoutSec               :
MaxSessions                     :
MaxConcurrentCommandsPerSession :
MaxSessionsPerUser              :
MaxMemoryPerSessionMB           :
MaxProcessesPerSession          :
MaxConcurrentUsers              :
IdleTimeoutSec                  :
OutputBufferingMode             :

這個指令會執行不含參數的 New-PSTransportOption 。 輸出顯示 Cmdlet 會產生所有屬性具有 Null 值的傳輸選項物件。

範例 2:取得會話組態選項

這個範例示範如何使用傳輸選項對象來設定會話組態選項。

$t = New-PSTransportOption -MaxSessions 40
Register-PSSessionConfiguration -Name ITTasks -TransportOption $t
Get-PSSessionConfiguration -Name ITTasks | Format-List -Property *

Architecture                  : 64
Filename                      : %windir%\system32\pwrshplugin.dll
ResourceUri                   : http://schemas.microsoft.com/powershell/ITTasks
MaxConcurrentCommandsPerShell : 1000
UseSharedProcess              : false
ProcessIdleTimeoutSec         : 0
xmlns                         : http://schemas.microsoft.com/wbem/wsman/1/config/PluginConfiguration
MaxConcurrentUsers            : 5
lang                          : en-US
SupportsOptions               : true
ExactMatch                    : true
RunAsUser                     :
IdleTimeoutms                 : 7200000
PSVersion                     : 3.0
OutputBufferingMode           : Block
AutoRestart                   : false
MaxShells                     : 40
MaxMemoryPerShellMB           : 1024
MaxIdleTimeoutms              : 43200000
SDKVersion                    : 2
Name                          : ITTasks
XmlRenderingType              : text
Capability                    : {Shell}
RunAsPassword                 :
MaxProcessesPerShell          : 15
Enabled                       : True
MaxShellsPerUser              : 25
Permission                    :

第一個命令會 New-PSTransportOption 使用 Cmdlet 來建立傳輸選項物件,它會儲存在變數中 $t 。 此命令會使用 MaxSessions 參數,將會話數目上限增加到 40。

第二個命令會 Register-PSSessionConfiguration 使用 Cmdlet 建立 ITTasks 會話組態。 此命令會 使用 TransportOption 參數來指定變數中的 $t 傳輸選項物件。

第三個命令會 Get-PSSessionConfiguration 使用 Cmdlet 來取得 ITTasks 會話組態,以及 Format-List Cmdlet,以在清單中顯示會話組態物件的所有屬性。 輸出顯示 會話組態的 MaxShells 屬性值為 40。

範例 3:設定傳輸選項

此命令會顯示在使用會話組態的會話設定中設定傳輸選項的效果。

$t = New-PSTransportOption -IdleTimeoutSec 3600
Set-PSSessionConfiguration -Name ITTasks -TransportOption $t
$s = New-PSSession -Name MyITTasks -ConfigurationName ITTasks
$s | Format-List -Property *

State                  : Opened
IdleTimeout            : 3600000
OutputBufferingMode    : Block
ComputerName           : localhost
ConfigurationName      : ITTasks
InstanceId             : 4110c3f5-68ea-40fa-9bbf-04a433dbb02d
Id                     : 1
Name                   : MyITTasks
Availability           : Available
ApplicationPrivateData : {PSVersionTable}
Runspace               : System.Management.Automation.RemoteRunspace

第一個命令會 New-PSTransportOption 使用 Cmdlet 來建立傳輸選項物件。 此命令會使用IdleTimeoutSec參數,將物件的IdleTimeoutSec屬性值設定為一小時(3600秒)。 命令會將傳輸物件物件儲存在變數中 $t

第二個命令會 Set-PSSessionConfiguration 使用 Cmdlet 來變更 ITTasks 會話設定的傳輸選項。 此命令會 使用 TransportOption 參數來指定變數中的 $t 傳輸選項物件。

第三個命令會 New-PSSession 使用 Cmdlet 在本機電腦上建立 MyITTasks 作業階段。 此命令會 使用 ConfigurationName 屬性來指定 ITTasks 會話組態。 命令會將會話儲存在 $s 變數中。請注意,命令不會使用 New-PSSession SessionOption 參數來設定工作階段的自定義閒置逾時。 如果這麼做,會話選項中設定的閑置逾時值會優先於會話組態中設定的閑置逾時值。

第四個命令會 Format-List 使用 Cmdlet,在清單中的變數中 $s 顯示會話的所有屬性。 輸出顯示會話的空閒時間超過一小時(360,000 毫秒)。

參數

-IdleTimeoutSec

如果遠端電腦未收到來自本機計算機的任何通訊,則決定每個會話保持開啟的時間長度。 這包括活動訊號訊號。 當間隔到期時,會話就會關閉。

當使用者想要中斷連線並重新連線到會話時,閑置逾時值非常重要。 只有當會話未逾時時,使用者才能重新連線。

IdleTimeoutSec 參數會對應至會話組態的 IdleTimeoutMs 屬性。

以秒為單位輸入值。 默認值為 7200 (2 小時)。 最小值為 60 (1 分鐘)。 最大值是 WSMan 組態中 Shell 物件的 IdleTimeout 屬性值(WSMan:\\\<ComputerName\>\Shell\IdleTimeout)。 默認值為 7200000 毫秒(2 小時)。

如果在會話選項和會話組態中設定閑置逾時值,會話選項中設定的值會優先,但不能超過 會話組態的 MaxIdleTimeoutMs 屬性值。 若要設定 MaxIdleTimeoutMs 屬性的值,請使用 MaxIdleTimeoutSec 參數。

Type:Nullable<T>[Int32]
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-MaxConcurrentCommandsPerSession

將每個工作階段中可以同時執行的命令數目限制為指定的值。 預設值為 1000。

MaxConcurrentCommandsPerSession 參數會對應至會話組態的 MaxConcurrentCommandsPerShell 屬性。

Type:Nullable<T>[Int32]
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-MaxConcurrentUsers

將每個會話中同時執行命令的用戶數目限制為指定的值。 預設值是 5。

Type:Nullable<T>[Int32]
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-MaxIdleTimeoutSec

將每個工作階段的閒置逾時設定限制為指定的值。 預設值為 [Int]::MaxValue (~25 天)。

當使用者想要中斷連線並重新連線到會話時,閑置逾時值非常重要。 只有當會話未逾時時,使用者才能重新連線。

MaxIdleTimeoutSec 參數會對應至會話組態的 MaxIdleTimeoutMs 屬性。

Type:Nullable<T>[Int32]
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-MaxMemoryPerSessionMB

將每個會話所使用的記憶體限制為指定的值。 以 MB 為單位輸入值。 預設值為 1024 MB(1 GB)。

MaxMemoryPerSessionMB 參數對應於會話組態的 MaxMemoryPerShellMB 屬性。

Type:Nullable<T>[Int32]
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-MaxProcessesPerSession

將每個工作階段中執行的進程數目限制為指定的值。 預設值為 15。

MaxProcessesPerSession 參數會對應至會話組態的 MaxProcessesPerShell 屬性。

Type:Nullable<T>[Int32]
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-MaxSessions

限制使用會話設定的會話數目。 預設值為 25。

MaxSessions 參數會對應至會話組態的 MaxShells 屬性。

Type:Nullable<T>[Int32]
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-MaxSessionsPerUser

限制使用會話組態的會話數目,並將指定使用者的認證執行為指定的值。 預設值為 25。

當您指定此值時,請考慮許多使用者可能會使用執行身分用戶的認證。

MaxSessionsPerUser 參數對應於會話組態的 MaxShellsPerUser 屬性。

Type:Nullable<T>[Int32]
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-OutputBufferingMode

決定當輸出緩衝區已滿時,命令輸出在中斷連線的會話中管理的方式。 此參數可接受的值為:

  • Block 當輸出緩衝區已滿時,執行會暫停,直到緩衝區清除為止。
  • Drop 當輸出緩衝區已滿時,執行會繼續。 儲存新輸出時,會捨棄最舊的輸出。
  • None 未指定輸出緩衝模式。

會話的 OutputBufferingMode 屬性預設值為 Block。

Type:Nullable<T>[OutputBufferingMode]
Accepted values:None, Drop, Block
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-ProcessIdleTimeoutSec

將每個主機進程的逾時限制為指定的值。 預設值 0 表示進程沒有逾時值。

其他工作階段設定具有每個進程逾時值。 例如, Microsoft.PowerShell.Workflow 會話設定的個別進程逾時值為 28800 秒(8 小時)。

Type:Nullable<T>[Int32]
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

輸入

None

您無法使用管線將物件傳送至此 Cmdlet。

輸出

WSManConfigurationOption

備註

  • 會話組態對象的屬性會隨著會話組態和這些選項的值所設定的選項而有所不同。 此外,使用會話組態檔的會話組態也有其他屬性。