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>]
说明
cmdlet New-PSTransportOption
创建一个对象,该对象包含会话配置的传输选项。 可以使用 对象作为创建或更改会话配置的 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:生成默认传输选项
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 变量中。请注意,该命令不使用 的 SessionOption 参数 New-PSSession
为会话设置自定义空闲超时。 如果已设置,会话选项中设置的空闲超时值将优先于会话配置中设置的空闲超时值。
第四个命令使用 Format-List
cmdlet 在列表中的 变量中显示会话 $s
的所有属性。 输出显示会话的空闲超时为 1 小时 (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
将每个会话使用的内存限制为指定的值。 输入一个值(以兆字节为单位)。 默认值为 1024 兆字节 (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。
输出
备注
- 会话配置对象的属性会根据为会话配置设置的选项以及这些选项的值而有所不同。 此外,使用会话配置文件的会话配置还具有其他属性。