Set-PSSessionConfiguration

更改已注册会话配置的属性。

语法

Set-PSSessionConfiguration [-AssemblyName] <string> [-ConfigurationTypeName] <string> [-Name] <string> [-ApplicationBase <string>] [-Force] [-MaximumReceivedDataSizePerCommandMB <double>] [-MaximumReceivedObjectSizeMB <double>] [-NoServiceRestart] [-SecurityDescriptorSDDL <string>] [-ShowSecurityDescriptorUI] [-StartupScript <string>] [-ThreadApartmentState {<STA> | <MTA> | <Unknown>}] [-ThreadOptions {<Default> | <UseNewThread> | <ReuseThread> | <UseCurrentThread>}] [-Confirm] [-WhatIf] [<CommonParameters>]

说明

Set-PSSessionConfiguration cmdlet 更改本地计算机上已注册的会话配置的属性。这是一个高级 cmdlet,供系统管理员为其用户管理自定义会话配置时使用。

使用 Name 参数标识要更改的配置。使用其他参数为会话配置的属性指定新值。要从配置中删除属性值(并使用默认值),则输入空字符串 ("") 或相应参数的 $null 值。

要查看会话配置的属性,请使用 Get-PSSessionConfiguration cmdlet 或 WS-Management 提供程序。有关 WS-Management 提供程序的详细信息,请键入“get-help wsman”。

参数

-ApplicationBase <string>

更改在 AssemblyName 参数值中指定的程序集文件 (*.dll) 的路径。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

-AssemblyName <string>

为配置指定其他程序集文件。输入定义配置类型的程序集文件 (.dll) 的路径(可选)和文件名。

如果仅输入名称,则可在 ApplicationBase 参数的值中输入路径。

是否为必需?

true

位置?

2

默认值

是否接受管道输入?

false

是否接受通配符?

false

-ConfigurationTypeName <string>

为配置指定其他配置类型。指定的类型必须实现 System.Management.Automation.Remoting.PSSessionConfiguration 类。

如果输入“$null”或空字符串,则将 DefaultRemotePowerShellConfiguration 类用于会话配置。

是否为必需?

true

位置?

3

默认值

是否接受管道输入?

false

是否接受通配符?

false

-Force

禁止显示所有用户提示,并重新启动 WinRM 服务而不显示提示。重新启动服务将使配置更改生效。

若要阻止重新启动并禁止显示重新启动提示,请使用 NoServiceRestart 参数。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

-MaximumReceivedDataSizePerCommandMB <double>

更改在任何单个远程命令中可以发送给该计算机的数据量的限制。输入以兆字节 (MB) 为单位的数据大小。默认值是 50 MB。

如果 ConfigurationTypeName 参数中指定的配置类型定义了数据大小限制,则使用该配置类型中的限制,而忽略此参数的值。

是否为必需?

false

位置?

named

默认值

50

是否接受管道输入?

false

是否接受通配符?

false

-MaximumReceivedObjectSizeMB <double>

更改在任何单个对象中可以发送给该计算机的数据量的限制。输入以兆字节 (MB) 为单位的数据大小。默认值是 10 MB。

如果 ConfigurationTypeName 参数中指定的配置类型定义了对象大小限制,则使用该配置类型中的限制,而忽略此参数的值。

是否为必需?

false

位置?

named

默认值

10

是否接受管道输入?

false

是否接受通配符?

false

-Name <string>

指定要更改的会话配置的名称。

不能使用此参数更改会话配置的名称。

是否为必需?

true

位置?

1

默认值

是否接受管道输入?

false

是否接受通配符?

false

-NoServiceRestart

不重新启动 WinRM 服务,并且禁止提示重新启动该服务。

默认情况下,当您输入 Set-PSSessionConfiguration 命令时,系统会提示您重新启动 WinRM 服务以使新的会话配置生效。在重新启动 WinRM 服务之前,新的会话配置不会生效。

若要重新启动 WinRM 服务并且不显示提示,请使用 Force 参数。若要手动重新启动 WinRM 服务,请使用 Restart-Service cmdlet。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

-SecurityDescriptorSDDL <string>

为配置指定其他安全描述符定义语言 (SDDL) 字符串。

此字符串确定使用新的会话配置所需要的权限。要在会话中使用某个会话配置,用户对该配置必须至少拥有“执行(Invoke)”权限。

要使用配置的默认安全描述符,请输入空字符串 ("") 或 $null 值。默认为 WSMan: 驱动器中的根 SDDL。

如果安全描述符过于复杂,可考虑使用 ShowSecurityDescriptorUI 参数代替此参数。不能在同一个命令中同时使用这两个参数。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

-ShowSecurityDescriptorUI

显示可帮助您为会话配置创建新 SDDL 的属性表。在输入 Set-PSSessionConfiguration 命令并重新启动 WinRM 服务后,该属性表将显示出来。

在设置配置的权限时,需记住用户必须至少具有“执行(Invoke)”权限才能在会话中使用该会话配置。

不能在同一个命令中同时使用 SecurityDescriptorSDDL 参数和此参数。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

-StartupScript <string>

添加或更改配置的启动脚本。输入 Windows PowerShell 脚本的完全限定路径。指定的脚本在使用会话配置的新会话中运行。

要从会话配置中删除启动脚本,请输入空字符串 ("") 或 $null 值。

您可以使用启动脚本进一步配置用户的会话。如果脚本产生错误(甚至非终止错误),则不会创建会话,并且导致用户的 New-PSSession 命令失败。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

-ThreadApartmentState <ApartmentState>

更改会话中的线程的单元状态设置。有效值为 STA、MTA 和 Unknown。默认值为 Unknown。

是否为必需?

false

位置?

named

默认值

ApartmentState.Unknown

是否接受管道输入?

false

是否接受通配符?

false

-ThreadOptions <PSThreadOptions>

更改配置中的线程选项设置。此设置定义在会话中执行命令时如何创建和使用线程。有效值为 Default、ReuseThread、UseCurrentThread 和 UseNewThread。默认值为 UseCurrentThread。

是否为必需?

false

位置?

named

默认值

PSThreadOptions.UserCurrentThread

是否接受管道输入?

false

是否接受通配符?

false

-Confirm

在执行命令之前提示您进行确认。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

-WhatIf

描述如果执行该命令会发生什么情况(无需实际执行该命令)。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

<CommonParameters>

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

输入和输出

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

输入

不能通过管道将输入传递给此 cmdlet。

输出

Microsoft.WSMan.Management.WSManConfigLeafElement

说明

若要在 Windows Vista、Windows Server 2008 以及更高版本的 Windows 上运行此 cmdlet,您必须使用“以管理员身份运行”选项打开 Windows PowerShell。

Set-PSSessionConfiguration cmdlet 不会更改配置名称,而 WS-Management 提供程序不支持 Rename-Item cmdlet。要更改配置的名称,请使用 Unregister-PSSessionConfiguration cmdlet 删除该配置,然后使用 Register-PSSessionConfiguration cmdlet 创建并注册新的会话配置。

可以使用 Set-PSSessionConfiguration cmdlet 更改默认的 Microsoft.PowerShell 和 Microsoft.PowerShell32 会话配置。这些会话配置不受保护。要恢复为默认会话配置的原始版本,请使用 Unregister-PSSessionConfiguration cmdlet 删除默认会话配置,然后使用 Enable-PSRemoting cmdlet 将其还原。

示例 1

C:\PS>set-pssessionconfiguration -name MaintenanceShell -threadApartmentState STA

说明
-----------
此命令将 MaintenanceShell 配置中的线程单元状态更改为 STA。此更改在重新启动 WinRM 服务后生效。





示例 2

C:\PS>register-pssessionconfiguration -name AdminShell -assemblyName c:\shells\AdminShell.dll -configurationType AdminClass

C:\PS> set-pssessionconfiguration -name AdminShell -startupScript AdminConfig.ps1

C:\PS> set-pssessionconfiguration -name AdminShell -startupScript $null

说明
-----------
此示例说明如何创建并随后更改会话配置。

第一个命令使用 Register-PSSessionConfiguration cmdlet 创建 AdminShell 配置。

第二个命令使用 Set-PSSessionConfiguration cmdlet 将 AdminConfig.ps1 脚本添加到该配置中。更改在重新启动 WinRM 后生效。

第三个命令将 AdminConfig.ps1 脚本从该配置中删除。该命令使用 Set-PSSessionConfiguration cmdlet,并将 StartupScript 参数的值设置为 $null。





示例 3

C:\PS>Set-PSSessionConfiguration -name foo -MaximumReceivedObjectSizeMB 20

   WSManConfig: Microsoft.WSMan.Management\WSMan::localhost\Plugin\foo\InitializationParameters

ParamName                       ParamValue
---------                       ----------
psmaximumreceivedobjectsizemb   20

"Restart WinRM service"
WinRM service need to be restarted to make the changes effective. Do you want to run the command "restart-service winrm"?
[Y] Yes  [N] No  [S] Suspend  [?] Help (default is "Y"): y

说明
-----------
此示例说明 Set-PSSessionConfiguration cmdlet 的示例输出。

在本示例中,Set-PSSessionConfiguration 命令将 MaximumReceivedObjectSizeMB 属性的值增加到 20。

Set-PSSessionConfiguration 命令返回一个显示参数名称和新值的 Microsoft.WSMan.Management.WSManConfigLeafElement 对象。

该命令还提示您重新启动 WinRM 服务。Set-PSSessionConfiguration 更改要在重新启动 WinRM 服务之后才会生效。





示例 4

C:\PS>set-pssessionconfiguration -name MaintenanceShell -startupScript c:\ps-test\Maintenance.ps1


   WSManConfig: Microsoft.WSMan.Management\WSMan::localhost\Plugin\MaintenanceShell\InitializationParameters

ParamName            ParamValue
---------            ----------
startupscript        c:\ps-test\Mainte...

"Restart WinRM service"
WinRM service need to be restarted to make the changes effective. Do you want to run the command "restart-service winrm"?
[Y] Yes  [N] No  [S] Suspend  [?] Help (default is "Y"): y


C:\PS> get-pssessionConfiguration maintenanceshell | format-list -property *

xmlns            : https://schemas.microsoft.com/wbem/wsman/1/config/PluginConfiguration
Name             : MaintenanceShell
Filename         : %windir%\system32\pwrshplugin.dll
SDKVersion       : 1
XmlRenderingType : text
lang             : en-US
PSVersion        : 2.0
startupscript    : c:\ps-test\Maintenance.ps1
ResourceUri      : https://schemas.microsoft.com/powershell/MaintenanceShell
SupportsOptions  : true
ExactMatch       : true
Capability       : {Shell}
Permission       :


C:\PS> dir wsman:\localhost\plugin\MaintenanceShell\InitializationParameters

ParamName     ParamValue
---------     ----------
PSVersion     2.0
startupscript c:\ps-test\Maintenance.ps1

说明
-----------
此命令显示查看 Set-PSSessionConfiguration 命令的结果的不同方式。

第一个命令使用 Set-PSSessionConfiguration cmdlet 将 MaintenanceShell 配置中的启动脚本更改为 Maintenance.ps1。此命令的输出显示更改,并提示您重新启动 WinRM 服务。响应是“y”(是)。

第二个命令使用 Get-PSSessionConfiguration cmdlet 获取 MaintenanceShell 会话配置。该命令使用管道运算符 (|) 将命令的结果发送给 Format-List cmdlet,后者将以列表形式显示会话配置对象的所有属性。

第三个命令使用 WS-Management 提供程序查看 MaintenanceShell 配置的初始化参数。该命令使用 Get-ChildItem cmdlet(别名 = dir)获取 MaintenanceShell 插件的 InitializationParameters 节点中的子项。

有关 WS-Management 提供程序的详细信息,请键入“get-help wsman”。





另请参阅

概念

about_Session_Configurations
Disable-PSSessionConfiguration
Enable-PSSessionConfiguration
Get-PSSessionConfiguration
Register-PSSessionConfiguration
Unregister-PSSessionConfiguration
WSMan Provider