创建包含 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

默认值

Current culture

是否接受管道输入?

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

默认值

No limit

是否接受管道输入?

false

是否接受通配符?

false

-MaximumReceivedObjectSize <int>

指定本地计算机可从远程计算机接收到的最大对象大小。输入以字节为单位的值。默认情况下没有数据大小限制。

此选项设计用于保护客户端计算机上的资源。

是否为必需?

false

位置?

named

默认值

No limit

是否接受管道输入?

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

默认值

Current UI culture

是否接受管道输入?

false

是否接受通配符?

false

-UseUTF16

以 UTF16 格式而不是 UTF8 格式对请求进行编码。

是否为必需?

false

位置?

named

默认值

False (UTF8 encoding)

是否接受管道输入?

false

是否接受通配符?

false

<CommonParameters>

此 cmdlet 支持通用参数:-Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer 和 -OutVariable。有关详细信息,请参阅 about_Commonparameters.

输入和输出

输入类型是指可通过管道传递给 cmdlet 的对象的类型。返回类型是指 Cmdlet 所返回对象的类型。

输入

None

不能通过管道将输入传递给此 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 选项是必需的。






另请参阅




目录