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