New-PSSessionOption
创建包含 PSSession 高级选项的对象。
语法
New-PSSessionOption [-ApplicationArguments <PSPrimitiveDictionary>] [-CancelTimeOut <int>] [-Culture <CultureInfo>] [-IdleTimeOut <int>] [-MaximumReceivedDataSizePerCommand <int>] [-MaximumReceivedObjectSize <int>] [-MaximumRedirection <int>] [-NoCompression] [-NoEncryption] [-NoMachineProfile] [-OpenTimeOut <int>] [-OperationTimeOut <int>] [-ProxyAccessType {<None> | <IEConfig> | <WinHttpConfig> | <AutoDetect> | <NoProxyServer>}] [-ProxyAuthentication {<Default> | <Basic> | <Negotiate> | <NegotiateWithImplicitCredential> | <Credssp> | <Digest> | <Kerberos>}] [-ProxyCredential <PSCredential>] [-SkipCACheck] [-SkipCNCheck] [-SkipRevocationCheck] [-UICulture <CultureInfo>] [-UseUTF16] [<CommonParameters>]
说明
New-PSSessionOption cmdlet 创建包含 PSSession 高级选项的对象。您可以将该对象用作用于创建 PSSession 的 cmdlet(例如 New-PSSession、Enter-PSSession 和 Invoke-Command)的 SessionOption 参数值。
在没有参数的情况下,New-PSSessionOption 将生成为所有选项包含默认值的对象。由于所有属性均可编辑,因此您可以将生成的对象用作模板,为您的企业建创标准选项对象。
参数
-ApplicationArguments <PSPrimitiveDictionary>
指定直接发送给会话配置而不包含解释的哈希表。该哈希表可当作 PSSenderInfo 类的属性用于会话配置。
是否为必需? |
false |
位置? |
named |
默认值 |
|
是否接受管道输入? |
false |
是否接受通配符? |
false |
-CancelTimeOut <int>
确定 Windows PowerShell 终止取消操作 (Ctrl + C) 之前等待该操作完成的时间长度。输入以毫秒为单位的值。
默认值为 60000(1 分钟)。0(零)值表示无超时;命令将无限期地继续运行。
是否为必需? |
false |
位置? |
named |
默认值 |
60000 |
是否接受管道输入? |
false |
是否接受通配符? |
false |
-Culture <CultureInfo>
指定要用于 PSSession 的区域性。输入格式为 <languagecode2>-<country/regioncode2> 的区域性名称(例如“ja-jP”)、包含 CultureInfo 对象的变量或获取 CultureInfo 对象的命令(例如“get-culture”)。
默认值为 $null,PSSession 中使用在创建 PSSession 时在操作系统中设置的区域性。
是否为必需? |
false |
位置? |
named |
默认值 |
当前区域性 |
是否接受管道输入? |
false |
是否接受通配符? |
false |
-IdleTimeOut <int>
确定如果远程计算机未从本地计算机接收到任何通信(包括检测信号),PSSession 保持打开状态的时间。当时间间隔过期后,PSSession 将关闭。
输入以毫秒为单位的值。默认值是 240000(4 分钟)。最小值为 60000(1 分钟)。
如果本地和远程计算机都指定了空闲超时值,则 PSSession 会使用其中较短的超时值。本地计算机可通过使用该参数或在 $PSSessionOption 首选项变量中设置空闲超时来设置空闲超时值。远程计算机可在 WS-Management 配置 (WSMAN:\localhost\shell\idletimeout) 中指定空闲超时值。
是否为必需? |
false |
位置? |
named |
默认值 |
240000 |
是否接受管道输入? |
false |
是否接受通配符? |
false |
-MaximumReceivedDataSizePerCommand <int>
指定本地计算机在单个命令中可从远程计算机接收到的最大字节数。输入以字节为单位的值。默认情况下没有数据大小限制。
此选项设计用于保护客户端计算机上的资源。
是否为必需? |
false |
位置? |
named |
默认值 |
无限制 |
是否接受管道输入? |
false |
是否接受通配符? |
false |
-MaximumReceivedObjectSize <int>
指定本地计算机可从远程计算机接收到的最大对象大小。输入以字节为单位的值。默认情况下没有数据大小限制。
此选项设计用于保护客户端计算机上的资源。
是否为必需? |
false |
位置? |
named |
默认值 |
无限制 |
是否接受管道输入? |
false |
是否接受通配符? |
false |
-MaximumRedirection <int>
确定在连接失败之前 Windows PowerShell 将连接重定向到备用统一资源标识符 (URI) 的次数。默认值为 5。值 0(零)将阻止所有重定向。
只有当创建 PSSession 的命令中使用 AllowRedirection 参数时,PSSession 中才会使用此选项。
是否为必需? |
false |
位置? |
named |
默认值 |
5 |
是否接受管道输入? |
false |
是否接受通配符? |
false |
-NoCompression
关闭 PSSession 中的数据包压缩。压缩会占用更多的处理器周期,但可以提高传输速度。
是否为必需? |
false |
位置? |
named |
默认值 |
False |
是否接受管道输入? |
false |
是否接受通配符? |
false |
-NoEncryption
关闭数据加密。
是否为必需? |
false |
位置? |
named |
默认值 |
False |
是否接受管道输入? |
false |
是否接受通配符? |
false |
-NoMachineProfile
阻止加载用户的 Windows 用户配置文件。这样做可以加快创建 PSSession 的速度,但不能在 PSSession 使用特定于用户的注册表设置、环境变量等项目以及证书。
是否为必需? |
false |
位置? |
named |
默认值 |
False |
是否接受管道输入? |
false |
是否接受通配符? |
false |
-OpenTimeOut <int>
确定客户端计算机等待建立会话连接的时间长度。当时间间隔过期时,建立连接的命令将失败。输入以毫秒为单位的值。
默认值为 180000(3 分钟)。0(零)值表示无超时;命令将无限期地继续运行。
是否为必需? |
false |
位置? |
named |
默认值 |
180000 |
是否接受管道输入? |
false |
是否接受通配符? |
false |
-OperationTimeOut <int>
确定 PSSession 中的任何操作可以运行的最长时间。当时间间隔过期后,操作将失败。输入以毫秒为单位的值。
默认值为 180000(3 分钟)。0(零)值表示无超时;操作将无限期地继续运行。
是否为必需? |
false |
位置? |
named |
默认值 |
180000 |
是否接受管道输入? |
false |
是否接受通配符? |
false |
-ProxyAccessType <ProxyAccessType>
确定用于解析主机名的机制。有效值为 IEConfig、WinHttpConfig、AutoDetect、NoProxyServer 和 None。默认值为 None。
有关此参数的值的信息,请参阅 MSDN (Microsoft Developer Network) Library 中对 System.Management.Automation.Remoting.ProxyAccessType 枚举的说明,网址是 https://go.microsoft.com/fwlink/?LinkId=144756。
是否为必需? |
false |
位置? |
named |
默认值 |
无 |
是否接受管道输入? |
false |
是否接受通配符? |
false |
-ProxyAuthentication <AuthenticationMechanism>
指定用于代理解析的身份验证方法。有效值为 Basic 、Digest 和 Negotiate。默认值为 Negotiate。
有关此参数的值的信息,请参阅 MSDN Library 中对 System.Management.Automation.Runspaces.AuthenticationMechanism 枚举的说明,网址是 https://go.microsoft.com/fwlink/?LinkID=144382。
是否为必需? |
false |
位置? |
named |
默认值 |
Negotiate |
是否接受管道输入? |
false |
是否接受通配符? |
false |
-ProxyCredential <PSCredential>
指定用于代理身份验证的凭据。输入包含 PSCredential 对象的变量,或输入获取 PSCredential 对象的命令(如 Get-Credential)。如果没有设置此选项,则不指定任何凭据。
是否为必需? |
false |
位置? |
named |
默认值 |
无 |
是否接受管道输入? |
false |
是否接受通配符? |
false |
-SkipCACheck
指定当通过 HTTPS 连接时,客户端不验证服务器证书是否已由受信任的证书颁发机构 (CA) 签名。
仅当远程计算机通过其他机制受信任(例如远程计算机所属的网络在物理上是安全的并已隔离,或者远程计算机在 WinRM 配置中列为受信任主机)时才应使用此选项。
是否为必需? |
false |
位置? |
named |
默认值 |
False |
是否接受管道输入? |
false |
是否接受通配符? |
false |
-SkipCNCheck
指定服务器的证书公用名 (CN) 不必匹配服务器的主机名。此选项仅用于使用 HTTPS 协议的远程操作。
此选项应仅用于受信任的计算机。
是否为必需? |
false |
位置? |
named |
默认值 |
False |
是否接受管道输入? |
false |
是否接受通配符? |
false |
-SkipRevocationCheck
不验证服务器证书的吊销状态。
是否为必需? |
false |
位置? |
named |
默认值 |
False |
是否接受管道输入? |
false |
是否接受通配符? |
false |
-UICulture <CultureInfo>
指定用于 PSSession 的 UI 区域性。
输入格式为 <languagecode2>-<country/regioncode2> 的区域性名称(例如“ja-jP”)、包含 CultureInfo 对象的变量或获取 CultureInfo 对象的命令(例如 Get-Culture)。
默认值为 $null,PSSession 中使用在创建 PSSession 时在操作系统中设置的 UI 区域性。
是否为必需? |
false |
位置? |
named |
默认值 |
当前 UI 区域性 |
是否接受管道输入? |
false |
是否接受通配符? |
false |
-UseUTF16
以 UTF16 格式而不是 UTF8 格式对请求进行编码。
是否为必需? |
false |
位置? |
named |
默认值 |
False(UTF8 编码) |
是否接受管道输入? |
false |
是否接受通配符? |
false |
<CommonParameters>
此 cmdlet 支持通用参数:-Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer 和 -OutVariable。有关详细信息,请参阅 about_Commonparameters.
输入和输出
输入类型是指可通过管道传递给 cmdlet 的对象的类型。返回类型是指 Cmdlet 所返回对象的类型。
输入 |
无 不能通过管道将输入传递给此 cmdlet。 |
输出 |
System.Management.Automation.Remoting.PSSessionOption |
说明
如果创建 PSSession 的命令中没有使用 SessionOption 参数,则当设置了 $PSSessionOption 首选项变量时,会话选项将由该变量的属性值确定。有关 $PSSessionOption 变量的详细信息,请参阅 about_Preference_Variables。
示例 1
C:\PS>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
C:\PS>$pso = new-pssessionoption -Culture "fr-fr" -MaximumReceivedObjectSize 10MB
C:\PS> new-pssession -computerName Server01 -SessionOption $pso
说明
-----------
此示例说明如何使用会话选项对象配置会话。
第一个命令创建一个新的会话选项对象,并将它保存在 $pso 变量的值中。
第二个命令使用 New-PSSession cmdlet 在远程计算机 Server01 上创建一个 PSSession。该命令将 $pso 变量值中的会话选项对象用作命令的 SessionOption 参数值。
示例 3
C:\PS>enter-pssession -computername Server01 -sessionOption (new-pssessionoption -noEncryption -noCompression)
说明
-----------
此命令使用 Enter-PSSession cmdlet 启动与计算机 Server01 的交互式会话。SessionOption 参数值是具有 NoEncryption 和 NoCompression 开关参数的 New-PSSessionOption 命令。
New-PSSessionOption 命令括在圆括号中,以确保它先于 Enter-PSSession 命令运行。
示例 4
C:\PS>$a = 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
C:\PS> $a.UICulture = (get-UICulture)
C:\PS> $a.OpenTimeout = (new-timespan -minutes 4)
C:\PS> $a.MaximumConnectionRedirectionCount = 1
C:\PS> $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
C:\PS>$PSSessionOption = New-PSSessionOption -OpenTimeOut 120000
说明
-----------
此命令创建 $PSSessionOption 首选项变量。
当会话中存在 $PSSessionOption 首选项变量时,该变量会为使用 New-PSSession、Enter-PSSession 和 Invoke-Command cmdlet 创建的 PSSession 中的选项建立默认值。
要使 PSSessionOption 变量在所有会话中均可用,可将其添加到 Windows PowerShell 会话和 Windows PowerShell 配置文件中。
有关 $PSSessionOption 变量的详细信息,请参阅 about_Preference_Variables。有关配置文件的详细信息,请参阅 about_Profiles。
示例 6
C:\PS>$skipCN = new-pssessionoption -SkipCNCheck
C:\PS> new-pssession -computername 171.09.21.207 -UseSSL -credential domain01\user01 -sessionOption $skipCN
说明
-----------
此示例说明如何使用 SessionOption 对象满足远程会话配置的要求。
第一个命令使用 New-PSSessionOption cmdlet 创建具有 SkipCNCheck 属性的会话选项对象。该命令将生成的会话对象保存在 $skipCN 变量中。
第二个命令使用 New-PSSession cmdlet 在远程计算机上创建一个新的 PSSession。$skipCN 检查变量用于 SessionOption 参数的值中。
由于计算机由其 IP 地址标识,因此 ComputerName 参数的值与用于安全套接字层 (SSL) 的证书中的任何公用名都不匹配。因此,SkipCNCheck 选项是必需的。