当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 设置 PSSessionConfiguration (Microsoft.PowerShell.Core)

作者:精品下载站 日期:2024-12-14 02:14:16 浏览:14 分类:玩电脑

设置 PSSessionConfiguration (Microsoft.PowerShell.Core)


设置 PSSessionConfiguration

模块 :Microsoft.PowerShell.Core

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

句法

Set-PSSessionConfiguration
   [-Name] <String>
   [-ApplicationBase <String>]
   [-RunAsCredential <PSCredential>]
   [-ThreadApartmentState <ApartmentState>]
   [-ThreadOptions <PSThreadOptions>]
   [-AccessMode <PSSessionConfigurationAccessMode>]
   [-UseSharedProcess]
   [-StartupScript <String>]
   [-MaximumReceivedDataSizePerCommandMB <Double>]
   [-MaximumReceivedObjectSizeMB <Double>]
   [-SecurityDescriptorSddl <String>]
   [-ShowSecurityDescriptorUI]
   [-Force]
   [-NoServiceRestart]
   [-PSVersion <Version>]
   [-SessionTypeOption <PSSessionTypeOption>]
   [-TransportOption <PSTransportOption>]
   [-ModulesToImport <Object[]>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Set-PSSessionConfiguration
   [-Name] <String>
   [-AssemblyName] <String>
   [-ApplicationBase <String>]
   [-ConfigurationTypeName] <String>
   [-RunAsCredential <PSCredential>]
   [-ThreadApartmentState <ApartmentState>]
   [-ThreadOptions <PSThreadOptions>]
   [-AccessMode <PSSessionConfigurationAccessMode>]
   [-UseSharedProcess]
   [-StartupScript <String>]
   [-MaximumReceivedDataSizePerCommandMB <Double>]
   [-MaximumReceivedObjectSizeMB <Double>]
   [-SecurityDescriptorSddl <String>]
   [-ShowSecurityDescriptorUI]
   [-Force]
   [-NoServiceRestart]
   [-PSVersion <Version>]
   [-SessionTypeOption <PSSessionTypeOption>]
   [-TransportOption <PSTransportOption>]
   [-ModulesToImport <Object[]>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Set-PSSessionConfiguration
   [-Name] <String>
   [-RunAsCredential <PSCredential>]
   [-ThreadApartmentState <ApartmentState>]
   [-ThreadOptions <PSThreadOptions>]
   [-AccessMode <PSSessionConfigurationAccessMode>]
   [-UseSharedProcess]
   [-StartupScript <String>]
   [-MaximumReceivedDataSizePerCommandMB <Double>]
   [-MaximumReceivedObjectSizeMB <Double>]
   [-SecurityDescriptorSddl <String>]
   [-ShowSecurityDescriptorUI]
   [-Force]
   [-NoServiceRestart]
   [-TransportOption <PSTransportOption>]
   -Path <String>
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

描述

此 cmdlet 仅适用于 Windows 平台。

Set-PSSessionConfiguration cmdlet 可更改本地计算机上的会话配置的属性。

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

从 PowerShell 3.0 开始,您可以使用会话配置文件来定义会话配置。此功能提供了一种简单且可发现的方法,用于设置和更改使用会话配置的会话的属性。要指定会话配置文件,请使用 Set-PSSessionConfigurationPath 参数。有关会话配置文件的信息,请参阅 about_Session_Configuration_Files。有关如何创建和修改会话配置文件的信息,请参阅 New-PSSessionConfigurationFile cmdlet。

会话配置定义连接到本地计算机的远程会话 (PSSession) 的环境。每个PSSession都使用会话配置。会话配置决定 PSSession 的功能,例如会话中可用的模块、允许运行的 cmdlet、语言模式、配额和超时。会话配置的安全描述符决定谁可以使用该会话配置连接到本地计算机。有关会话配置的更多信息,请参阅 about_Session_Configurations。

要查看会话配置的属性,请使用 Get-PSSessionConfiguration cmdlet 或 WSMan 提供程序。有关 WSMan 提供程序的更多信息,请输入 Get-Help WSMan

示例

示例 1:创建和更改会话配置

此示例演示如何在配置中添加和删除启动脚本。

第一个命令创建 AdminShell 配置。第二个命令将 AdminConfig.ps1 脚本添加到配置中。重新启动 WinRM 后,更改生效。第三个命令从配置中删除 AdminConfig.ps1 脚本。

Register-PSSessionConfiguration -Name "AdminShell" -AssemblyName "C:\Shells\AdminShell.dll" -ConfigurationTypeName "AdminClass"
Set-PSSessionConfiguration -Name "AdminShell" -StartupScript "AdminConfig.ps1"
Set-PSSessionConfiguration -Name "AdminShell" -StartupScript $Null

示例2:显示结果

此示例将 MaximumReceivedObjectSizeMB 属性的值增加到 20。此命令还会提示您重新启动 WinRM 服务。重新启动 WinRM 服务后,更改才会生效。

Set-PSSessionConfiguration -Name "IncObj" -MaximumReceivedObjectSizeMB 20

WSManConfig: Microsoft.WSMan.Management\WSMan::localhost\Plugin\IncObj\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

示例3:以不同方式显示结果

在此示例中,Set-PSSessionConfigurationMaintenanceShell 会话配置中的启动脚本更改为 Maintenance.ps1。输出显示更改并提示您重新启动 WinRM 服务。响应为y(是)。

Get-PSSessionConfiguration 获取 MaintenanceShell 会话配置。管道运算符 (|) 将命令的结果发送到 Format-List,后者在列表中显示配置对象的所有属性。接下来,使用 WSMan 提供程序,我们查看 MaintenanceShell 配置的初始化参数。 Get-ChildItem 获取 MaintenanceShell 插件的 InitializationParameters 节点中的子项。有关 WSMan 提供程序的更多信息,请输入 Get-Help wsman

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

Get-PSSessionConfiguration MaintenanceShell | Format-List -Property *

xmlns            : http://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      : http://schemas.microsoft.com/powershell/MaintenanceShell
SupportsOptions  : true
ExactMatch       : true
Capability       : {Shell}
Permission       :

Get-ChildItem WSMan:\localhost\Plugin\MaintenanceShell\InitializationParameters

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

参数

-AccessMode

启用和禁用会话配置并确定它是否可用于计算机上的远程或本地会话。该参数可接受的值为:

  • 已禁用。禁用会话配置。它不能用于对计算机的远程或本地访问。此值将会话配置 (WSMan:\PlugIn\Enabled) 的 Enabled 属性设置为 False
  • 本地。将 Network_Deny_All 条目添加到会话配置的安全描述符中。本地计算机的用户可以使用会话配置在同一计算机上创建本地环回会话,但远程用户被拒绝访问。
  • 远程。从会话配置的安全描述符中删除 Deny_AllNetwork_Deny_All 条目。本地和远程计算机的用户可以使用会话配置在该计算机上创建会话并运行命令。

默认值为远程

其他 cmdlet 可以稍后覆盖此参数的值。例如,Enable-PSRemoting cmdlet 启用计算机上的所有会话配置并允许远程访问它们,而 Disable-PSRemoting cmdlet 仅允许本地访问所有会话配置在计算机上。

此参数是在 PowerShell 3.0 中引入的。

类型 :

PSSession配置访问模式

接受的值:

禁用、本地、远程

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-ApplicationBase

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

类型 :

String

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-AssemblyName

指定程序集名称。此 cmdlet 基于程序集中定义的类创建会话配置。

输入定义会话配置的程序集 .dll 文件的文件名或完整路径。如果仅输入文件名,则可以在 ApplicationBase 参数的值中输入路径。

类型 :

String

位置:

1

默认值:

None

必需的:

True

接受管道输入:

False

接受通配符:

False

-ConfigurationTypeName

指定在 AssemblyName 参数中的程序集中定义的会话配置的类型。您指定的类型必须实现System.Management.Automation.Remoting.PSSessionConfiguration 类。

当您指定程序集名称时,需要此参数。

类型 :

String

位置:

2

默认值:

None

必需的:

True

接受管道输入:

False

接受通配符:

False

-Confirm

在运行 cmdlet 之前提示您进行确认。

类型 :

SwitchParameter

别名:

cf

位置:

命名

默认值:

False

必需的:

False

接受管道输入:

False

接受通配符:

False

-Force

禁止所有用户提示,并在没有提示的情况下重新启动 WinRM 服务。重新启动服务使配置更改生效。

要防止重新启动并抑制重新启动提示,请使用 NoServiceRestart 参数。

类型 :

SwitchParameter

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-MaximumReceivedDataSizePerCommandMB

指定可以通过任何单个远程命令发送到此计算机的数据量的限制。输入数据大小(以兆字节 (MB) 为单位)。默认值为 50

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

类型 :

可空[]

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-MaximumReceivedObjectSizeMB

指定任何单个对象中可以发送到此计算机的数据量的限制。输入数据大小(以兆字节为单位)。默认值为 10

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

类型 :

可空[]

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-ModulesToImport

指定自动导入到使用会话配置的会话中的模块和管理单元。输入模块和管理单元名称。

默认情况下,仅将 Microsoft.PowerShell.Core 模块导入到会话中,但除非排除 cmdlet,否则您可以使用 Import-ModuleAdd- PSSnapin cmdlet,用于将模块和管理单元添加到会话中。

除了会话配置文件 (New-PSSessionConfigurationFile) 中指定的模块之外,还会导入此参数值中指定的模块。但是,会话配置文件中的设置可以隐藏模块导出的命令或阻止用户使用它们。

此参数值中指定的模块将替换使用 Register-PSSessionConfiguration cmdlet 的 ModulesToImport 参数指定的模块列表。

此参数是在 PowerShell 3.0 中引入的。

类型 :

Object[]

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-Name

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

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

类型 :

String

位置:

0

默认值:

None

必需的:

True

接受管道输入:

True

接受通配符:

False

-NoServiceRestart

不重新启动 WinRM 服务,并抑制重新启动服务的提示。

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

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

类型 :

SwitchParameter

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-Path

指定会话配置文件 (.pssc) 的路径,例如由 New-PSSessionConfigurationFile cmdlet 创建的文件。如果省略路径,则默认为当前目录。

有关如何修改会话配置文件的信息,请参阅 New-PSSessionConfigurationFile cmdlet 的帮助主题。

此参数是在 PowerShell 3.0 中引入的。

类型 :

String

位置:

命名

默认值:

None

必需的:

True

接受管道输入:

False

接受通配符:

False

-PSVersion

指定使用此会话配置的会话中的 PowerShell 版本。

此参数的值优先于会话配置文件中 PowerShellVersion 键的值。

此参数是在 PowerShell 3.0 中引入的。

类型 :

版本

别名:

PowerShellVersion

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-RunAsCredential

指定会话中命令的凭据。默认情况下,命令以当前用户的权限运行。

此参数是在 PowerShell 3.0 中引入的。

类型 :

PS凭证

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-SecurityDescriptorSddl

为配置指定不同的安全描述符定义语言 (SDDL) 字符串。

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

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

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

类型 :

String

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-SessionTypeOption

指定会话配置的特定于类型的选项。输入会话类型选项对象,例如 New-PSWorkflowExecutionOption cmdlet 返回的 PSWorkflowExecutionOption 对象。

使用会话配置的会话的选项由会话选项和会话配置选项的值决定。除非指定,否则会话中设置的选项(例如使用 New-PSSessionOption cmdlet)优先于会话配置中设置的选项。但是,会话选项值不能超过会话配置中设置的最大值。

此参数是在 PowerShell 3.0 中引入的。

类型 :

PS会话类型选项

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-ShowSecurityDescriptorUI

使用此参数时,cmdlet 将打开一个属性表,帮助您为会话配置创建新的 SDDL。运行 Set-PSSessionConfiguration 命令并重新启动 WinRM 服务后,将显示属性表。

当您设置配置权限时,请记住,用户必须至少拥有执行(Invoke) 权限才能在会话中使用会话配置。

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

类型 :

SwitchParameter

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-StartupScript

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

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

您可以使用启动脚本来进一步配置用户会话。如果脚本生成错误,即使是非终止错误,也不会创建会话,并且 New-PSSession 命令失败。

类型 :

String

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-ThreadApartmentState

指定要使用的线程模块的单元状态。可接受的值为:

    Unknown
    MTA
    STA
    类型 :

    ApartmentState

    位置:

    命名

    默认值:

    None

    必需的:

    False

    接受管道输入:

    False

    接受通配符:

    False

    -ThreadOptions

    指定配置中的线程选项设置。此设置定义在会话中执行命令时如何创建和使用线程。该参数可接受的值为:

      Default
      ReuseThread
      UseCurrentThread
      UseNewThread

      默认值为UseCurrentThread

      有关详细信息,请参阅 PSThreadOptions 枚举。

      类型 :

      PS线程选项

      接受的值:

      默认、UseNewThread、ReuseThread、UseCurrentThread

      位置:

      命名

      默认值:

      None

      必需的:

      False

      接受管道输入:

      False

      接受通配符:

      False

      -TransportOption

      指定会话配置的传输选项。输入传输选项对象,例如 New-PSTransportOption cmdlet 返回的 WSManConfigurationOption 对象。

      使用会话配置的会话的选项由会话选项和会话配置选项的值决定。除非指定,否则会话中设置的选项(例如使用 New-PSSessionOption cmdlet)优先于会话配置中设置的选项。但是,会话选项值不能超过会话配置中设置的最大值。

      此参数是在 PowerShell 3.0 中引入的。

      类型 :

      PS传输选项

      位置:

      命名

      默认值:

      None

      必需的:

      False

      接受管道输入:

      False

      接受通配符:

      False

      -UseSharedProcess

      仅使用一个进程来托管由同一用户启动并使用相同会话配置的所有会话。默认情况下,每个会话都托管在其自己的进程中。

      此参数是在 PowerShell 3.0 中引入的。

      类型 :

      SwitchParameter

      位置:

      命名

      默认值:

      None

      必需的:

      False

      接受管道输入:

      False

      接受通配符:

      False

      -WhatIf

      显示 cmdlet 运行时会发生什么情况。该 cmdlet 未运行。

      类型 :

      SwitchParameter

      别名:

      wi

      位置:

      命名

      默认值:

      False

      必需的:

      False

      接受管道输入:

      False

      接受通配符:

      False

      输入

      您无法将对象通过管道传输到此 cmdlet。

      输出

      WSManConfigLeafElement

      笔记

      此 cmdlet 仅适用于 Windows 平台。

      要运行此 cmdlet,请使用以管理员身份运行选项启动 PowerShell。

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

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

      会话配置对象的属性随会话配置的选项设置以及这些选项的值而变化。此外,使用会话配置文件的会话配置还具有其他属性。

      您可以使用 WSMan: 驱动器中的命令来更改会话配置的属性。但是,您无法使用 PowerShell 2.0 中的 WSMan: 驱动器来更改 PowerShell 3.0 中引入的会话配置属性,例如 OutputBufferingMode。 Windows PowerShell 2.0 命令不会生成错误,但它们无效。要更改 PowerShell 3.0 中引入的属性,请使用 PowerShell 3.0 或更高版本中的 WSMan: 驱动器。

      您需要 登录账户 后才能发表评论

      取消回复欢迎 发表评论:

      关灯