New-PSTransportOption
建立物件,其中包含會話組態的進階選項。
語法
New-PSTransportOption
[-MaxIdleTimeoutSec <Int32>]
[-ProcessIdleTimeoutSec <Int32>]
[-MaxSessions <Int32>]
[-MaxConcurrentCommandsPerSession <Int32>]
[-MaxSessionsPerUser <Int32>]
[-MaxMemoryPerSessionMB <Int32>]
[-MaxProcessesPerSession <Int32>]
[-MaxConcurrentUsers <Int32>]
[-IdleTimeoutSec <Int32>]
[-OutputBufferingMode <OutputBufferingMode>]
[<CommonParameters>]
Description
New-PSTransportOption Cmdlet 會建立物件,其中包含會話設定的傳輸選項。 您可以使用 對象作為建立或變更會話組態之 Cmdlet TransportOption 參數的值,例如 Register-PSSessionConfiguration 和 Set-PSSessionConfiguration Cmdlet。
您也可以編輯 WSMan: 磁碟驅動器中的工作階段組態屬性值,以變更傳輸選項設定。 如需詳細資訊,請參閱 WSMan 提供者。
會話組態選項代表伺服器端設定的會話值,或遠端連線的接收端。 用戶端或傳送連線的結尾,可以在建立會話時設定會話選項值,或當用戶端與會話中斷連線或重新連線時。 除非另有說明,否則設定值衝突時,用戶端值會優先使用。 不過,用戶端值不能違反會話設定中設定的最大值和配額。
如果沒有參數,New-PSTransportOption 會產生所有選項的 Null 值傳輸選項物件。 如果您省略參數,則物件具有參數所代表之屬性的 Null 值。 Null 值不會影響會話設定。
如需會話選項的詳細資訊,請參閱New-PSSessionOption。 如需工作階段組態的詳細資訊,請參閱 about_Session_Configurations。
此 Cmdlet 已在 Windows PowerShell 3.0 中引進。
範例
範例 1:產生預設傳輸選項
PS C:\> New-PSTransportOption
ProcessIdleTimeoutSec :
MaxIdleTimeoutSec :
MaxSessions :
MaxConcurrentCommandsPerSession :
MaxSessionsPerUser :
MaxMemoryPerSessionMB :
MaxProcessesPerSession :
MaxConcurrentUsers :
IdleTimeoutSec :
OutputBufferingMode :
此命令會執行不含參數的 New-PSTransportOption。 輸出顯示 Cmdlet 會產生所有屬性具有 Null 值的傳輸選項物件。
範例 2:取得會話組態選項
The first command uses the **New-PSTransportOption** cmdlet to create a transport options object, which it saves in the $t variable. The command uses the *MaxSessions* parameter to increase the maximum number of sessions to 40.
PS C:\> $t = New-PSTransportOption -MaxSessions 40
The second command uses the **Register-PSSessionConfiguration** cmdlet create the ITTasks session configuration. The command uses the *TransportOption* parameter to specify the transport options object in the $t variable.
PS C:\> Register-PSSessionConfiguration -Name ITTasks -TransportOption $t
The third command uses the Get-PSSessionConfiguration cmdlet to get the ITTasks session configurations and the Format-List cmdlet to display all of the properties of the session configuration object in a list. The output shows that the value of the **MaxShells** property of the session configuration is 40.
PS C:\> Get-PSSessionConfiguration -Name ITTasks | Format-List -Property *
Architecture : 64
Filename : %windir%\system32\pwrshplugin.dll
ResourceUri : https://schemas.microsoft.com/powershell/ITTasks
MaxConcurrentCommandsPerShell : 1000
UseSharedProcess : false
ProcessIdleTimeoutSec : 0
xmlns : https://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 :
這個範例示範如何使用傳輸選項對象來設定會話組態選項。
範例 3:設定傳輸選項
The first command uses the **New-PSTransportOption** cmdlet to create a transport option object. The command uses the *IdleTimeoutSec* parameter to set the **IdleTimeoutSec** property value of the object to one hour (3600 seconds). The command saves the transport objects object in the $t variable.
PS C:\> $t = New-PSTransportOption -IdleTimeoutSec 3600
The second command uses the Set-PSSessionConfiguration cmdlet to change the transport options of the ITTasks session configuration. The command uses the *TransportOption* parameter to specify the transport options object in the $t variable.
PS C:\> Set-PSSessionConfiguration -Name ITTasks -TransportOption $t
The third command uses the New-PSSession cmdlet to create the MyITTasks session on the local computer. The command uses the **ConfigurationName** property to specify the ITTasks session configuration. The command saves the session in the $s variable.Notice that the command does not use the *SessionOption* parameter of **New-PSSession** to set a custom idle time-out for the session. If it did, the idle time-out value set in the session option would take precedence over the idle time-out set in the session configuration.
PS C:\> $s = New-PSSession -Name MyITTasks -ConfigurationName ITTasks
The fourth command uses the Format-List cmdlet to display all properties of the session in the $s variable in a list. The output shows that the session has an idle time-out of one hour (360,000 milliseconds).
PS C:\> $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
此命令會顯示在使用會話組態的會話設定中設定傳輸選項的效果。
參數
-IdleTimeoutSec
如果遠端電腦未收到來自本機計算機的任何通訊,則決定每個會話保持開啟的時間長度。 這包括活動訊號訊號。 當間隔到期時,會話就會關閉。
當使用者想要中斷連線並重新連線到會話時,閑置逾時值非常重要。 只有當會話未逾時時,使用者才能重新連線。
IdleTimeoutSec 參數會對應至會話組態的 IdleTimeoutMs 屬性。
以秒為單位輸入值。
默認值為 7200 (2 小時)。
最小值為 60 (1 分鐘)。
最大值是 WSMan 組態中 Shell 物件的 IdleTimeout 屬性值(WSMan:\\\<ComputerName\>\Shell\IdleTimeout
)。
默認值為 7200000 毫秒(2 小時)。
如果在會話選項和會話組態中設定閑置逾時值,會話選項中設定的值會優先,但不能超過會話組態 MaxIdleTimeoutMs 屬性的值。 若要設定 MaxIdleTimeoutMs 屬性的值,請使用 MaxIdleTimeoutSec 參數。
類型: | Int32 |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | True |
接受萬用字元: | False |
-MaxConcurrentCommandsPerSession
將每個工作階段中可以同時執行的命令數目限制為指定的值。 預設值為 1000。
MaxConcurrentCommandsPerSession 參數會對應至會話組態的 MaxConcurrentCommandsPerShell 属性。
類型: | Int32 |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | True |
接受萬用字元: | False |
-MaxConcurrentUsers
將每個會話中同時執行命令的用戶數目限制為指定的值。 預設值為 5。
類型: | Int32 |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | True |
接受萬用字元: | False |
-MaxIdleTimeoutSec
將每個工作階段的閒置逾時設定限制為指定的值。 默認值為 [Int]::MaxValue (~25 天)。
當使用者想要中斷連線並重新連線到會話時,閑置逾時值非常重要。 只有當會話未逾時時,使用者才能重新連線。
MaxIdleTimeoutSec 參數會對應至會話組態的 MaxIdleTimeoutMs 屬性。
類型: | Int32 |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | True |
接受萬用字元: | False |
-MaxMemoryPerSessionMB
將每個會話所使用的記憶體限制為指定的值。 以 MB 為單位輸入值。 預設值為 1024 MB(1 GB)。
MaxMemoryPerSessionMB 參數會對應至會話組態的 MaxMemoryPerShellMB 屬性。
類型: | Int32 |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | True |
接受萬用字元: | False |
-MaxProcessesPerSession
將每個工作階段中執行的進程數目限制為指定的值。 預設值為 15。
MaxProcessesPerSession 參數會對應至會話組態的 MaxProcessesPerShell 屬性。
類型: | Int32 |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | True |
接受萬用字元: | False |
-MaxSessions
限制使用會話設定的會話數目。 預設值為 25。
MaxSessions 參數會對應至會話組態的 MaxShells 屬性。
類型: | Int32 |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | True |
接受萬用字元: | False |
-MaxSessionsPerUser
限制使用會話組態的會話數目,並將指定使用者的認證執行為指定的值。 預設值為 25。
當您指定此值時,請考慮許多使用者可能會使用執行身分用戶的認證。
MaxSessionsPerUser 參數會對應至會話組態的 MaxShellsPerUser 屬性。
類型: | Int32 |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | True |
接受萬用字元: | False |
-OutputBufferingMode
決定當輸出緩衝區已滿時,命令輸出在中斷連線的會話中管理的方式。 此參數可接受的值為:
- 塊。 當輸出緩衝區已滿時,執行會暫停,直到緩衝區清除為止。
- 落。 當輸出緩衝區已滿時,執行會繼續。 儲存新輸出時,會捨棄最舊的輸出。
- 沒有。 未指定輸出緩衝模式。
會話 OutputBufferingMode 屬性的預設值為 Block。
類型: | OutputBufferingMode |
接受的值: | None, Drop, Block |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | True |
接受萬用字元: | False |
-ProcessIdleTimeoutSec
將每個主機進程的逾時限制為指定的值。 預設值 0 表示進程沒有逾時值。
其他工作階段設定具有每個進程逾時值。 例如,Microsoft.PowerShell.Workflow 會話設定具有 28800 秒(8 小時)的每個進程逾時值。
類型: | Int32 |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | True |
接受萬用字元: | False |
輸入
None
您無法使用管線將輸入傳送至此 Cmdlet。
輸出
備註
- 會話組態對象的屬性會隨著會話組態和這些選項的值所設定的選項而有所不同。 此外,使用會話組態檔的會話組態也有其他屬性。