變更已註冊工作階段設定的屬性。

語法

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) 字串。

這個字串會決定使用新工作階段設定所需的權限。若要在工作階段中使用工作階段設定,使用者至少必須擁有該設定的 "Execute(Invoke)" 權限。

若要使用設定的預設安全性描述元,請輸入空字串 ("") 或 $null 值。預設值為 WSMan: 磁碟機中的根 SDDL。

如果安全性描述元很複雜,請考慮使用 ShowSecurityDescriptorUI 參數而非這個參數。您無法在同一個命令中使用這兩個參數。

必要?

false

位置?

named

預設值

接受管線輸入?

false

接受萬用字元?

false

-ShowSecurityDescriptorUI

顯示可協助您針對工作階段設定建立新 SDDL 的內容表。在您輸入 Set-PSSessionConfiguration 命令,然後重新啟動 WinRM 服務之後,就會顯示此內容表。

設定設定的權限時,請記住,使用者至少必須擁有 "Execute(Invoke)" 權限才能在工作階段中使用工作階段設定。

您無法在同一個命令中使用 SecurityDescriptorSDDL 參數和此參數。

必要?

false

位置?

named

預設值

接受管線輸入?

false

接受萬用字元?

false

-StartupScript <string>

新增或變更設定的啟動指令碼。請輸入 Windows PowerShell 指令碼的完整路徑。指定的指令碼會在使用工作階段設定的新工作階段中執行。

若要從工作階段設定中刪除啟動指令碼,請輸入空字串 ("") 或 $null 值。

您可以使用啟動指令碼來進一步設定使用者的工作階段。如果指令碼產生錯誤 (即使是非終止錯誤),系統就不會建立工作階段,而且使用者的 New-PSSession 命令會失敗。

必要?

false

位置?

named

預設值

接受管線輸入?

false

接受萬用字元?

false

-ThreadApartmentState <ApartmentState>

變更工作階段中執行緒的 Apartment 狀態設定。有效的值包括 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 所傳回的物件型別。

輸入

None

您無法經由管道將輸入輸出至這個 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 設定中的執行緒 Apartment 狀態變更為 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 搭配值為 $null 的 StartupScript 參數。






範例 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 服務。在重新啟動 WinRM 服務之前,Set-PSSessionConfiguration 變更不會生效。






範例 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"。






請參閱




目錄