共用方式為


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 參數值,這些 Cmdlet 會建立或變更會話組態,例如 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 屬性值為 1 小時 (3600 秒)。 此命令會將傳輸物件物件儲存在變數中 $t

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

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

第四個命令會 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

備註

  • 工作階段設定物件的屬性取決於工作階段設定所設定的選項,以及這些選項的值。 此外,使用工作階段設定檔的工作階段設定會有額外的屬性。